
한 달간의 기업정보 조회 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에 해당되는 원소가 존재하지 않는 경우는 어떻게 될까요? 사용자가 이를 인지할 수 있도록 해주..

이번달부터 학습 테스트로 배우는 Spring 강의를 듣고 있다. 해당 강의는 방탈출 예약 시스템 레거시 프로젝트를 리팩터링 하면서 Spring의 전반적인 기능들을 몸소 겪어볼 수 있는 강의이다.기존에 알고 있던 개발 방식외에 실무자의 개발 방식이 궁금해서 강의를 신청하기로 결심했고, 1차로 받았던 코드 리뷰에 대해 정리해보고자 한다. 1. Entity 와 Dto 의존 관계Service Layer에서 Repository 를 통해 반환한 Entity를 Controller로 반환할 때 편의성을 위해 toDto() 메서드를 만들었다.매번 Entity를 Dto로 변환하는 과정이 많기에 메서드로 작업을 최소화 하고자 했다. 이에 대하여 아래와 같이 리뷰어님의 코멘트를 받았다.Reservation 은 비즈니스 로직을..
- Total
- Today
- Yesterday
- JPA
- 회고록
- 유데미
- spring boot
- springboot
- jeus
- 글또
- 백준
- Spring
- BufferedWriter
- NLU
- Comparable
- dxdy
- 객체정렬
- 자바
- Java
- script
- 알고리즘
- 전자정부프레임워크
- 챗봇
- 코드트리
- BFS
- PostgreSQL
- 나만의챗봇
- JWT
- 재기동
- thymeleaf
- Comparator
- BufferedReader
- RASA
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |