Spring
글 15편
2024
- JPA 컬렉션 Fetch Join과 메모리 페이징 문제
컬렉션까지 EntityGraph로 조회한 뒤 발생한 메모리 페이징 경고와 조회 방식 변경을 기록합니다.
2023
- ReflectionTestUtils로 단위 테스트의 엔티티 ID 설정하기
DB에 저장하지 않은 엔티티의 ID를 테스트 안에서 설정해 작성자 검증을 수행한 기록입니다.
- Querydsl 페이징: PageImpl과 PageableExecutionUtils의 차이
페이지 내용으로 전체 개수를 계산할 수 있을 때 count 쿼리를 생략하는 조건을 살펴봅니다.
- DataJpaTest에서 생성일이 null로 조회될 때
JPA Auditing 설정을 테스트에 가져와 생성일이 기록되도록 한 과정을 정리합니다.
- Facade로 답변 생성 로직의 의존성 분리하기
회원과 질문 조회를 AnswerFacade로 옮긴 리팩터링과 남은 고민을 기록합니다.
- Docker에서 Eureka Client가 접근할 수 없는 IP로 등록됐을 때
Eureka 등록 정보의 IP를 확인하고 배포 환경에서 접근 가능한 주소를 지정한 문제 해결 기록입니다.
- H2 Console 화면이 X-Frame-Options에 막혔을 때
내장 H2 Console 접속 중 프레임 차단을 확인하고 당시 보안 설정을 조정했던 기록입니다.
- MockMvc에서 HttpOnly 쿠키의 토큰 값을 확인했던 방법
Set-Cookie 헤더 전체와 토큰 값의 비교가 실패한 뒤 포함 여부를 검사했던 테스트 기록입니다.
- Spring Boot prod 프로필이 켜졌는데 DB 설정이 맞지 않았던 기록
prod 프로필 활성화 뒤 발생한 DDL 오류와 개발 설정을 분리해 해결했던 과정을 정리했습니다.
- WebFlux에서 이미지 응답과 파일 없음 404 처리하기
클래스패스의 이미지를 읽고 확장자별 Content-Type과 파일이 없을 때의 응답을 처리한 기록입니다.
- 카카오맵 토이 프로젝트 2: WebClient로 날씨 수집 자동화하기
기상청 초단기예보를 조회하고 필요한 값을 저장한 뒤 매시간 수집하도록 예약한 기록입니다.
- 카카오맵 토이 프로젝트 1: 장소 저장과 WebMvcTest
카카오맵에 표시할 장소를 저장하고 MockMvc로 등록·조회·수정·삭제 요청을 테스트한 기록입니다.
- Spring Boot 3.1로 바꾼 뒤 Querydsl Q 타입 컴파일 오류
Spring Boot 버전을 올린 뒤 Querydsl 의존성에 jakarta 분류자를 붙였던 수정 기록입니다.
- Spring의 @Controller와 @RestController 차이
뷰 이름을 반환하는 컨트롤러와 응답 본문을 반환하는 컨트롤러의 차이를 정리했습니다.
- Spring 채팅에서 브라우저 종료 후 남은 참여 정보 정리
STOMP 세션과 채팅방을 연결해 저장하고 DISCONNECT에서 참여 정보를 지웠던 구현 기록입니다.