인프런 커뮤니티 질문&답변
배치에서 full outer join을 쓴다고 하셨는데 예시를 알 수 있을까요?
작성
·
19
0
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
배치에서 full outer join을 쓴다고 하셨는데 예시를 알 수 있을까요?
배치에서 쓰인다는게 잘 와닿지가 않습니다.
답변 2
0
배치에서 쓴다라기 보다 효율적으로 사용할 수 있다라는 의미로 생각해 주시면 좋을 것 같습니다.
근데, 예시를 들기는 좀 사례가 복잡합니다. 배치 프로그램 고도화 영역에 해당한다고 보시면 되는데, 어떻게 보면 SQL튜닝이나 어려운 SQL 처리로직등을 포함하는 부분이라, 여기서 말씀드리기는 한계가 있습니다만, 그래도 대략적으로만 기술하면
배치에서는 주로 개별 데이터를 경우에 수에 따라 여러번 추출하는 경우들이 있는데, 가령 예를 들어 고객이 주체가 되어서, 고객으로 left outer 조인이 되는 집합 하나, 또 다른 경우 상품이 주체가 되어서, 즉 상품이 left outer 조인이 되는 집합 하나 각각 만들어서 개별 loop를 수행하면서 배치 처리를 하는 경우들이 발생하면서, 수행 속도의 저하와 로직의 복잡성이 발생할 수 있습니다.
이 경우 각각을 분리하지 않고, Full outer 조인으로 한번에 대상 집합을 만든 다음에 배치 처리를 하는 배치 개선화 프로세스에 사용 될 수 있습니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다.
가나파이님께서 질문하신 “배치에서 full outer join을 사용한다”는 주제에 대해 유사한 질문과 강사님의 답변을 통해 더 깊게 이해할 수 있도록 도와드리겠습니다. Full outer join은 두 테이블 간에 존재하는 모든 데이터 셋을 유지하면서, 일치하지 않는 레코드에 대해서도 결과를 반환합니다.
배치 작업에서 full outer join이 유용하게 쓰이는 경우는 다음과 같습니다:
전체 데이터 비교 및 동기화: 배치는 일반적으로 대량의 데이터를 한 번에 처리하기 때문에, A와 B 테이블의 모든 데이터를 비교할 때 중복이 없는 데이터까지 포함하여 모든 데이터를 가져오고 싶을 때 full outer join이 사용됩니다. 이를 통해 두 테이블 간에 완전한 데이터 동기화가 가능해집니다.
레코드 매칭 및 불일치 식별: A와 B테이블 간 모든 레코드를 매칭하면서 서로 대응하지 않는 레코드를 식별, 분석할 수 있습니다. 예를 들어, 고객 정보 테이블과 주문 정보 테이블의 데이터를 비교하여, 특정 기간 동안 주문이 없는 고객 리스트를 쉽게 얻을 수 있습니다.
특정 예시나 코드가 강의 내용에 포함되어 상세히 이해하기 힘드셨다면, 다음의 비슷한 질문들을 참고하여 도움이 될 수 있습니다:
- Outer 조인 1:n 관계 방향이 궁금합니다: Outer join의 상대적인 사용 사례와 조인 방향에 관한 설명을 포함하고 있습니다.
- exists 사용 쿼리 질문드립니다: SQL 조인 및 서브쿼리 활용에 대한 설명을 볼 수 있습니다.
이와 같이 Full Outer Join은 데이터가 양방의 테이블에서 모두 필요하며, 어느 한 쪽도 놓치지 않겠다는 목적에서 주로 배치 처리에서 사용됩니다. 배치 처리와 관련된 예제나 구체적인 사용 사례에 대한 더 많은 정보는 강의나 추가적인 질문을 통해 강사님께 직접 문의하시면 도움이 될 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





