본문 바로가기

Spring13

[Spring] @Retryable를 활용하여 깔끔하게 API 및 메소드 재호출하기 개발을 하다보면 어떠한 로직이 성공적으로 수행되지 않았을 경우에 일종의 재시도 혹은 재호출을 하는 경우가 존재합니다. 일반적으로 클라이언트가 서버측에 특정 요청을 했을때 오류가 발생하거나 올바르지 않은 응답이 이루어질때에는 단순히 한번 더 호출 혹은 정해진 제한 횟수만큼의 재호출을 하도록 하는 경우가 있을겁니다. 아래의 코드를 한번 봅시다. private SearchAPI searchApi; public List fetch() { try { return searchApi.search(); } catch (Exception e) { throw new RuntimeException("오류 발생"); } } 앞선 코드에서 작성된 fetch() 메소드는 단순히 검색 API 요청을 수행한 후 정상적으로 응답이 이.. 2022. 2. 15.
[Spring Data JPA] JPA Query Methods - QuickStart 5 (End) 2021.12.12 - [Spring/Spring Data JPA] - [Spring Data JPA] Fetch Join (N + 1 Issue) - QuickStart 4 2021.12.12 - [Spring/Spring Data JPA] - [Spring Data JPA] 연관 관계 자식(하위) Entity 작성 - QuickStart 3 2021.12.12 - [Spring/Spring Data JPA] - [Spring Data JPA] JPA Entity, Repository, Service 클래스 작성 (조회 및 저장) - QuickStart 2 2021.12.12 - [Spring/Spring Data JPA] - [Spring Data JPA] 예제 프로젝트 생성 및 초기 환경 구성 - .. 2021. 12. 12.
[Spring Data JPA] Fetch Join (N + 1 Issue) - QuickStart 4 2021.12.12 - [Spring/Spring Data JPA] - [Spring Data JPA] 연관 관계 자식(하위) Entity 작성 - QuickStart 3 2021.12.12 - [Spring/Spring Data JPA] - [Spring Data JPA] JPA Entity, Repository, Service 클래스 작성 (조회 및 저장) - QuickStart 2 2021.12.12 - [Spring/Spring Data JPA] - [Spring Data JPA] 예제 프로젝트 생성 및 초기 환경 구성 - QuickStart 1 이전글에 이어서 작성합니다. # 해당 시리즈 게시글은 Notion에서 작성된 내용을 그대로 옮겨오는 과정에서 서식의 깨짐 및 부자연스러움이 발생할 수 있.. 2021. 12. 12.
[Spring Data JPA] 연관 관계 자식(하위) Entity 작성 - QuickStart 3 2021.12.12 - [Spring/Spring Data JPA] - [Spring Data JPA] JPA Entity, Repository, Service 클래스 작성 (조회 및 저장) - QuickStart 2 2021.12.12 - [Spring/Spring Data JPA] - [Spring Data JPA] 예제 프로젝트 생성 및 초기 환경 구성 - QuickStart 1 이전글의 내용을 이어서 작성합니다. # 해당 시리즈 게시글은 Notion에서 작성된 내용을 그대로 옮겨오는 과정에서 서식의 깨짐 및 부자연스러움이 발생할 수 있습니다. 1:N 연관 관계를 가지는 하위 Entity 작성 io.starter.jpatutorial.domain.jpo.CommentJpo @Getter @Sette.. 2021. 12. 12.
[Spring Data JPA] JPA Entity, Repository, Service 클래스 작성 (조회 및 저장) - QuickStart 2 2021.12.12 - [Spring/Spring Data JPA] - [Spring Data JPA] 예제 프로젝트 생성 및 초기 환경 구성 - QuickStart 1 이전글의 내용을 이어서 작성합니다. # 해당 시리즈 게시글은 Notion에서 작성된 내용을 그대로 옮겨오는 과정에서 서식의 깨짐 및 부자연스러움이 발생할 수 있습니다. Entity 클래스 및 모델 클래스 작성 io.starter.jpatutorial.domain.jpo.PostJpo @Getter @Setter @ToString @NoArgsConstructor @AllArgsConstructor @Entity @Table(name = "post") public class PostJpo { /** * 게시글 번호 (Auto Increme.. 2021. 12. 12.
[Spring Data JPA] 예제 프로젝트 생성 및 초기 환경 구성 - QuickStart 1 Spring Data JPA를 직접 사용해보면서 조금이나마 경험을 해볼 수 있는 시리즈를 작성하고자 합니다. 이 글을 통해 프로젝트 생성을 시작으로 Spring Data JPA를 활용한 데이터베이스로부터의 데이터 조회, 생성, 수정 및 엔티티 정의부터 Spring Data JPA가 제공하는 다양한 기능을 사용하는데에 이르기까지를 전달하고자 합니다. 시작하기에 앞서 IDE는 JetBrains Intellij를 사용하고 빌드 도구는 Gradle을 기반으로 진행합니다. # 해당 시리즈 게시글은 Notion에서 작성된 내용을 그대로 옮겨오는 과정에서 서식의 깨짐 및 부자연스러움이 발생할 수 있습니다. 예제 프로젝트 생성 해당 시리즈에서 필요한 최소한의 의존성만 선택해주도록 합니다. 프로젝트 생성 직후 프로젝트 .. 2021. 12. 12.
[Spring Data JPA] JPA(Java Persistence API), Hibernate, Spring Data JPA의 개요 JPA (Java Persistence API) Java Persistence API는 자바의 ORM 표준 스펙이되는 인터페이스이다. 어떠한 라이브러리도, 프레임워크도 아닌 그저 Java를 활용해 RDBMS를 사용하는 방식을 정의한 표준이다. 말 그대로 표준 스펙이고 JPA 스펙을 기반으로 구현된 ORM Framework는 대표적으로 Hibernate가 있다. JPA, Hibernate, Spring Data JPA JPA는 앞서 언급했든 하나의 표준 스펙이며, Hibernate는 JPA Spec을 기반으로 직접 구현한 구현체이며 하나의 ORM Framework이다. Spring Data JPA는 하나의 Spring 모듈로 볼 수 있고 JPA, Hibernate를 기반으로 한 단계 더 추상화시킨 모듈이다.. 2021. 12. 12.
[Spring] @RequestBody를 사용하여 Entity로 변환시 enum 타입 Mapping 재미삼아 Slack Bot을 활용한 API를 개발하면서 작성하는 글이다. 아래의 Controller Method 는 Slack Bot의 Event Receive Endpoint로 만든 메소드이다. 간단하게는 Post 요청을 받아 @RequestBody 어노테이션으로 form data를 EventReceiveMessage로 받는다. @RestController @RequestMapping(value = "/event") public class EventController { @PostMapping(value = "/receive") public void receive( @RequestBody EventReceiveMessage message) { } } 해당 메소드에 다음과 같은 Json 형태의 form .. 2020. 10. 24.
[Spring Boot] UserService, BoardService 클래스 작성하기 [Spring Boot 기반으로 간단한 게시판 웹사이트 만들기 - 5부] 2019/02/24 - [Spring/Spring Boot 게시판 만들기] - [Spring Boot] Spring Boot로 MyBatis 연동하기 (MySQL) [Spring Boot 기반으로 간단한 게시판 웹사이트 만들기 - 4부]2019/02/24 - [Spring/Spring Boot 게시판 만들기] - [Spring Boot] User와 Board의 데이터베이스 테이블 구축 및 DTO(모델) 클래스 작성하기 [Spring Boot 기반으로 간단한 게시판 웹사이트 만들기 - 3부]2019/02/22 - [Spring/Spring Boot 게시판 만들기] - [Spring Boot] JSP파일 만들어서 Hello Spring Boot! 출력하기 [Spring Boot 기반으로 간단한 게시판 웹사이.. 2019. 2. 24.
[Spring Boot] Spring Boot로 MyBatis 연동하기 (MySQL) [Spring Boot 기반으로 간단한 게시판 웹사이트 만들기 - 4부] 2019/02/24 - [Spring/Spring Boot 게시판 만들기] - [Spring Boot] UserService, BoardService 클래스 작성하기 [Spring Boot 기반으로 간단한 게시판 웹사이트 만들기 - 5부] 2019/02/24 - [Spring/Spring Boot 게시판 만들기] - [Spring Boot] User와 Board의 데이터베이스 테이블 구축 및 DTO(모델) 클래스 작성하기 [Spring Boot 기반으로 간단한 게시판 웹사이트 만들기 - 3부]2019/02/22 - [Spring/Spring Boot 게시판 만들기] - [Spring Boot] JSP파일 만들어서 Hello Spring Boot! 출력하기 [Spring Boot 기반으로 간단한 게시판 웹.. 2019. 2. 24.