본문 바로가기

분류 전체보기

(19)
[Spring Boot] Rest API 만들기(5) 비동기 예외 처리 @Async를 활용한 비동기 방식을 사용하게 되면 예외 상황에서 요청에 대한 응답으로 에러를 받지 못하기 때문에 별도의 처리를 하지 않으면 서버 로그에만 에러가 남게 되고 모르고 넘어가는 경우가 있습니다. 이전 포스팅에서 예외상황을 @RestControllerAdvice 활용하여 한 곳에서 관리하도록 구현하였는데 비동기 상황에서도 동일하게 한 곳에서 예외처리를 하는 방법에 대해 알아보겠습니다. 1. Async Config 설정 아래 어노테이션을 설정하여 비동기 프로세스에 대해 설정을 추가합니다. - @Configuration: 설정 클래스임을 명시 - @EnableAsync: 비동기 활성화, @Async 어노테이션 사용 가능 package kr.co.sample.sampleapi.common.config..
[Spring Boot] Rest API 만들기(4) 예외 처리 @RestControllerAdvice Rest Api 구현중 오류 메시는 개발자가 의도한 오류(Custom Exception)와 예상치 못한 System Exception으로 구분됩니다. 이번 포스팅에서는 이러한 예외상황에 대해 @RestControllerAdvice를 활용하여 공통 예외 처리(Exception handler)를 적용하는 방법에 대해 알아보겠습니다. 네이버 오픈 API 오류 메시지 형식 가이드처럼 API 오류 메시지에 대해 일관된 형식으로 응답하도록 설계해야 합니다. 신규 API를 구현할 때마다 작성하도록 설계하는 경우 작업자마다 일관된 응답 구조를 보장하기 어렵기 때문에 별도의 작업을 하지 않아도 일관된 오류 메시지 형식으로 응답할 수 있도록 해야 합니다. 1. 에러 응답 모델 생성 일관된 오류 메시지 형식으로 응답하기 위..
[Spring Boot] Rest API 만들기(3) Swagger API 문서 자동화 적용 Rest Api 애플리케이션 개발에 있어 API 스펙에 대한 문서작업은 적지 않은 시간을 요구합니다. 또한 운영을 하게 되면서 지속적으로 문서를 업데이트하는 것 또한 많은 리소스가 필요합니다. 이러한 시간을 단축시키기 위해 문서 자동화 프레임 워크를 이용하는 방법이 있습니다. 대표적으로 Swagger, Spring REST Docs가 있는데 그중 Swagger 적용 방법에 대해 알아보겠습니다. 1. Dependency 설정 Maven io.springfox springfox-swagger2 2.9.2 io.springfox springfox-swagger-ui 2.9.2 Gradle // https://mvnrepository.com/artifact/io.springfox/springfox-swagger..
[Spring Boot] Rest API 만들기(2) Controller 구현 RestApi개발 과정 중 컨트롤러 구현 방법 및 유용한 어노테이션에 대해 알아보겠습니다. 1. Controller 역할 구현 방법에 앞서 컨트롤러의 역할은 여러 형태의 클라이언트로부터 요청을 받아 비즈니스 로직으로 전달하고 비즈니스 로직의 결과를 응답해주는 역할을 합니다. 2. Methods Restful 한 api를 구현하기 위해 HTTP Methods를 활용하여 API가 처리해야 할 행위를 정의합니다. 주로 사용하게 되는 Methods는 아래와 같으며 URL 설계에 대한 내용은 다른 포스팅에서 다루도록 하겠습니다. GET: 리소스를 조회합니다. POST: 리소스를 생성합니다 PUT: 리소스를 교체합니다. DELETE: 리소스를 삭제합니다. PATCH: 리소스를 업데이트합니다. 참고로 PUT과 PAT..
Intellij 롬복(Lombok) 설치 및 설정 방법 Intellij에서 Lombok 설정 방법에 대해 알아보겠습니다. Lombok은 자바 클래스에서 자주 사용하는 getter, setter 등을 어노테이션을 사용하여 반복되는 작업을 생략하도록 빌드 시점에 자동으로 생성해주는 플러그인입니다. 1. Dependency 설정 Maven org.projectlombok lombok 1.18.16 provided Gradle // https://mvnrepository.com/artifact/org.projectlombok/lombok providedCompile group: 'org.projectlombok', name: 'lombok', version: '1.18.16' 2. Plugin 설치 Intellij 2020.3 버전부터는 Lombok Plugin을 ..