나의 개발일기

h2: console: enabled: true path: /h2-console application.yml 파일에 위와 같이 설정하면 localhost:8080/h2-console에 접속해서 웹 콘솔을 사용할 수 있다. 문제 상황 그런데 Spring Security를 사용하면 localhost:8080/h2-console에 접속했을 때 아래와 같은 로그인 페이지로 계속 리다이렉트된다. 해결 방법 감사하게도 원인과 해결 방법을 아주 깔끔하게 정리해 주신 글을 찾았다. 요약하자면 /h2-console/** URL에 대하여 인증 면제 CSRF 방지 면제 X-Frame-Option Same Origin 처리를 해주면 해결된다는 내용이다. 코드 다만 Spring Security 버전 6.x 이상부터 엄청나게 업..
🧶 '프로그래머스 데브코스 4기 백엔드'에서 진행한 팀 프로젝트 기록입니다. 부제: 이용 연령 등급 Enum으로 개선하기 이전 포스팅에서 웹툰 '이용 연령 등급' 데이터를 enum 클래스로 관리하게 된 과정을 이야기했다. 그리고 그렇게 처음 만든 enum 클래스는 아래와 같았다. @Getter public enum AgeRating { ALL(0), // 전체연령가 OVER_12(12), // 12세이용가 OVER_15(15), // 15세이용가 OVER_18(18); // 18세이용가 private final int ageLimit; AgeRating(int ageLimit) { this.ageLimit = ageLimit; } } 이번 포스팅에서는 JPA가 enum 타입인 엔티티 속성을 데이터베이스에..
🧶 '프로그래머스 데브코스 4기 백엔드'에서 진행한 팀 프로젝트 기록입니다. 부제: 이용 연령 등급 Enum으로 개선하기 이 포스팅은 네이버 웹툰을 클론코딩하면서 '이용 연령 등급' 데이터에 enum 클래스를 적용함으로써 코드를 개선한 과정에 대한 이야기이다. 특히 이번 편은 어떤 기술보다는 설계에 관해서 했던 잡생각들에 대해 쓰려고 한다. 솔직히 말해서 이전에는 enum이랑 별로 안 친했다. 지금 보면 '아니 이걸 enum 안 쓰면 어디에 써...?'라고 생각한다. 그리고 이 글을 보는 누구든 그렇게 생각할 것 같다. 결과적으로는 후술할 생각과 시행착오를 거쳐 enum과 아주 친해졌고 코드 개선에 알차게 사용할 수 있게 되었다. 서비스 분석 네이버 웹툰에서 웹툰 상세 정보를 살펴보자. 제목, 작가, 썸..
🧶 '프로그래머스 데브코스 4기 백엔드'에서 진행한 팀 프로젝트 기록입니다. 문제 상황 Controller 테스트를 실행할 때 "JPA metamodel must not be empty!" 에러가 발생했다. 각 Controller 테스트는 @WebMvcTest로 진행했다. 원인 @SprinbBootApplication에 @EnableJpaAuditing을 붙였는데, @WebMvcTest로 테스트를 진행해서 발생한 문제이다. @EnableJpaAuditing이 뭔데? ORM에서 Database Auditing이란 영속적 엔티티(persistent entity)와 관련된 이벤트들을 추적하고 로깅하는 것을 의미한다. 간단히 표현하자면, 엔티티 버전 관리를 뜻한다. 엔티티를 추적하기 위해서는 생성 시간이나 수정..