본문 바로가기

반응형

Programming/SpringBoot

(9)
[SpringBatch] 스프링배치 개념을 알아보자. 출처 : https://deeplify.dev/back-end/spring/batch-architecture-and-components 위 출처의 내용을 참고하여 공부 용도로 정리하였습니다. 구조 노란색 : 스케줄러 / DB (외부 애플리케이션) → AWS EventBridge , RDB , MongoDB , Redis , .. 빨간색 : 애플리케이션 서비스 (Spring Batch에서 제공) 초록색 : 개발자가 구성해야 하는 것들 → ex) 일정 주기대로 작업 시작되도록 설정하거나 , 작업을 실행하는 방법 등 Run Tier : 애플리케이션의 예약 및 시작과 관련이 있는 계층 (배치 작업의 시간 기반 및 상호 의존적인 스케줄링 제공 / 병렬 처리) Job Tier : 배치 작업의 전체 실행을 담당 (배..
[SpringBoot] 간단한 게시판 만들기 #7 - Thymeleaf를 사용한 Fornt view 구현 Thymeleaf는 View Template이다. common.html 공통 부분을 따로 구현하여, 다른 HTML 파일에서 replace 하여 사용 Board 홈 (current) 게시판 (current) detail.html 글 상세 보기 부분을 구현 글 읽기 제목 작성자 작성일 [[${#temporals.format(boardDto.createdDate, 'yyyy-MM-dd HH:mm')}]] 본문 내용 수정 삭제 list.html 게시판 글 내역들을 보는 페이지 번호 글제목 작성자 작성일 수정일 [[${pageNum}]] 글쓰기 검색하기 update.html '수정하기' 버튼을 클릭하면 나오는 페이지 제목 : 작성자 : 수정 취소 write.html 글쓰기 페이지 게시글 등록 제목 작성자 내용 뒤..
[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] 간단한 게시판 만들기 #5 - Service 구현 Service : Business Logic을 담당하는 부분이며 DB로부터 데이터를 받거나 전달해주는 역할을 한다. ++ 추가 설명 @Controller Handler가 Scan 할 수 있는 Bean 객체가 되어 Servlet용 컨테이너에 생성된다. @Service, @Repository 해당 Class를 루트 컨테이너에 Bean 객 체로 생성 BoardService : 게시판 Service CustomOAuth2Service : SpringSecurity로 OAuth2 Google Login 관련 Service ** shop.pingping2.board.service.CustomOAuth2Service는 추후 SpringSecurity 부분에서 설명 ** shop.pingping2.board.servi..
[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'를 ..

반응형