COURSE MAP
Oracle을 기준으로 삼은 이유
공공·금융·제조 SI에서 실제로 운영되는 기간계 시스템은 대부분 Oracle입니다. 국산 DBMS인 Tibero도 Oracle 호환을 기준으로 하고 있어, Oracle로 익혀 두면 현장에서 만나는 대부분의 상황을 덮습니다. 다른 DBMS를 쓰더라도 인덱스, 실행계획, 트랜잭션 같은 핵심 개념은 그대로 통하고, 갈리는 문법은 부록에 대조표로 모았습니다.
NULL, 조인, 서브쿼리, 윈도우 함수로 요구사항을 정확하게 표현합니다.
인덱스 원리, 실행계획 읽기, 페이징으로 같은 결과를 빠르게 얻습니다.
트랜잭션과 락, 통계 관리와 대량 처리, ORM 연계로 확장합니다.
전체 16개 파트가 모두 공개돼 있습니다.
트랙 A · SQL 기본기
SQL 기본기
실습 환경을 갖추고 NULL, 조인, 서브쿼리, 집계와 윈도우 함수까지 Oracle SQL을 실무 기준으로 다시 정리합니다.
실습 환경과 SQL이 실행되는 구조
Docker로 Oracle을 띄워 실습 환경을 만들고, SQL 한 문장이 파싱부터 실행까지 거치는 경로를 이해합니다.
NULL과 데이터 타입이 만드는 함정
Oracle에서 빈 문자열이 NULL인 것을 시작으로, NULL 연산과 정렬, 암묵적 형변환, 날짜 타입의 함정을 다룹니다.
조인을 원리로 이해하기
조인을 곱집합에서 걸러내는 과정으로 이해하고, 아우터 조인, 세미·안티 조인, 레거시 (+) 구문과 계층 쿼리까지 다룹니다.
서브쿼리와 집합 연산, MERGE
서브쿼리를 위치별로 구분해 이해하고 집합 연산, WITH 절, 그리고 실무에서 자주 쓰는 MERGE까지 다룹니다.
집계와 윈도우 함수
GROUP BY의 동작을 정확히 이해하고, 그룹별 최신 1건 같은 실무 패턴을 윈도우 함수로 푸는 방법을 다룹니다.
트랙 B · 쿼리 성능
쿼리 성능
인덱스가 동작하는 원리부터 실행계획 읽기, 인덱스를 못 타는 패턴, 페이징과 대량 조회까지 성능의 판단 기준을 다룹니다.
인덱스가 동작하는 원리
B-Tree 구조부터 복합 인덱스의 선두 컬럼 원칙, 인덱스가 오히려 느린 경우와 인덱스의 비용까지 다룹니다.
실행계획 읽기
예측 계획과 실제 계획의 차이를 구분하고, 접근 경로와 조인 방식, 예상 건수와 실제 건수의 차이를 읽는 법을 다룹니다.
인덱스를 못 타는 쿼리 패턴
인덱스가 있는데도 안 타는 전형적인 원인들을 패턴으로 정리하고, 각각을 어떻게 고치는지 다룹니다.
페이징과 대량 조회 성능
Oracle 페이징 문법의 세대별 차이와 ROWNUM 함정, 부분범위 처리, 바인드 변수와 커서 공유를 다룹니다.
트랙 C · 트랜잭션·동시성
트랜잭션·동시성
격리수준, 락과 데드락, 동시 접근에서 생기는 문제를 다룹니다.
트랙 D · 운영
운영
통계정보 관리, 대량 데이터 처리, 슬로우 쿼리 추적과 진단 도구를 다룹니다.
트랙 E · 애플리케이션 연계
애플리케이션 연계
애플리케이션이 DB에 남기는 흔적을 다룹니다. ORM이 만든 쿼리를 추적하고, 커넥션과 트랜잭션 문제를 DB 세션에서 진단합니다.
이 코스를 쓰는 방법
- Part 1에서 실습 환경을 먼저 만들고 직접 실행하며 읽는 것을 전제로 합니다.
- SQL을 이미 쓰고 있다면 트랙 A는 훑고 트랙 B부터 봐도 됩니다.
- 느린 쿼리를 당장 잡아야 한다면 Part 7의 실행계획부터 봅니다.
- Oracle이 아닌 DB를 쓴다면 부록의 문법 대조표를 함께 엽니다.
- 트랙 E는 DB 쪽에서 본 애플리케이션입니다. 엔티티 매핑과 매퍼 작성은 Spring Boot 코스에서 다룹니다.
REFERENCES
참고 자료
버전별 동작과 제한 사항은 시간이 지나면 달라집니다. 실제 적용 전에는 운영 중인 버전의 공식 문서를 함께 확인합니다.
| 자료 | 내용 | 바로가기 |
|---|---|---|
| Oracle Database 공식 문서 | 버전별 SQL 레퍼런스와 성능 튜닝 가이드 원문 | 바로가기 |
| Oracle Database Free | 실습용 무료 에디션 다운로드와 제한 사항 확인 | 바로가기 |
| Use The Index, Luke | 제품에 중립적인 인덱스와 SQL 성능 학습 자료 | 바로가기 |