전체 글

Solmi's Development Blog

    [JPA] @OneToOne, 일대일(1:1) 연관관계 매핑 시 주의할 점 (지연 로딩 이슈)

    [JPA] @OneToOne, 일대일(1:1) 연관관계 매핑 시 주의할 점 (지연 로딩 이슈)

    문제 JPA를 사용하며 테스트를 통해 실제 수행되는 쿼리를 수시로 체크하는데, 일대일(1:1) 양방향 연관관계를 지니는 테이블에서 FetchType.LAZY가 적용되지 않아 불필요한 쿼리가 호출되는 것을 발견하였다. 아래는 문제가 되는 SHELTER와 SHELTER_USER의 연관관계 다이어그램이다. SHELTER와 SHETLER는 1:1 양방향 연관관계로 매핑되어 있으며, 대상 테이블인 SHELTER_USER에 외래키를 두고 있다. 문제는 SHELTER를 조회 시 SHELTER_USER 테이블도 즉시 로딩되어 아래와 같이 쿼리가 두 번 호출된다. 2023-08-11T17:58:58.461+09:00 DEBUG 2272 --- [nio-8080-exec-3] org.hibernate.SQL : /* */..

    [Sentry] Exception Handler를 거치기 전 Sentry로 에러 전달 및 Exception 필터링 (Spring Boot)

    https://intothemaze.tistory.com/14 [Sentry] Spring Boot에 Sentry 적용하기 Sentry Sentry는 오픈소스 기반의 에러 트래킹 및 로깅 도구로, 애플리케이션에서 발생하는 버그, 예외, 성능 문제 등을 감지하고 이를 기록하여 개발자들에게 제공한다. 구독형인 클라우드 버전과 intothemaze.tistory.com https://intothemaze.tistory.com/15 [Sentry] Sentry Slack 연동 및 Logging 레벨 설정 (Spring Boot) 지난 포스팅과 연결 됩니다. https://intothemaze.tistory.com/14 [Sentry] Spring Boot에 Sentry 적용하기 Sentry Sentry는 오픈소..

    [Sentry] Sentry Slack 연동 및 Logging 레벨 설정 (Spring Boot)

    [Sentry] Sentry Slack 연동 및 Logging 레벨 설정 (Spring Boot)

    지난 포스팅과 연결 됩니다. https://intothemaze.tistory.com/14 [Sentry] Spring Boot에 Sentry 적용하기 Sentry Sentry는 오픈소스 기반의 에러 트래킹 및 로깅 도구로, 애플리케이션에서 발생하는 버그, 예외, 성능 문제 등을 감지하고 이를 기록하여 개발자들에게 제공한다. 구독형인 클라우드 버전과 intothemaze.tistory.com Sentry Logging Level 설정 application.yml에서 Sentry의 Logging Level을 WARN으로 설정해줄 수 있다. sentry: dsn: {dsn} logging: enabled: true minimum-event-level: warn Slack 연동 Settings > Integr..

    [Sentry] Spring Boot에 Sentry 적용하기

    [Sentry] Spring Boot에 Sentry 적용하기

    Sentry Sentry는 오픈소스 기반의 에러 트래킹 및 로깅 도구로, 애플리케이션에서 발생하는 버그, 예외, 성능 문제 등을 감지하고 이를 기록하여 개발자들에게 제공한다. 구독형인 클라우드 버전과 설치형인 온 프레미스 버전으로 나뉜다. 주요 기능 에러 모니터링: 애플리케이션에서 발생하는 에러와 예외를 실시간으로 모니터링하여 개발자들에게 알린다. 이를 통해 빠르게 에러에 대처할 수 있고 사용자들의 문제를 사전에 감지할 수 있다. 스택 추적(Stack Trace): 에러가 발생한 위치를 포함한 스택 추적 정보를 제공하여, 어떤 코드에서 에러가 발생했는지를 파악할 수 있다. 이를 통해 디버깅과 문제 해결을 용이하게 한다. 사용자 정보: 에러가 발생한 사용자의 정보(환경, 브라우저, 디바이스 등)를 수집하여..

    [JPA] Failed to create query for method public abstract. No property found for type.

    에러 내용 Caused by: java.lang.IllegalArgumentException: Failed to create query for method public abstract org.springframework.data.domain.Page co m.bemate.domain.shelter.repository.PetRepository.findByShelterNo(com.bemate.domain.shelter.entity.Shelter,org.springframework.data.domain.Pageable); No property 'no' found for type 'Shelter'; Did you mean 'id'; Traversed path: Pet.shelter 코드 public interf..

    [JAVA] String Pool과 불변성

    [JAVA] String Pool과 불변성

    String과 불변성 Java에서 String은 immutable, 즉 불변 객체이다. 불변(immutable)하다는 것은 문자열이 일단 생성되면 그 값이 고정되어 있으며, 변경되더라도 원래의 문자열 내용이 변경되는 것이 아닌 새로운 문자열 객체가 생성됨을 의미한다. 예를 들어, String str1 = "Hello"; String str2 = str1; str1 = str1 + " World"; 위 코드에서는 "Hello"라는 문자열이 먼저 생성되고, 변수 str1과 str2가 이 문자열을 참조한다. 그리고 str1에 " World"를 추가한 새로운 문자열을 할당한다. 하지만 문자열은 변경할 수 없으므로, 실제로는 새로운 문자열이 생성되고 str1은 이 새로운 문자열을 참조하게 된다. str2는 여전히..