각각의 테스트를 실행하면 성공하지만, 전체 테스트를 돌리면 실패하는 이유? : Spring Context 를 공유하기 때문 //Expected size: 2 but was: 3 in: //[com.group.libraryapp.dto.user.response.UserResponse@69862a1, // com.group.libraryapp.dto.user.response.UserResponse@585718dd, // com.group.libraryapp.dto.user.response.UserResponse@5a644d75] //java.lang.AssertionError: 생성 테스트 - 조회 테스트 1. 최초 생성 테스트 : DB에 user 데이터 1명 추가 @Test fun saveUserTest(..
1 : N 관계에서 Fecth Join 사용시 발생하는 MultipleBagFetchException 해결법 1. ToOne(OneToOne, ManyToOne) 관계를 모두 Fetch Join 한다. 2. 1:N 관계의 Collection Entity는 Lazy Loading(지연 로딩)으로 조회한다. 3. Lazy Loading(지연 로딩) 성능 최적화를 위해 hibernate.default_batch_fetch_size를 적용한다. * QueryDsl 에서도 1:N 관계에서 단 한번의 fetch join 사용해야 하는 건 똑같다. ToOne(OneToOne, ManyToOne) 관계를 모두 Fetch Join 한다. 연관관계에서 자식 테이블인 ToOne 관계에서는 row 수를 증가시키지 않는다. 따..
회원 정보 조회하는 경우, 탈퇴처리된 상태의 회원은 조회가 안되도록 예외처리를 해야하는 상황이 있었다. 당시 controller-service의 역할에 대한 개념이 불명확해서 어디서 예외처리를 해줘야하는지 고민을 한참 했었다.(ㅎㅎ..하하) 그러다가 나와 비슷한 고민을 하는 분의 질문에서 프로그래밍 로직을 이렇게 한다는 답변을 보게 되었다. " view -> validation logic -> business logic -> dao " 보통의 view는 controller에서 처리하고, 여기서 예외처리는 validation logic에 해당하므로 service에 넣어주는게 맞다고 생각했다. 그리고 아주 단적으로 controller가 없더라도 API 로직은 정상적으로 돌아가야한다는 김영한님의 답을 어디선가..
github에서 Repository 생성하기 * terminal에서 명령어 입력 git 초기화 git init repository 연결 git remote add origin {repositoryURL} git remote add origin git@github.com:daeuun/project-name.git (+ 연결된 repo 삭제) 오타났으면 사용..ㅎㅎ git remote rm origin 연결된 repository fetch/push 확인 git remote -v 새로 만든 repository의 내용 가져오기 git push origin {기본브랜치명} github 정책에 의해서 기본 브랜치 이름이 master에서 main으로 변경되었다. git pull origin master stage에 ..
N+1 문제 : 조회된 부모의 수만큼 자식 테이블의 쿼리가 추가 발생하는 현상 연관 관계가 설정된 엔티티를 조회할 경우에 발생하는 문제 쿼리를 날렸을 때 의도하지 않은 쿼리가 N번 추가로 실행되는 것을 N+1이라고 한다. 해결방법 : FetchJoin * Join, Fetch Join 차이점 Join - 연관 Entity에 Join을 걸어도, 실제 쿼리에서 SELECT 하는 Entity는 오직 JPQL에서 조회하는 주체가 되는 Entity만 조회하여 영속화 - 조회의 주체가 되는 Entity만 SELECT 해서 영속화하기 때문에 데이터는 필요하지 않지만, 연관 Entity가 검색조건에는 필요한 경우에 주로 사용됨 Fetch Join - 데이터를 가져올 때 조회의 주체가 되는 Entity 이외에, Fetc..
NoSQL 개념 관계형 DBMS와 NoSQL의 차이 1. 관계형 DBMS - 클라이언트/서버 플랫폼 기반 2. NoSQL - 클라우드 컴퓨팅, 클라이언트/서버 모두를 기반 NoSQL의 장점 1. 클라우드 컴퓨팅 환경에 적합함 2. 유연한 데이터 모델 3. 빅데이터 처리에 효과적 NoSQL 종류 NoSQL 제품 구분 설명 Key-Value DB - Amazon Dynamo Paper - 데이터 모델 : Key-Value - 유형 : Riak, Redis, Tokyo Column-Family DB - Google Big Table Paper - 데이터 모델 : Column Family - 유형 : HBase, Cassandra Document DB - Lotus Notes - 데이터 모델 : Key-Valu..
에러메세지 org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'blNo' in 'class com.bookforyou.bk4u.reply.model.vo.Reply' 에러메세지 상세 심각: 경로 [/bk4u]의 컨텍스트 내의 서블릿 [appServlet]을(를) 위한 Servlet.service() 호출이, 근본 원인(root cause)과 함께, 예외 [Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection..
- Total
- Today
- Yesterday
- 추상클래스
- MultipleBagFetchException
- 스프링 스케줄링
- QueryDSL
- Java
- Linux
- 배열
- 스프링오류
- Git
- MongoDB
- Spring Security
- array
- ChatGPT
- Cannot construct instance of
- 자바 어플리케이션 실행 과정
- 티스토리챌린지
- Kotlin
- 오블완
- n+1
- FetchJoin
- spring boot 3
- junit5
- checkout
- port
- redisson 분산락
- bucket4j
- JPA
- jvm warm-up 전략
- dto 클래스 생성자
- addFilterBefore
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |