자바 32

Spring Rest Docs Enum class 문서화 하기

개발환경 : Java 17, Spring 3 현재 사이드 프로젝트에서 Rest Docs + Swagger UI 를 사용 중 입니다. (참고 → restdocs + swagger ui 같이사용하기) 보통 상태나 선택 특정 목록같은 딱딱 선택지가 정해져있는 상태값은 Enum 으로 관리하는 걸 선호하는 편인데, 이게 RestDocs 를 사용하지만, Open API 를 사용하여 바로 Swagger UI 에 적용되는 json 파일을 자동적으로 만들어주다보니, Enum 클래스에 대한 문서 지원이 되지않아 (찾지못해) 신경이 좀 쓰였습니다. 그래서 이번 글에서는 Rest Docs 와 Open API를 이용한 Swagger UI 적용환경에서 ENUM 클래스를 어느정도 문서화하기 편한 상태로 만든 방법에 대해 공유하고자..

Spring/Spring Boot 2024.03.19

[Spring] oneToMany, 일 대 다 관계 조회 성능 테스트 (Jpa, QueryDsl, Java Stream, 단일 DB 조회 쿼리 성능 비교)

👏🏻 오랜만에 포스팅! 오늘은 Spring 에서 다대다, 일대다 관계를 가지는 RDB 테이블에서의 데이터를 가져올 수 있는 방법과, 어떤 방법이 제일 빨랐는지 기록해볼려 합니다. 보통 Spring 에서 JPA를 사용하면 oneToMany, manyToMany 의 관계에서 터지는 N+1 문제를 해결하기 위한 방법을 많이 고민하고는 합니다. 저 또한 취준생때 겪었던 문제 중 가장 고민을 많이 고생했던 문제로 포스팅을 남겼던 기억이 있습니다. 👉 [Spring] JPA N+1 문제 해결방법(지연로딩 N+1, 2개 이상 ToMany 관계, fetch join, 페이지네이션) [목차] ✔️ 이번 포스팅에서는 JPA 의 @OneToMany 기능의 사용을 전혀 고려하지 않고 아래의 방법들에 대해서만 비교를 해보았습니..

Spring/Spring Boot 2023.06.30

[Spring Security] @AuthenticationPrincipal 유닛 테스트 - Custom Mock User 삽입하기

✨ 이번 포스팅에서는, @AuthenticationPrincipal 유닛 테스트에 대해서 기록해보고자 합니다. 현재 프로젝트는 JWT + Spring Security를 사용하고 있고, Spring Security 에서 제공해주는 User 객체가 아닌 실제 디비에 저장되어있는 Custom 한 User 정보를 이용해 인증된 유저를 SecurityContextHolder에 저장하는 방식으로 구현해놓았습니다. 참고 👉 Spring Security 가이드 (with. Spring boot 3.0) - 스프링 시큐리티란, 동작 과정, 사용 방법, JWT 발급 그렇기 때문에 요청이 들어오는 Rest API 에 담긴 JWT가 정상적으로 인증이 가능한 토큰이라면 → 지속적으로 DB에 접근하지 않고도 로그인한 객체 정보를..

[디자인 패턴] 행동 패턴 - 방문자 패턴(Visitor Pattern)

(인프런) 코딩으로 학습하는 GoF의 디자인 패턴 - 백기선, 강의를 보고 정리한 글입니다. 코드는 GitHub 에 있습니다 #1. 객체 생성 관련 패턴 #2. 구조 관련 패턴 #3. 행동 관련 패턴 싱글톤 패턴 팩토리 메소드 패턴 추상 팩토리 패턴 빌더 패턴 프로토타입 패턴 어댑터 패턴 브릿지 패턴 컴포짓 패턴 데코레이터 패턴 퍼사드 패턴 플라이웨이트 패턴 프록시 패턴 책임 연쇄 패턴 커맨드 패턴 인터프리터 패턴 이터레이터 패턴 중재자 패턴 메멘토 패턴 옵저버 패턴 상태 패턴 전략 패턴 템플릿 메소드 패턴 방문자 패턴 ✔️ 방문자 패턴(Visitor Pattern) 비지터 패턴은, 기존 코드를 건드리지 않고 새로운 코드를 추가하는 방법을 제안하는 패턴 방문자 패턴은 비지니스 로직을 객체 구조에서 분리시..

Java/Design Pattern 2023.05.05

[디자인 패턴] 행동 패턴 - 템플릿 메소드 패턴(Template Method Pattern)

(인프런) 코딩으로 학습하는 GoF의 디자인 패턴 - 백기선, 강의를 보고 정리한 글입니다. 코드는 GitHub 에 있습니다 #1. 객체 생성 관련 패턴 #2. 구조 관련 패턴 #3. 행동 관련 패턴 싱글톤 패턴 팩토리 메소드 패턴 추상 팩토리 패턴 빌더 패턴 프로토타입 패턴 어댑터 패턴 브릿지 패턴 컴포짓 패턴 데코레이터 패턴 퍼사드 패턴 플라이웨이트 패턴 프록시 패턴 책임 연쇄 패턴 커맨드 패턴 인터프리터 패턴 이터레이터 패턴 중재자 패턴 메멘토 패턴 옵저버 패턴 상태 패턴 전략 패턴 템플릿 메소드 패턴 방문자 패턴 ✔️ 템플릿 메소드 패턴(Template Method Pattern) 알고리즘의 구조를 서브 클래스가 확장할 수 있도록 템플릿으로 제공하여 구체적인 방법을 서브클래스에게 위임하는 패턴입니..

Java/Design Pattern 2023.04.24

[디자인 패턴] 행동 패턴 - 전략 패턴 (Strategy Pattern)

(인프런) 코딩으로 학습하는 GoF의 디자인 패턴 - 백기선, 강의를 보고 정리한 글입니다. 코드는 GitHub 에 있습니다 #1. 객체 생성 관련 패턴 #2. 구조 관련 패턴 #3. 행동 관련 패턴 싱글톤 패턴 팩토리 메소드 패턴 추상 팩토리 패턴 빌더 패턴 프로토타입 패턴 어댑터 패턴 브릿지 패턴 컴포짓 패턴 데코레이터 패턴 퍼사드 패턴 플라이웨이트 패턴 프록시 패턴 책임 연쇄 패턴 커맨드 패턴 인터프리터 패턴 이터레이터 패턴 중재자 패턴 메멘토 패턴 옵저버 패턴 상태 패턴 전략 패턴 템플릿 메소드 패턴 방문자 패턴 ✔️ 전략 패턴 이란 (Strategy Patterns) 여러 알고리듬을 캡슐화하고 상호 교환 가능하게 만드는 패턴. 전략 패턴이란, 어떤 업무를 수행하는 방법이 여러가지일경우, 이 여러..

Java/Design Pattern 2023.04.21

[디자인 패턴] 행동 패턴 - 옵저버(관찰자) 패턴 (Observer Pattern)

(인프런) 코딩으로 학습하는 GoF의 디자인 패턴 - 백기선, 강의를 보고 정리한 글입니다. 코드는 GitHub 에 있습니다 #1. 객체 생성 관련 패턴 #2. 구조 관련 패턴 #3. 행동 관련 패턴 싱글톤 패턴 팩토리 메소드 패턴 추상 팩토리 패턴 빌더 패턴 프로토타입 패턴 어댑터 패턴 브릿지 패턴 컴포짓 패턴 데코레이터 패턴 퍼사드 패턴 플라이웨이트 패턴 프록시 패턴 책임 연쇄 패턴 커맨드 패턴 인터프리터 패턴 이터레이터 패턴 중재자 패턴 메멘토 패턴 옵저버 패턴 상태 패턴 전략 패턴 템플릿 메소드 패턴 방문자 패턴 ✔️ 옵저버 패턴이란 (Observer Pattern) 다수의 객체가 특정 객체 상태 변화를 감지하고 알림을 받는 패턴. 👏🏻 옵저버 디자인 패턴이란, 객체의 상태 변화를 관찰하는 관찰자..

Java/Design Pattern 2023.04.13

[디자인 패턴] 행동 패턴 - 메멘토 패턴 (Memento Pattern)

(인프런) 코딩으로 학습하는 GoF의 디자인 패턴 - 백기선, 강의를 보고 정리한 글입니다. 코드는 GitHub 에 있습니다 #1. 객체 생성 관련 패턴 #2. 구조 관련 패턴 #3. 행동 관련 패턴 싱글톤 패턴 팩토리 메소드 패턴 추상 팩토리 패턴 빌더 패턴 프로토타입 패턴 어댑터 패턴 브릿지 패턴 컴포짓 패턴 데코레이터 패턴 퍼사드 패턴 플라이웨이트 패턴 프록시 패턴 책임 연쇄 패턴 커맨드 패턴 인터프리터 패턴 이터레이터 패턴 중재자 패턴 메멘토 패턴 옵저버 패턴 상태 패턴 전략 패턴 템플릿 메소드 패턴 방문자 패턴 ✔️ 메멘토 패턴이란 (Memento Pattern) 캡슐화를 유지하면서 객체 내부 상태를 외부에 저장하는 방법. 👏🏻 메멘토 패턴이란, 객체의 상태정보를 가지는 클래스를 따로 생성하여 ..

Java/Design Pattern 2023.04.12

[디자인 패턴] 행동 패턴 - 책임 연쇄 패턴 (Chain of Responsibility Pattern)

(인프런) 코딩으로 학습하는 GoF의 디자인 패턴 - 백기선, 강의를 보고 정리한 글입니다. 코드는 GitHub 에 있습니다 #1. 객체 생성 관련 패턴 #2. 구조 관련 패턴 #3. 행동 관련 패턴 싱글톤 패턴 팩토리 메소드 패턴 추상 팩토리 패턴 빌더 패턴 프로토타입 패턴 어댑터 패턴 브릿지 패턴 컴포짓 패턴 데코레이터 패턴 퍼사드 패턴 플라이웨이트 패턴 프록시 패턴 책임 연쇄 패턴 커맨드 패턴 인터프리터 패턴 이터레이터 패턴 중재자 패턴 메멘토 패턴 옵저버 패턴 상태 패턴 전략 패턴 템플릿 메소드 패턴 방문자 패턴 ✔️ 책임 연쇄 패턴이란 (Chain of Responsibility patterns) 책임 연쇄 패턴에서의 책임이란, 객체지향 5가지 원칙 중 - 단일 책임 원칙에서 말하는 책임과 동..

Java/Design Pattern 2023.04.11

[디자인 패턴] 행동 패턴 - 이터레이터 패턴 (반복자 패턴 - Iterator Pattern)

(인프런) 코딩으로 학습하는 GoF의 디자인 패턴 - 백기선, 강의를 보고 정리한 글입니다. 코드는 GitHub 에 있습니다 #1. 객체 생성 관련 패턴 #2. 구조 관련 패턴 #3. 행동 관련 패턴 싱글톤 패턴 팩토리 메소드 패턴 추상 팩토리 패턴 빌더 패턴 프로토타입 패턴 어댑터 패턴 브릿지 패턴 컴포짓 패턴 데코레이터 패턴 퍼사드 패턴 플라이웨이트 패턴 프록시 패턴 책임 연쇄 패턴 커맨드 패턴 인터프리터 패턴 이터레이터 패턴 중재자 패턴 메멘토 패턴 옵저버 패턴 상태 패턴 전략 패턴 템플릿 메소드 패턴 방문자 패턴 ✔️ 이터레이터 패턴이란 (Iterator Patterns) 집합 객체 내부 구조를 노출시키지 않고 순회 하는 방법을 제공하는 패턴 반복자 패턴의 본질은 기반이 되는 표현을 노출시키지 않..

Java/Design Pattern 2023.04.04
반응형