본문 바로가기

반응형

SpringBoot

(5)
[SpringBoot] 간단한 게시판 만들기 #6 - SpringSecurity 개념 및 구현 SpringSecurity를 이용하여 Google OAuth2 Login을 구현해보도록 한다. config 패키지에는 SessionUser와 SecurityConfig 클래스를 작성해주고, Index (/) 경로로 들어오는 Client만 허용하도록 BaseController에 해당 분기를 설정한다. 또한 domain은 Role(일반 사용자, 손님) Entity와 User Entity를 작성하고, Service로는 CustomOAuth2UserService를 작성하여 비즈니스 로직을 구현해준다. 의존성 implementation 'org.springframework.boot:spring-boot-starter-oauth2-client' implementation 'org.springframework.boo..
[SpringBoot] 간단한 게시판 만들기 #4 - DTO, Repository 구현 DTO와 Repository란 무엇일까? DTO(Data Transfer Object) : 계층 간에 데이터 교환을 위한 Java Bean이다. Repository : Database에 CRUD 명령을 실행하게 만드는 Interface (JpaRepository를 extends 하게 되면 CRUD를 사용할 수 있게 된다.) BoardDto : 게시판 API 간에 Data를 전달하는 DTO OAuthAttributes : OAuth2 Login을 통해서 가져온 OAuth2User의 정보를 담아주기 위한 DTO shop.pingping2.board.dto.BoardDto.java package shop.pingping2.board.dto; import shop.pingping2.board.domain.Boa..
[SpringBoot] 간단한 게시판 만들기 #3 - domain(Entity) 구현 패키지명은 보통 domain 혹은 entity로 표기하며, 내부 Class or Enum 파일들은 DB 처리용으로 DB Table과 Mapping된다. Entity 객체는 보통 DTO(Data Transfer Object)와 분리하게 된다. domain 패키지에는 Board, Time, Role, User 4개의 파일이 존재하게 된다. Board : 게시판 글 정보들을 모아놓은 Board 테이블 Time : 데이터 조작 시 자동으로 날짜를 수정해주는 JPA의 Auditing 기능을 사용한다. 이 Time Entity를 만들어 놓고 다른 Entity(Board, ..)로부터 상속받아서 사용하게 된다. Role : Spring Security 중 사용자의 권한을 Enum 클래스로 만들어 관리한다. (Enum..
[SpringBoot] 간단한 게시판 만들기 #2 - Controller 구현 Controller는 View로부터 오는 API 요청들을 어떻게 처리할 것인지 정의하는 역할을 한다. => /board/list란 경로로 GET 요청이 왔을 때 어디로 보내고, /board/post란 경로로 GET 요청이 올 때 어디로 보내고, POST 요청이 오면 xxService로부터 Data를 받아와서 view로 Attribute를 전달하는 등, /xx/xxx 경로로 요청이 올 때 PathVariables를 받아올지 등 정의를 수행한다. - Controller는 @Controller 애노테이션을 붙여서 해당 Class가 Controller임을 알려줘야 한다. shop.pingping2.board.controller.BaseController.java / 경로로 오는 요청을 처리하는 Controlle..
[SpringBoot] 간단한 게시판 만들기 #1 - 세팅 주의 스프링부트 맛보기 위해 정리한 글이므로 본 글은 참고용으로만 봐주시기 바랍니다. Ref https://victorydntmd.tistory.com/325 https://devlog-wjdrbs96.tistory.com/209 Spring Initializr을 통해 Project를 생성하였다. Spring Boot DevTools Spring Web Thymeleaf Spring Data JPA Lombok MySQL Driver ++ 추후 Google OAuth2 로그인을 위한 Spring Security도 Dependency를 추가 설정해주었다. 해당 부분은 build.gradl의 dependencies에 추가한 뒤 재빌드를 해주면 된다. 1. 빌드 'Build -> Build Project'를 ..

반응형