3줄 요약- E2E 테스트 코드 작성 중 S3를 대체할 수 있는 라이브러리가 있나 궁금해짐- LocalStack을 통해 S3 뿐만 아니라 AWS 서비스를 대체하여 테스트할 수 있다는 걸 알게 됨- Mockito를 통한 모킹보다 LocalStack을 통해 업로드/다운로드를 확인할 수 있고 로컬에서 AWS 환경구축을 할 수 있는 점이 큰 메리트라고 생각함. 테스트 환경에서 S3를 모킹 하는 게 맞을까?라는 고민에서 시작된 이야기요즘 들어 테스트 코드에 대한 여러 고민들이 많다. 그동안 신규 feature를 작업해오면서 테스트코드는 전혀 작성하지 않고 진행해 왔었다. 그렇다보니 운영에서 런타임 에러가 간혹 발생하는데 개발팀 내 테스트코드에 대한 공감대가 형성되았고, 테스트코드를 적용해 보는 게 어떻겠냐는 개..

Spring boot에서 Swagger 적용 시 Swagger 어노테이션을 직접 Controller와 DTO에 적용했었다. 이 경우 두 가지 단점이 존재했다.1. 백엔드와 프론트가 동시에 작업할때 API 명세를 하기위해 Controller와 DTO를 정의 후 어노테이션을 적용해야하는 번거로움2. Swagger 어노테이션으로 인해 코드가 기하급수적으로 늘어나고 가독성 또한 떨어짐 이러한 단점을 보완할 수 있는 방법을 찾아보다 yaml 파일로 apidoc을 정의하고 이를 Swagger가 읽어 들여 적용하는 방식을 알게되었다.API 명세서를 기반으로 api-docs.yaml 을 정의하고, 백엔드와 프론트가 각각 해당 문서를 기반으로 각자 업무를 병렬로 수행할 수 있는 점과 필요 시 백엔드 서버가 없이 프론트 ..

Spring 기반 애플리케이션에서 DTO(Data Transfer Object)와 Entity 간 변환은 대부분의 API 요청과 응답에서 필수적으로 수행되는 작업이다. 이 과정에서 비효율적으로 구현되면 코드 중복, 유지보수의 어려움, 때로는 성능 저하까지 초래할 수 있다. 이 글에서 다양한 DTO-Entity 변환 전략과 예시 및 장단점을 비교해보려고한다. MapStruct와 ModelMapper 학습 소스코드는 깃허브에서 확인할 수 있다. 프로젝트 구성프레임워크 : Spring boot 3.3.9빌드 도구 : gradeJava 버전 : 17주요 의존성 :- Spring Data JPA- Spring Web- Lombok- MapStruct- ModelMapper- Postgresql 14 (Docke..

배경설명회사에서 기업 신용 평가 서비스를 개발 중 프론트엔드 개발자로부터 이슈를 전달받았다."가업 재무제표가 2개씩 조회돼요..!" (음... 동시성인가 보구먼) "수정하는데 꽤 오래 걸릴 것 같아요 ㅠㅠ." 그렇게 5일 동안 겪은 이야기다. 원인 분석로직은 아래 순서와 같이 수행된다. 이 과정에서 문제 되는 부분은 "재무제표 테이블 조회 결과가 없으면 - 외부 API 호출 후 응답값을 저장"이다.1. 사업자번호로 재무제표 테이블에 기업을 조회한다.2. 조회 결과가 없으면 외부 API를 호출 후 DB에 저장한다.3. 저장된 기업 정보를 다시 조회한다. 첫 번째 쓰레드가 외부 API 호출 후 DB 저장 전에 두 번째 쓰레드가 재무제표 테이블을 조회하기 때문에 두 번째 쓰레드에서 외부 API 호출 후 D..

이전 포스팅에서 Swagger 입문기에 대해 글을 썼었다. 이후 신규 프로젝트에 API 명세서 역할로 Swagger를 사용 중이다. 요즘 들어 Swagger의 장단점을 몸소 겪고 있는데, 추후에 관련 내용을 정리 후 포스팅 해보려고 한다.(궁금하신 분은 아래 포스팅 참고!) 2024년12월 Swagger 입문기2줄 요약프런트엔드 개발자와 협업을 위해 Swagger 적용각 어노테이션별 특징 및 사용법 정리 개발환경Spring boot : 3.3.2Swagger(=OpenAPI): 2.6.0Java: 17 배경설명한동안 신규 프로젝트의 기능 개발에만better-tomorrow-than-today.tistory.com 3줄 요약- 장점: 테스트 강제, 소스코드 침범 안 함- 단점: 설정 겁나 복잡함- 테..

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..
- Total
- Today
- Yesterday
- 알고리즘
- BufferedReader
- 자바
- RASA
- 유데미
- 회고록
- script
- 전자정부프레임워크
- NLU
- 재기동
- 코드트리
- spring boot
- dxdy
- 글또
- jeus
- 나만의챗봇
- Java
- BufferedWriter
- Comparable
- thymeleaf
- 객체정렬
- JWT
- springboot
- Spring
- 챗봇
- JPA
- Comparator
- PostgreSQL
- 백준
- BFS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |