2022년 04월 29일 TIL
✅ 한 것
공부
- 1일 1커밋 & 푸쉬
- TIL 작성
- 프로그래머의길 멘토에게 묻다 10p 독서
- 게시판 프로젝트 리팩토링
- 테스트코드 작성
운동
- 출근 후 15층 계단 오르기
- 점심먹고 15층 계단 오르기
❓ 오늘의 질문, 배운 것
스칼라 서브쿼리란?
- SELECT문에 있는 서브쿼리 : 스칼라 서브쿼리
- 함수처럼 한 레코드 당 정확히 하나의 값만을 리턴하는 서브쿼리, 기본으로 Outer Join이 적용되어 있다.
- 스칼라 서브쿼리로부터 나오는 결과는 반드시 하나여야 합니다. - FROM절에 있는 서브쿼리 : 인라인 뷰
- FROM절에 사용되는 서브쿼리를 지칭. 마치 뷰처럼 SQL문이 실행될 때만 임시적으로 생성되는 동적인 뷰이기 때문에
인라인 뷰(View)라는 이름이 붙었다. 그래서 일반적인 뷰를 정적 뷰(Static View), 인라인 뷰를 동적 뷰(Dynamic View)
라고도 한다. - WHERE절에 있는 서브쿼리 : 서브쿼리
- 하나의 SQL문 안에 포함되어 있는 또 다른 SQL문을 지칭
- 위 두가지 경우 이외에 쓰이는 서브쿼리를 보통 통틀어서 일컫는다.
서브쿼리와 성능
- 서브쿼리는 결과 건수만큼 반복 수행되기 때문에 조회되는 데이터의 갯수가 적다면 크게 문제될 것은 없지만,
조회 되는 데이터의 갯수가 많아지면 많아질수록 성능이 현저히 떨어지는 모솝을 볼 수 있습니다. - 스칼라 서브쿼리 사용 시 서브쿼리의 결과값이 같은 경우가 많거나, 매번 동일한 결과값을 반환한다면,
스칼라 서브쿼리의 캐싱 효과를 통해 성능을 높일 수 있으나, 서브쿼리에서 사용되는 조건의 종류가 많아지거나 혹은
조건 데이터가 지속적으로 바뀔경우 캐싱의 효율성이 떨어지기 때문에 이전보다 성능이 떨어질 수 있습니다.
📣 피드백
하루 반성 및 칭찬
- 오늘의질문, 배운것을 예전에 작성한 내용이라도 작성하기
- 중복되는 내용을 작성하더라도 복기를 하기 위해 작성
- 해당 내용을 예전에 작성 했는지 블로그 검색으로 확인해보기
- 중복된 내용이 있다면 그 때 내가 적었던 내용에 대한 생각도 함께 적기
- 단순히 해당 업무를 완료(코딩 혹은 쿼리문 작성)를 하고 끝내는게 아니라 끊임없이 질문 던지기
- 왜 이렇게 했을지? 다른 방법은 없는지? 성능상 이슈는 없는지?
- 질문을 던지면서 생각을 블로그 혹은 Obsidian에 정리
- 빨리 만드는게 전부가 아니라 유지보수를 할 수 있는 능력 기르기
- 지금 사회는 유지보수 역량이 중요하다(자바지기님의 말)
- 코드 품질에 대한 관심도가 높아짐
- 유지보수가 용이한 코드들에 대한 중요성 증가
반응형