Source: Levelica
Canonical: https://www.levelica.com/ko/guides/sql-and-databases

# SQL·데이터베이스 (SQL and Databases)

## 요약 (Summary)

데이터를 구조로 설계하고 질의로 다루는 역량. 단일 테이블 조회에서 아키텍처 설계와 표준 기여까지 이어진다.

## 설명 (Description)

SQL과 데이터베이스는 데이터를 어떤 구조로 저장하고 어떻게 꺼낼지 결정하는 역량입니다. 단일 테이블 조회에서 시작해 여러 테이블을 연결하는 질의, 요구사항을 반영한 스키마 설계, 실행 계획을 읽는 성능 개선, 트랜잭션 처리계와 분석계를 나누는 아키텍처 결정으로 이어집니다. 특정 제품의 기능 숙련이 아니라, 왜 그 구조와 저장 기술을 선택했는지 설명하는 판단력이 레벨을 가릅니다.

---

## 레벨 개요 (Level Overview)

| 레벨 | 숙련도 단계                                | 해시태그                                                           |
| ---- | ------------------------------------------ | ------------------------------------------------------------------ |
| Lv.1 | Query Reader (질의 읽기)                   | #Select #Where #TableStructure #PrimaryKey                         |
| Lv.2 | Data Retriever (데이터 조회)               | #Join #GroupBy #Subquery #DataTypes                                |
| Lv.3 | Schema Builder (스키마 구축)               | #Normalization #IndexBasics #Transaction #DataModeling             |
| Lv.4 | Performance Tuner (성능 개선)              | #QueryOptimization #ExecutionPlan #LockContention #Partitioning    |
| Lv.5 | Data Architect (데이터 설계)               | #SchemaEvolution #Replication #WorkloadSeparation #RetentionPolicy |
| Lv.6 | Platform Governance Lead (플랫폼 거버넌스) | #DataGovernance #PlatformStrategy #StorageEngine #TeamEnablement   |
| Lv.7 | Field Shaper (분야 형성)                   | #StandardsAuthorship #DatabaseResearch #DataLegacy                 |

> 숙련도 매핑 출처: SFIA 9의 Database design(DBDS) 책임 수준과 한국데이터산업진흥원의 SQLD/SQLP 자격 단계 구조에 기반합니다.

---

## Level 1

#Select #Where #TableStructure #PrimaryKey

### 요약 (Summary)

단일 테이블에서 조건에 맞는 데이터를 꺼내는 단계

### 설명 (Description)

데이터베이스를 처음 다루기 시작한 상태입니다. 테이블이 행과 열로 이루어지고 각 열에 자료형이 있다는 구조를 이해하며, 조건과 정렬을 붙여 원하는 행을 꺼냅니다. 값이 없음을 뜻하는 상태를 일반 비교로 찾을 수 없다는 점도 구분하지만, 여러 테이블을 함께 다루지는 못합니다.

### 체크리스트 (Checklist)

- [ ] 테이블이 행과 열로 이루어지고 각 열에 자료형이 있음을 설명할 수 있다
- [ ] SELECT와 WHERE로 단일 테이블에서 조건에 맞는 행을 추출할 수 있다
- [ ] 정렬과 건수 제한을 적용해 결과 중 상위 몇 건만 가져올 수 있다
- [ ] 기본키가 행을 유일하게 식별하는 역할임을 예시로 설명할 수 있다
- [ ] 값이 없는 상태를 일반 비교 연산으로 찾을 수 없음을 구분해 처리할 수 있다
- [ ] 실습용 데이터베이스에 연결해 테이블 목록과 열 구조를 조회할 수 있다

> 이 체크리스트를 대부분 달성했다면, Lv.2 Data Retriever 단계로 진입하여 여러 테이블을 연결하는 질의에 도전할 준비가 됐습니다. 관계형 데이터베이스의 힘은 테이블을 나눠 저장하고 필요할 때 이어 붙이는 데서 나옵니다.

---

## Level 2

#Join #GroupBy #Subquery #DataTypes

### 요약 (Summary)

여러 테이블을 연결하고 집계해 보고용 결과를 만드는 단계

### 설명 (Description)

두 개 이상의 테이블을 연결해 필요한 열만 뽑고, 범주별로 묶어 합계와 건수를 냅니다. 내부 조인과 외부 조인의 결과 차이를 데이터로 재현해 설명하고, 데이터 변경 작업도 영향 범위를 확인하며 수행합니다. 요청받은 결과는 만들 수 있지만 구조를 설계하지는 못합니다.

### 체크리스트 (Checklist)

- [ ] 두 개 이상의 테이블을 조인으로 연결해 필요한 열만 조회할 수 있다
- [ ] 그룹화와 집계 함수로 범주별 합계, 평균, 건수를 산출할 수 있다
- [ ] 서브쿼리를 사용해 다른 질의의 결과를 조건으로 사용할 수 있다
- [ ] INSERT, UPDATE, DELETE로 데이터를 변경하고 영향 행 수를 확인할 수 있다
- [ ] 내부 조인과 외부 조인의 결과 차이를 데이터로 재현해 설명할 수 있다
- [ ] 날짜와 문자열 함수를 사용해 원본 데이터를 보고용 형식으로 가공할 수 있다

> 이 체크리스트를 대부분 달성했다면, Lv.3 Schema Builder 단계로 진입하여 요구사항에서 스키마를 직접 설계하는 데 도전할 준비가 됐습니다. 남이 만든 구조를 조회하는 일과 구조를 정하는 일 사이에 가장 큰 자율성의 도약이 있습니다.

---

## Level 3

#Normalization #IndexBasics #Transaction #DataModeling

### 요약 (Summary)

요구사항에서 스키마를 설계하고 트랜잭션을 다루는 단계

### 설명 (Description)

업무 요구사항을 듣고 개체와 관계를 정리해 스키마를 직접 설계합니다. 정규화를 적용하되 반정규화가 필요한 지점을 근거와 함께 제시하고, 여러 변경을 트랜잭션으로 묶어 실패 시 원상복구되게 처리합니다. 인덱스를 만들어 조회 시간 변화를 측정하며, 백업과 복구 절차를 문서로 남깁니다.

### 체크리스트 (Checklist)

- [ ] 업무 요구사항을 듣고 개체, 속성, 관계를 정리한 데이터 모델을 그릴 수 있다
- [ ] 제3정규형까지 정규화를 적용하고 반정규화가 필요한 지점을 근거와 함께 제시할 수 있다
- [ ] 트랜잭션으로 여러 변경을 묶고 실패 시 원상복구되도록 처리할 수 있다
- [ ] 자주 조회되는 열에 인덱스를 만들고 조회 시간 변화를 측정할 수 있다
- [ ] SQL 개발자(SQLD) 등 데이터 관련 자격을 취득할 수 있다
- [ ] 운영 요구사항을 반영한 테이블 10개 이상의 스키마를 독립적으로 작성할 수 있다
- [ ] 백업과 복구 절차를 문서화하고 실제 복구 시험을 수행할 수 있다

> 이 체크리스트를 대부분 달성했다면, Lv.4 Performance Tuner 단계로 진입하여 실행 계획을 읽고 느린 질의를 개선하는 데 도전할 준비가 됐습니다. Silberschatz 외(2019)가 정리한 질의 처리와 최적화 단원이 이 전환의 이론적 출발점입니다.

---

## Level 4

#QueryOptimization #ExecutionPlan #LockContention #Partitioning

### 요약 (Summary)

실행 계획을 읽고 느린 질의와 경합을 해소하는 단계

### 설명 (Description)

실행 계획에서 비효율 구간을 찾아 질의를 다시 씁니다. 잠금 경합과 교착 상태를 재현해 격리 수준 조정으로 해소하고, 대용량 테이블을 분할하거나 보관 정책을 적용해 관리 비용을 낮춥니다. 장애 상황에서 로그와 지표로 원인을 추적해 복구를 주도합니다.

### 체크리스트 (Checklist)

- [ ] 실행 계획을 읽고 전체 탐색이 발생하는 구간을 지목할 수 있다
- [ ] 느린 질의를 개선해 응답 시간을 절반 이하로 줄인 사례를 기록으로 남길 수 있다
- [ ] 잠금 경합과 교착 상태의 원인을 재현하고 격리 수준 조정으로 해소할 수 있다
- [ ] 대용량 테이블을 분할하거나 보관 정책을 적용해 관리 비용을 낮출 수 있다
- [ ] 복잡한 보고 요구를 윈도 함수와 공통 테이블 식으로 재작성할 수 있다
- [ ] 통계 정보와 실행 계획 변화를 근거로 인덱스 추가와 제거를 결정할 수 있다
- [ ] 장애 상황에서 로그와 지표로 원인을 추적해 복구 절차를 주도할 수 있다

> 이 체크리스트를 대부분 달성했다면, Lv.5 Data Architect 단계로 진입하여 처리계와 분석계를 나누는 설계 결정에 도전할 준비가 됐습니다. SFIA 9의 Database design 정의에서 이 지점이 개별 질의 개선에서 플랫폼 선택 자문으로 책임이 넓어지는 경계입니다.

---

## Level 5

#SchemaEvolution #Replication #WorkloadSeparation #RetentionPolicy

### 요약 (Summary)

처리계와 분석계를 나누고 이중화를 설계하는 단계

### 설명 (Description)

트랜잭션 처리와 분석 요구를 구분해 각각에 맞는 구조를 설계하고, 복제와 이중화 구성으로 목표 복구 시간과 복구 시점을 수치로 정의합니다. 저장 기술 선택 기준을 문서화해 조직에 자문하며, 스키마 변경을 무중단으로 배포합니다. 개발자를 지도해 팀 전체의 질의 품질을 끌어올립니다.

### 체크리스트 (Checklist)

- [ ] 트랜잭션 처리계와 분석계의 요구를 구분해 각각에 맞는 데이터 구조를 설계할 수 있다
- [ ] 복제와 이중화 구성을 설계해 목표 복구 시간과 복구 시점을 수치로 정의할 수 있다
- [ ] 관계형과 비관계형 등 저장 기술의 선택 기준을 문서화하고 조직에 자문할 수 있다
- [ ] SQL 전문가(SQLP) 등 고급 자격을 취득하거나 동급 실무 실적을 입증할 수 있다
- [ ] 스키마 변경을 서비스 중단 없이 배포하는 절차를 설계하고 실제로 적용할 수 있다
- [ ] 개발자 5명 이상에게 질의 작성과 모델링을 지도해 리뷰 지적 건수를 줄일 수 있다
- [ ] 보관 기간, 접근 권한, 개인정보 처리 기준을 반영한 데이터 관리 정책을 수립할 수 있다

> 이 체크리스트를 대부분 달성했다면, Lv.6 Platform Governance Lead 단계로 진입하여 조직 전체의 데이터 표준을 세우는 데 도전할 준비가 됐습니다. 한 시스템을 잘 설계하는 것과 여러 팀이 따를 기준을 만드는 것은 다른 종류의 책임입니다.

---

## Level 6

#DataGovernance #PlatformStrategy #StorageEngine #TeamEnablement

### 요약 (Summary)

조직의 데이터 표준과 거버넌스 체계를 세우는 단계

### 설명 (Description)

조직 전체의 데이터 아키텍처 표준을 세우고 여러 팀에 적용합니다. 품질 지표, 소유권, 변경 승인으로 이어지는 거버넌스 체계를 설계해 운영하며, 저장 엔진의 동작 원리를 근거로 기술 선택을 공개적으로 논증합니다. 교육 과정과 오픈소스 기여로 조직 밖에도 영향을 미칩니다.

### 체크리스트 (Checklist)

- [ ] 조직 전체의 데이터 아키텍처 표준을 수립하고 여러 팀에 적용할 수 있다
- [ ] 품질 지표, 소유권, 변경 승인을 포함한 데이터 거버넌스 체계를 설계하고 운영할 수 있다
- [ ] 저장 엔진이나 질의 처리기의 동작 원리를 근거로 기술 선택을 공개적으로 논증할 수 있다
- [ ] 업계 컨퍼런스나 전문 매체에서 데이터 설계 방법론을 발표할 수 있다
- [ ] 데이터 엔지니어 20명 이상을 위한 교육 과정을 설계하고 운영할 수 있다
- [ ] 오픈소스 데이터베이스나 관련 도구에 기여해 반영된 기록을 제시할 수 있다

> 이 체크리스트를 대부분 달성했다면, Lv.7 Field Shaper 단계로 진입하여 분야의 표준과 방법론 자체를 만드는 데 도전할 준비가 됐습니다. 조직 안에서 통용되는 기준이 조직 밖에서 인용될 때 영향 범위가 산업 단위로 넓어집니다.

---

## Level 7

#StandardsAuthorship #DatabaseResearch #DataLegacy

### 요약 (Summary)

데이터 설계 방법론과 표준에 유산을 남기는 단계

### 설명 (Description)

데이터가 설계되고 다뤄지는 방식을 근본에서 다시 정의합니다. 만들어 낸 모델링 방법론이 외부 조직에서 채택되고, 저술과 표준 문서가 실무와 학술 양쪽에서 참조됩니다. 자격 체계나 표준 제정에 참여한 결과가 남고, 길러낸 아키텍트들이 독립적으로 활동합니다.

### 체크리스트 (Checklist)

- [ ] 자신이 설계한 데이터 모델링 방법론이 외부 3개 이상 조직에서 채택되었음을 입증할 수 있다
- [ ] 데이터베이스 관련 저술, 논문, 표준 문서가 10건 이상 외부에서 인용되었음을 확인할 수 있다
- [ ] 데이터 관련 표준 제정이나 자격 체계 설계에 참여한 기록을 제시할 수 있다
- [ ] 자신이 만든 도구나 체계가 5년 이상 유지되고 발전되고 있음을 입증할 수 있다
- [ ] 독립적으로 활동하는 데이터 아키텍트 5명 이상을 멘토링할 수 있다

> 이 체크리스트를 대부분 달성했다면, 데이터를 다루는 방식의 최전선에서 다음 세대의 설계 기준을 형성하는 단계에 있습니다. Silberschatz 외(2019)가 정리한 교과서적 표준을 넘어, 새로운 표준을 쓰는 것이 이 단계의 과제입니다.

---

## 참고 자료 (References)

- [SQL 전문가(SQLP)·SQL 개발자(SQLD) 자격검정](https://www.dataq.or.kr/www/sub/a_03.do) — 한국데이터산업진흥원 (KDATA) — 등록민간자격 제2022-04호
- [SFIA 9 — Database design (DBDS)](https://sfia-online.org/en/sfia-9/skills/database-design) — SFIA Foundation
- [Database System Concepts, 7th Edition](https://www.db-book.com/) — Silberschatz, Korth & Sudarshan — McGraw-Hill (2019)
- [Errors and Complications in SQL Query Formulation](https://jyx.jyu.fi/handle/123456789/59322) — Taipalus, Siponen & Vartiainen — ACM Transactions on Computing Education 18(3), Art. 15 (2018)
