전체 글

좋은 성과를 얻으려면 한 걸음 한 걸음이 힘차고 충실하지 않으면 안 된다. -단테
·Framework/JPA
프록시(proxy)란❓프록시(Proxy)란 소프트웨어 디자인 패턴의 하나로, 다른 객체를 대신하여 그 객체에 대한 접근을 제어하거나 기능을 확장하는 객체를 의미합니다. 프록시는 실제 객체를 대신하여 그 객체의 메서드 호출을 가로채고, 필요한 경우 실제 객체에 대한 작업을 수행합니다. 프록시는 일반적으로 원래 객체와 같은 인터페이스를 구현하여, 클라이언트가 원래 객체를 사용하는 것처럼 보이게 합니다. 한마디로 표현하자면 "가짜 객체"라고 할 수 있습니다.  위 그림에서 알 수 있듯이 프록시 객체는 실제 Entity를 상속 받아서 만들어지기 때문에 실제 클래스와 겉 모양이 같습니다. 프록시 객체는 실제 엔티티에 대한 접근을 지연시키며, 실제 엔티티가 필요할 때까지 데이터베이스 쿼리를 실행하지 않습니다. 또한..
·TIL,일일 회고
JPA를 사용하다 보면 의도치 않게 N+1 문제가 발생하는 경우가 많습니다.  N+1 문제란, 한 번의 쿼리로 데이터를 조회할 때 연관된 엔티티를 지연 로딩(Lazy Loading)하면서 추가적인 쿼리가 반복적으로 발생하는 현상입니다. 저도 실제 프로젝트에서 N+1 문제를 경험하면서, 왜 이러한 문제가 발생하는지 공부한 지식을 정리하고자 합니다. 지연 로딩(Lazy Loading)이란❓지연 로딩(Lazy Loading)은 JPA에서 제공하는 성능 최적화 기술 중 하나로, 엔티티의 연관된 데이터를 즉시 로딩하는 대신 실제로 필요한 시점에 데이터베이스에서 로드하는 방식입니다. 이 방식은 데이터베이스의 성능을 개선할 수 있지만, 잘못 사용하면 예상치 못한 성능 문제를 초래할 수 있습니다. 대표적인 예가 바로 ..
·TIL,일일 회고
개요 Git repository에 변경사항을 push하는 도중, 스테이징 영역에서 변경 사항이 사라졌지만, PR이 생성되지 않고, 새로운 브랜치도 생기지 않는 문제가 발생했습니다. 먼저, git log 명령어로 커밋 내역을 확인했을 때, 커밋은 정상적으로 이루어진 상태였으며, git status로 확인한 결과 현재 디렉토리와 스테이징 영역에는 변경사항이 없는 상태였습니다. fatal: the remote end hung up unexpectedly 이유를 찾아보니 위와 같은 에러는 주로 Git push 중 네트워크 연결이 끊기거나, 리모트 저장소 (GitHub)와의 통신 문제로 인해 발생합니다. 문제 해결 방법이러한 문제를 해결하기 위해서는 몇 가지 방법이 있습니다.Git 패킷 버퍼 크기 증가SSH 연결..
·TIL,일일 회고
개요오늘 멀티 모듈로 구성된 Spring Boot 프로젝트에서 QueryDSL을 사용하려다 다음과 같은 오류에 직면했습니다./Users/zinu/Dev/project2/SpartaLogistics/com.sparta.logistics.client.hub/build/generated/sources/annotationProcessor/java/main/com/sparta/logistics/client/hub/model/QHub.java:23: error: cannot find symbol public final com.sparta.logistics.common.model.QTimestamped _super = new com.sparta.logistics.common.model.QTimestamped(t..
지누박
ZINU