spring boot 8

[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 WebSocket STOMP 채팅 서버 구현하기 (with. JWT, Exception Handling)

===== 채팅서버 구현하기 시리즈 ===== ✔️ [Web-Network] - 채팅 서버 설계를 위한 배경지식 정리 (HTTP, WebSocket, WebRTC) ✔️ [Spring/Spring Boot] - Spring WebSocket 공식문서 가이드 살펴보기 👉🏻 [Spring/Spring Boot] - Spring WebSocket STOMP 채팅 서버 구현하기 (with. JWT, Exception Handling) ✔️ [Spring/Spring Boot] - Spring Data mongoDB + mysql 사용하기 (with. queries) spring 으로 간단하게 채팅기능을 구현해 기록해보고자 합니다. 구현을 중점으로해서 가장 좋은 방법은 아닐겁니다(?) 만들고자 했던 서비스는, 카..

Spring/Spring Boot 2023.06.14

[Spring] restdocs + swagger ui 같이사용하기 (restdocs 문서 자동화)

✨ api 문서화 정리 글 Swagger Spring Rest Docs RestDocs + Swagger-UI 같이사용하기 오느른, 오늘은,, 오늘우리는,,, Spring Restdocs 를 사용해 test 코드로 Ascciidoc 문서조각을 모으고,, 모아서 만든 adoc 문서를 또 편집하고.. html 로 변환하고 이 일련의 귀찮은 과정을 거쳐야하는 Spring Rest Docs 의 단점을 커버하기 위해 Swagger 와 restdocs 를 결합해보겠습니다 ! 👏🏻👏🏻👏🏻 사실 시작은 이러했습니다. 현재 사내에서는 Swagger 만을 사용하고 있기 때문에 프로덕션코드에 API 문서를 위한 코드가 존재하는게 지저분해서 현재 하고있는 토이프로젝트에는 RestDocs 를 적용해 보았습니다. 하지만, 아래처..

Spring/Spring Boot 2023.04.14

[Spring] querydsl orderby null - 동적 정렬 스킵하기

queryDsl 에서 OrderSpecifier 를 사용하여 동적으로 정렬할 컬럼을 지정할 수 있습니다. (참고) ✨이번 게시글에서는, 동적 정렬 시 특정조건에서는 정렬을 하지않는 방법에 대해서 정리해보겠습니다. 👏🏻 사건의 발단은 이렇습니다. where 절의 BooleanExpression 처럼, null 을 반환하면 조건에 무시될 것이라 생각해서 OrderSpecifier 에서 조건에 맞지않으면 null 을 반환하여 orderBy 를 무시하자라는 무식생각으로 접근을 해보았습니다. public List getSortFiledEntityList(String field) { return queryFactory .select(..) .from(qEntity) .orderBy(sortByField(field)..

Spring/Spring Boot 2023.02.03

[Spring] Spring JWT 인코딩, 디코딩 하기 - Java Json 파싱

같이 보면 좋을 연결된 포스팅들 ✔️ Spring Jwt Refresh Token - 인증 인가의 흐름 ✔️ [Spring] jwt란 - jwt 내부구조, 동작과정, 스프링에서 파싱하기 👉 [Spring] Spring JWT 인코딩, 디코딩 하기 - Java Json 파싱 이번에 포스팅할 내용은 spring 에서 jwt 를 만들고, 외부에서 받아온 jwt 를 해석하는 방법과 jwt 해석한 byte 정보를 json 으로 파싱해서 jwt payload 에서 원하는 정보를 추출하는 방법 입니다. 📗 Spring JWT 만들기 Token 을 만드는 방법까지는 아니고, 간단하게 Test를 위해 Spring 에서 JWT 만드는 방법입니다. 저는 jjwt 라이브러리를 사용했고, jjwt는 JWT 토큰 생성 및 JWT..

Spring/Spring Boot 2022.08.23

[Spring] JPA FindAll<Entity> to convert DTO (ModelMapper)

Spring에서는 DTO를 이용해서 사용자에게 Request를 받고, Response를 보냄으로써, 데이터를 보호한다. Request를 DTO로 받는방법은 정말 많고, 자료도 많지만 Response를 DTO로 변환하는 방법은 잘 나오지 않아 정리해 보고자 한다. 1) 가장 쉬운 방법 가장 쉬운 방법은 역시 노가다다. Response로 보내기 위한 엔티티 정보를 불러오와서, Setter로 하나씩 DTO 클래스에 입력해주면된다. 하지만 이건 쿨하지 못하다. 2) ModelMapper 이 글의 주된 목표이다. ModelMapper를 사용하면, 비교적 쿨하게, 한방에, 센스있는 converting이 가능하다. ModelMapper란 ModelMapper의 목표는 특정 사용 사례를 처리하기 위한 간단하고 리팩토링..

Spring/Spring Boot 2021.12.03

@NoArgsConstructor 과 @RequiredArgsConstructor

@NoArgsConstructor @NoArgsConstructor 어노테이션은 lombok 의 기능 중 하나이다. Getter, Setter 와 함께 당연시(?)되게 쓰이는 코드를 줄이기위해 쓰이는 어노테이션으로 알고있다. 주요기능은, 기본 생성자의 생성이다. 파라미터가 없는 생성자를 만든다. 초기 값이 필요한 final 필드가 있을 경우, 컴파일 에러 @NoArgsConstructor(force=true) 를 하면, 컴파일 에러를 내지 않고 0 / false / null 로 초기화 @RequiredArgsConstructor @RequiredArgsConstructor 어노테이션은 의존성 주입을 위해 사용한다. 주요 기능은 @NonNull이나 final이 붙은 필드에 대한 생성자를 생성한다. 두 어노..

Spring/Spring Boot 2021.11.25

[IntelliJ] 01. Spring 부트 프로젝트 세팅하기

일단 Spring boot를 이용하여 프로젝트를 시작해 봅니다. 1. 인텔리제이 설치 후 실행 - New Project 2. Spring Initializr 클리 Name : 프로젝트 명 Type : Gradle 선택 Group : 폴더 명 java : 8 jdk : 1.8 3. 다음화면에서 스프링부트에 필요한 패키지들을 설치할 수 있다. Lombok : getter setter 편하게 해줌 Spring web Spring Data JPA : Spring JPA ORM H2 Database : 테스트용 데이터베이스 MySQL Driver : Mysql 이정도 설치해주면 된다. 4. 프로젝트 생성 완료~ main > java > com.sparta.item01 > Item01Application.java ..

Spring/Spring Boot 2021.11.04
반응형