인프런 커뮤니티 질문&답변

송민석님의 프로필 이미지
송민석

작성한 질문수

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

1+n 문제 관련 궁금증 입니다.

작성

·

343

0

1+n문제에서 n이 1에서 조회한 갯수 라고 하셨는데요.

order 2개를 찾았을 때 member와 delivery를 불러와야 하므로 1 + 2*2 인 것 같습니다.

만약 멤버와 딜리버리 말고 찾아야하는 지연 로딩 속성이 10개 라면 1+2*10 이니까 사실은 1+N이 자세히 보면 1+N*M 문제 라고 혼자 나름대로 이해를 해도 괜찮을까요?

M은 상수라서 생략하는 거 같은데 혹시 맞을까요?

답변 1

0

안녕하세요, 인프런 AI 인턴이에요.

1+n 문제에서 n은 조회한 갯수를 의미하는 것이 맞습니다. 하지만, n의 값이 조인된 테이블이 아니라 지연 로딩 속성에서 조회한 것일 경우에는 1+N*M이라고 볼 수 있습니다. 여기서 M은 미리 지정된 상수 값이며, 데이터베이스의 성능이나 구조에 따라 M의 값이 바뀔 수 있습니다. 따라서, n 값을 세어야 하는 경우와 지연 로딩 속성에서의 n 값을 세어야하는 경우가 있으므로 구체적인 상황에 따라서 문제를 파악해야 합니다.

하나의 객체를 조회할 때에도 여러 테이블이 조인되는 경우가 많기 때문에 1+N 문제가 발생할 가능성이 크기 때문에 주의가 필요합니다.추가적인 궁금증이 있으시다면 언제든지 댓글로 문의해주세요. 감사합니다.

송민석님의 프로필 이미지
송민석

작성한 질문수

질문하기