2줄 요약프런트엔드 개발자와 협업을 위해 Swagger 적용각 어노테이션별 특징 및 사용법 정리 개발환경Spring boot : 3.3.2Swagger(=OpenAPI): 2.6.0Java: 17 배경설명한동안 신규 프로젝트의 기능 개발에만 집중한다고 쿼리와 아키텍처 구성, 테이블 설계에만 빠져 살았습니다. 개발단계가 어느 정도 수면 위로 올라오기 시작했고, 마침 주간 스프린트에서 Swagger 적용 건의가 있어 신규 프로젝트에 적용해 보기로 했습니다. 여러 블로그와 문서를 찾아보면서 Spring boot 3.0 이상 버전부터 Swagger의 많은 변화가 있어 포스팅을 통해 정리해보고자 합니다. Swagger? OAS? Spring Rest docs? 용어 정리부터Open API Specificatio..
한 달간의 기업정보 조회 API 개발 내용을 정리하기 위한 포스팅입니다. 📌 2줄 요약1) 외부 API 호출 시 QueryParameter의 다양한 조건을 어떻게 처리할 것인가? → UriComponentsBuilder2) API 호출시 걸린 시간과 Endpoint uri를 로그로 기록하려면? → Interceptor 1. 개발 배경신규 API의 역할을 한마디로 정리하면 미들웨어(Middleware)입니다. 자사 플랫폼 서비스(이하 A서비스라고 호칭)와 분리되어 운영되며, 주 업무는 외부 API 호출 및 DB 저장입니다. A서비스에서 기업 정보가 필요한 경우 신규 API를 통해서 정보를 조회하도록 강제해 직접적인 외부 API를 막아두었습니다. 이렇게 한 이유는 크게 두 가지가 있습니다. 서비스 ..
테스트 환경의존성spring-boot-starterspring-boot-starter-data-jpaspring-boot-start-testh2 databaseplugins { id 'org.springframework.boot' version '2.7.2' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java'}group = 'com.example'version = '0.0.1-SNAPSHOT'sourceCompatibility = '11'repositories { mavenCentral()}dependencies { implementation 'org.springframework.boot:spring-..
@ExceptionHandler특정 예외가 발생했을 때 해당 예외를 처리하는 메서드를 정의하는데 사용@ControllerAdvice와 @RestControllerAdvice 클래스 내에 정의@ControllerAdvicepublic class GlobalExceptionHandler { @ExceptionHandler(ResourceNotFoundException.class) public ResponseEntity handleResourceNotFoundException(ResourceNotFoundException ex) { return new ResponseEntity(ex.getMessage(), HttpStatus.NOT_FOUND); } @ExceptionHan..
1. 정리하게된 배경초기 도메인 필드의 유효성을 검증하고자, 아래와 같이 @NonNull을 이용해서 구현했다. 초기 프로젝트 환경에서 validation 의존성이 추가되지 않아서, Spring 에서 제공되는 @NonNull이 있길래 사용했다. 클라이언트에서 입력받았을 때 해당 필드값이 비어있으면 예외를 처리가하기 위함이었는데 이에 대해 리뷰어님께 코멘트를 받았다. 해당 어노테이션에 대한 이해가 부족한 것으로 판단해서 코멘트를 주신것 같아 이번기회에 정리해보기로 했다.NonNull 과 NotNull, NotBlank 는 서로 어떤 차이가 있을까요?이들의 차이를 알아보고 적용해보는 것도 좋을거 같습니다AS-IS 코드import org.springframework.lang.NonNull;import roome..
※ 배경 설명프로젝트 : Spring 기반 방탈출 예약 시스템자바 버전 : 17스프링부트 버전 : 3.2.4스프링 버전 : 6.x데이터 저장 방식 : HashMap 기반 인메모리 예외처리 초기 예약 삭제 기능을 개발할 때, 클라이언트로부터 예약 id값을 이용해 인메모리 저장소에서 조회 후 반환하도록 로직을 구성했다.자료구조는 HashMap 이고, stream의 filter를 이용해 조건을 조회 후 List로 반환한다. 해당 로직에 대한 코드리뷰는 아래와 같은데, 조회할 id 값이 없는 경우 예외처리가 필요하다는 것을 놓쳤다. (기본적으로 유효성 검증은 필수인데 이런 부분에서 실수를 하다니... 분발해야지) id에 해당되는 원소가 존재하지 않는 경우는 어떻게 될까요? 사용자가 이를 인지할 수 있도록 해주..
- Total
- Today
- Yesterday
- 코딩테스트
- springboot
- JWT
- Java
- dxdy
- 코드트리
- BFS
- 나만의챗봇
- Comparator
- 재기동
- RASA
- BufferedWriter
- 자바
- BufferedReader
- 개발자취준
- 항해99
- 백준
- 챗봇
- Comparable
- 취업리부트코스
- 회고록
- thymeleaf
- 유데미
- script
- 글또
- 전자정부프레임워크
- 취리코
- Spring
- NLU
- 객체정렬
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |