최근 프로젝트 초기 구조를 잡는 일을 하면서 공통 응답과 에러 처리에 대해 고민하게 되었습니다. 지금까지는 이미 만들어진 서비스의 소스 코드를 수정하고 일부 신규 기능을 개발하는 업무를 주로 했기 때문에 기존에 사용하던 응답과 에러 처리 방식을 사용했고 해당 부분에 대해 고민하지 않았던 것 같습니다. 오늘은 프로젝트의 기본이 되는 예외 처리를 Spring Boot가 어떻게 처리하도록 지원하는지 정리해보겠습니다. API 개발에서 최종적으로 저는 @ExceptionHandler 와 @RestControllerAdvice 를 사용할 예정이지만 그 전에 어떤 식으로 예외 처리가 될 수 있는지 차근차근 알아보겠습니다. 1. 스프링의 기본적인 예외 처리 방법 Spring은 만들어질 때(1.0)부터 에러 처리를 위한..

최근 회사에서 API 문서를 Spring Restdocs 로 작성하고 있습니다. 이를 사용하여 일반적인 요청,응답은 작성을 하고 있었는데 추가로 요청 사항이 있었고 이를 개선한 과정에 대해 적어보려고 합니다. (Spring Restdocs 적용을 위한 초기 설정 + 아래 내용 코드는 여기를 참고해주세요!) 가장 큰 요청 사항은 Enum 값을 확인하기 어렵다는 것이었습니다. 현재 진행하는 프로젝트에서는 다양한 코드값들을 Enum으로 사용하고 있었는데 일반적인 요청, 응답을 보면 description 영역에 모든 값들이 표시되지 않아 별도 문서를 확인해야 하는 불편함이 있었습니다. 이를 해결하기 위해 enum 값을 별도로 확인할 수 있는 api를 생성하고 조회할 수 있도록 하였습니다. 프로젝트 내 모든 en..
제대로된 동작 방식을 이해하지 못하고 두 Annotation을 사용해서 발생했던 이슈가 있어서 기록용으로 남겨둡니다... 먼저 String으로 들어오는 날짜를 LocalDateTime으로 받기 위해서 @JsonFormat을 사용하였습니다. https://jojoldu.tistory.com/361 https://velog.io/@zooneon/Java-ObjectMapper%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%98%EC%97%AC-JSON-%ED%8C%8C%EC%8B%B1%ED%95%98%EA%B8%B0 그리고 RequestBody로 받는 객체에 @Builder 패턴을 적용하였습니다. https://esoongan.tistory.com/82 @Builder를 사용하니 @JsonFo..
1. 설치 Spring Boot Validation Starter를 추가합니다. (Bean Validation 구현체로 Hibernate Validator를 사용합니다.) Maven 의 경우 아래 내용을 추가하면 됩니다. org.springframework.boot spring-boot-starter-validation Gradle 의 경우는 아래 내용을 추가합니다. implementation 'org.springframework.boot:spring-boot-starter-validation' 2. 기본 제약 설정 및 검사 Spring Boot MVC 패턴의 Controller 에서 @RequestBody 를 통해 객체를 받는 경우, 해당 객체에 대한 유효성 검사는 다음과 같이 할 수 있습니다. 먼저,..
1. docker-compose로 Redis 띄우기 Docker로 Redis를 띄우기 위해 docker-compose.yml 파일을 아래와 같이 작성합니다. version: "3" services: redis: image: redis:alpine command: redis-server --port 6379 container_name: redis_boot hostname: redis_boot labels: - "name=redis" - "mode=standalone" ports: - "6379:6379" 아래 명령을 통해 Redis를 띄웁니다. $ docker-compose up -d 2. redis 의존 추가 build.gradle 파일에 아래와 같이 의존을 추가합니다. dependencies { .....
- Total
- Today
- Yesterday
- Algorithm
- 프로그래머스
- CodeDeploy
- DFS
- sort
- ECR
- java
- string
- EC2
- 에라토스테네스의 체
- array
- 조합
- 소수
- Dynamic Programming
- Combination
- search
- CodePipeline
- CodeCommit
- BFS
- AWS
- 순열
- ionic
- programmers
- map
- 수학
- cloudfront
- SWIFT
- permutation
- spring
- Baekjoon
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |