•
중복 데이터가 일으키는 이상현상 3가지를 표로 설명할 수 있다.
•
함수적 종속성을 읽고, 완전·부분·이행 종속을 구분할 수 있다.
•
주어진 표를 제1·제2·제3정규형으로 단계적으로 분해할 수 있다.
•
정규화가 성능에 미치는 영향을 양쪽 방향 모두 설명할 수 있다.
0. 왜 정규화를 하는가 — 이상현상(Anomaly)
1) 정규화의 정의
•
데이터의 중복을 제거하여, 데이터 모델의 독립성을 확보하는 과정
•
목적: 이상현상을 없애는 것
•
방법: 함수적 종속성을 기준으로 테이블을 분해한다
2) 문제의 출발점 — 중복이 있는 표
사원 정보와 부서 정보를 한 표에 억지로 합쳐 놓았다고 해봅시다.
[사원부서] — 나쁜 설계사원번호(PK) | 사원명 | 부서번호 | 부서명 | 부서위치 |
7369 | SMITH | 20 | RESEARCH | DALLAS |
7566 | JONES | 20 | RESEARCH | DALLAS |
7788 | SCOTT | 20 | RESEARCH | DALLAS |
7782 | CLARK | 10 | ACCOUNTING | NEW YORK |
표시된 부분이 중복입니다. 20번 부서 정보가 세 번 저장되어 있습니다.
이 중복 하나 때문에 아래 세 가지 문제가 전부 발생합니다.3) 이상현상 3가지 

시험 함정: 이상현상은 삽입 · 갱신 · 삭제 세 가지입니다.
"조회 이상(Select Anomaly)"이라는 것은 존재하지 않습니다. 선지로 자주 출제됩니다.4) ① 삽입 이상 — 넣고 싶은 것만 넣을 수 없다
상황: 신설 부서 50번 OPERATIONS(BOSTON)을 등록하고 싶다. 아직 발령난 사원이 없다.
넣으려고 하면 이런 행이 됩니다.
사원번호(PK) | 사원명 | 부서번호 | 부서명 | 부서위치 | 판정 |
없음 | 없음 | 50 | OPERATIONS | BOSTON | 불가 |
왜 안 되는가 | 기본키인 사원번호는 NULL이 될 수 없다 (03강 존재성) |
억지로 넣으면 | 9999 / (미정) / 50 / OPERATIONS / BOSTON 같은 가짜 사원을 만들어야 함 |
결과 | 존재하지 않는 사원 데이터가 쌓여 데이터 품질이 무너짐 |
삽입 이상: "부서만 넣고 싶은데, 원하지 않는 사원 정보까지 넣어야 하는 문제"5) ② 갱신 이상 — 일부만 고치면 값이 어긋난다
상황: 20번 부서명을 RESEARCH → R&D 로 변경한다. 그런데 한 행만 고쳤다.
변경 전 → 변경 후
사원번호 | 사원명 | 부서번호 | 부서명 (변경 전) | 부서명 (변경 후) |
7369 | SMITH | 20 | RESEARCH | R&D |
7566 | JONES | 20 | RESEARCH | RESEARCH |
7788 | SCOTT | 20 | RESEARCH | RESEARCH |
무엇이 문제인가 | 같은 20번 부서인데 부서명이 R&D와 RESEARCH 두 가지로 갈라졌다 |
어느 것이 진짜인가? | 데이터만 봐서는 알 수 없다 |
01강 용어로 하면 | 바로 비일관성(Inconsistency) 이다 |
갱신 이상: "중복된 값을 전부 찾아 고치지 않으면 데이터가 서로 모순되는 문제"
사원이 1만 명이면 1만 행을 빠짐없이 고쳐야 합니다. 하나만 놓쳐도 붕괴됩니다.6) ③ 삭제 이상 — 지우면 안 될 것까지 지워진다
상황: 10번 부서의 유일한 사원 CLARK가 퇴사해서 그 행을 삭제한다.
삭제 전 → 삭제 후
사원번호 | 사원명 | 부서번호 | 부서명 | 부서위치 | 삭제 후 |
7369 | SMITH | 20 | RESEARCH | DALLAS | 유지 |
7566 | JONES | 20 | RESEARCH | DALLAS | 유지 |
7788 | SCOTT | 20 | RESEARCH | DALLAS | 유지 |
7782 | CLARK | 10 | ACCOUNTING | NEW YORK | 삭제 |
남은 데이터에서 부서 목록을 뽑아보면
부서번호 | 부서명 | 부서위치 |
20 | RESEARCH | DALLAS |
10 | ACCOUNTING | NEW YORK 사라짐 |
삭제 이상: "사원 한 명만 지웠을 뿐인데, 지울 의도가 전혀 없던 부서 정보까지 함께 사라지는 문제"
ACCOUNTING 부서는 여전히 존재하는데, DB에서는 없는 부서가 되어 버렸습니다.7) 원인과 해결책은 하나뿐
1. 함수적 종속성 (Functional Dependency)
정규화는 함수적 종속성이라는 언어로 이루어집니다. 이걸 모르면 2NF·3NF를 절대 이해할 수 없습니다.
1) 정의와 읽는 법
•
A → B : "A가 정해지면 B가 하나로 결정된다"
•
A = 결정자(Determinant) , B = 종속자(Dependent)
•
읽는 법: "B는 A에 함수적으로 종속된다"
예시 | 읽기 | 성립? |
사원번호 → 사원명 | 사원번호를 알면 이름이 하나로 정해진다 | ![]() |
부서번호 → 부서명 | 부서번호를 알면 부서명이 하나로 정해진다 | ![]() |
사원명 → 사원번호 | 이름을 알면 사원번호가 정해진다 | (동명이인) |
부서번호 → 사원명 | 부서번호를 알면 사원이 하나로 정해진다 | (한 부서에 여러 명) |
2) 종속성 판정법 — "결정자 값 하나에 종속자 값이 몇 종류인가?"
결정자 값별로 종속자 값이 항상 1종류면 → 종속 성립
성립하는 경우: 부서번호 → 부서명부서번호 | 함께 나타난 부서명 | 종류 수 | 판정 |
10 | ACCOUNTING | 1 | ![]() |
20 | RESEARCH | 1 | ![]() |
30 | SALES | 1 | ![]() |
→ 모두 1종류 = 부서번호 → 부서명 성립
성립하지 않는 경우: 부서번호 → 사원명부서번호 | 함께 나타난 사원명 | 종류 수 | 판정 |
20 | SMITH, JONES, SCOTT | 3 | ![]() |
10 | CLARK | 1 | — |
→ 2종류 이상이 하나라도 있으면 = 종속 성립하지 않음
3) 세 가지 종속 유형 

유형 | 정의 | 문제되는 정규형 |
완전 함수 종속 | 기본키 전체에 종속됨 | 정상 ![]() |
부분 함수 종속 | 복합키의 일부에만 종속됨 | 제2정규형 위반 |
이행 함수 종속 | A → B → C 형태로 간접 종속 | 제3정규형 위반 |
① 완전 함수 종속 / ② 부분 함수 종속
③ 이행 함수 종속
핵심 구분법•
부분 종속 = 키가 복합키여야만 생긴다. 단일키면 절대 안 생긴다.
•
이행 종속 = 키가 아닌 속성이 또 다른 속성을 결정한다. (부서번호 → 부서명)
2. 제1정규화 (1NF) — 원자값
1) 규칙
모든 속성은 하나의 값(원자값)만 가져야 한다.
위반 유형은 두 가지입니다.
유형 | 모습 | 예 |
다중값 속성 | 한 칸에 값이 여러 개 | 보유자격증 = '1급코치, 심판2급' |
반복 컬럼 | 같은 의미의 컬럼이 번호만 바꿔 반복 | 전화1, 전화2, 전화3 |
2) 유형 ① 다중값 속성 (02강 회수)
정규화 전 — 한 칸에 값이 여러 개선수ID | 선수명 | 보유자격증 |
2012001 | 김철수 | 1급코치, 심판2급, 트레이너 |
2012002 | 이영희 | 1급코치 |
정규화 후 — 별도 엔터티로 분리, 한 행에 값 하나[선수]
선수ID | 선수명 |
2012001 | 김철수 |
2012002 | 이영희 |
[선수자격증]
선수ID | 자격증순번 | 자격증명 |
2012001 | 1 | 1급코치 |
2012001 | 2 | 심판2급 |
2012001 | 3 | 트레이너 |
2012002 | 1 | 1급코치 |
3) 유형 ② 반복 컬럼 — 더 자주 출제됩니다 
정규화 전 — 겉보기엔 한 칸에 값이 하나씩이라 정상 같지만 위반입니다선수ID | 선수명 | 전화1 | 전화2 | 전화3 |
2012001 | 김철수 | 010-1111-1111 | 02-222-2222 | (NULL) |
2012002 | 이영희 | 010-3333-3333 | (NULL) | (NULL) |
이 설계가 만드는 3가지 문제
# | 문제 | 구체적으로 |
1 | 구조 변경 강제 | 번호가 4개인 선수가 나타나면 컬럼을 또 추가해야 함 |
2 | 검색이 지저분해짐 | 전화1 = ? OR 전화2 = ? OR 전화3 = ? — 컬럼이 늘 때마다 조회문도 고쳐야 함 |
3 | 공간 낭비 | 대부분의 칸이 NULL로 비어 있음 |
정규화 후 — 반복되던 컬럼을 "행"으로 눕힌다선수ID | 번호순번 | 전화번호 |
2012001 | 1 | 010-1111-1111 |
2012001 | 2 | 02-222-2222 |
2012002 | 1 | 010-3333-3333 |
무엇이 좋아졌나 | 번호가 몇 개로 늘어도 구조 변경 없이 행만 추가 / 검색은 컬럼 하나만 비교 / NULL 낭비 없음 |
시험 포인트"컬럼 이름 뒤에 1, 2, 3이 붙어 있으면 제1정규형 위반" 으로 기억하세요.
해결책은 "컬럼을 행으로 전환하고, 순번을 기본키에 추가한다" 입니다.3. 제2정규화 (2NF) — 부분 함수 종속 제거 

1) 규칙
1NF를 만족하면서, 기본키가 아닌 모든 속성이 기본키 전체에 완전 함수 종속되어야 한다.
가장 중요한 전제제2정규화는 기본키가 복합키(2개 이상)일 때만 발생합니다.
기본키가 단일 컬럼이면 "키의 일부에만 종속"이라는 상황 자체가 만들어질 수 없습니다.
→ "기본키가 단일키인데 2NF 위반"이라는 선지는 무조건 오답입니다. 
2)
정규화 전 — [수강] 표 (기본키 = 학번 + 과목코드)
학번 | 과목코드 | 성적 | 학생명 | 학과 | 과목명 | 학점수 |
S001 | C01 | 90 | 김철수 | 컴퓨터 | 데이터베이스 | 3 |
S001 | C02 | 85 | 김철수 | 컴퓨터 | 네트워크 | 3 |
S002 | C01 | 78 | 이영희 | 전자 | 데이터베이스 | 3 |
3) 종속성 분석
속성 | 무엇에 종속되는가 | 판정 | 조치 |
성적 | (학번 + 과목코드) 전체 | 완전 함수 종속 | 그대로 둔다 |
학생명, 학과 | 학번만 | 부분 함수 종속 | 학생 표로 분리 |
과목명, 학점수 | 과목코드만 | 부분 함수 종속 | 과목 표로 분리 |
4)
정규화 후 — 결정자를 따라 세 표로 분해
[학생] — 결정자였던 학번이 기본키가 된다
학번 | 학생명 | 학과 |
S001 | 김철수 | 컴퓨터 |
S002 | 이영희 | 전자 |
[과목] — 결정자였던 과목코드가 기본키가 된다
과목코드 | 과목명 | 학점수 |
C01 | 데이터베이스 | 3 |
C02 | 네트워크 | 3 |
[수강] — 키 전체에 완전 종속되던 성적만 남는다
학번 | 과목코드 | 성적 |
S001 | C01 | 90 |
S001 | C02 | 85 |
S002 | C01 | 78 |
5) 무손실 분해 (Lossless Decomposition) 
분해한 표들을 조인하면 원래 정보가 완벽히 복원되어야 한다.
분해 전 | 분해 후 조인 결과 | 판정 |
S001 / C01 / 90 / 김철수 / 컴퓨터 / 데이터베이스 / 3 | S001 / C01 / 90 / 김철수 / 컴퓨터 / 데이터베이스 / 3 | 동일 |
S001 / C02 / 85 / 김철수 / 컴퓨터 / 네트워크 / 3 | S001 / C02 / 85 / 김철수 / 컴퓨터 / 네트워크 / 3 | 동일 |
S002 / C01 / 78 / 이영희 / 전자 / 데이터베이스 / 3 | S002 / C01 / 78 / 이영희 / 전자 / 데이터베이스 / 3 | 동일 |
정보가 사라지거나 없던 행이 생기면 잘못된 분해입니다.
4. 제3정규화 (3NF) — 이행 함수 종속 제거 

1) 규칙
2NF를 만족하면서, 기본키가 아닌 속성이 다른 일반 속성을 결정해서는 안 된다.
•
다르게 말하면: 기본키 → A → B 형태의 이행 종속을 없애는 것
•
또 다르게 말하면: "키가 아닌 것이 결정자가 되면 안 된다"
2)
정규화 전 — 0번에서 봤던 그 표 (기본키 = 사원번호 단일키)
사원번호 | 사원명 | 부서번호 | 부서명 | 부서위치 |
7369 | SMITH | 20 | RESEARCH | DALLAS |
7566 | JONES | 20 | RESEARCH | DALLAS |
7788 | SCOTT | 20 | RESEARCH | DALLAS |
7782 | CLARK | 10 | ACCOUNTING | NEW YORK |
3) 정규형 판정 — "2NF는 통과하는데 3NF는 위반" 

정규형 | 판정 | 근거 |
1NF | 만족 | 모든 칸에 값이 하나씩 |
2NF | 만족 | 기본키가 사원번호 단일키 → 부분 종속이 애초에 생길 수 없음 |
3NF | 위반 | 사원번호 → 부서번호 → 부서명 이행 종속 존재 |
가장 많이 틀리는 지점"기본키가 단일키니까 정규화가 끝났다" 고 착각하면 안 됩니다.
단일키여도 이행 종속은 얼마든지 생깁니다.이행 종속 확인 — 키가 아닌 부서번호가 부서명을 결정하는가?
부서번호 | 함께 나타난 부서명 | 종류 수 | 판정 |
20 | RESEARCH | 1 | 결정한다 |
10 | ACCOUNTING | 1 | 결정한다 |
→ 키가 아닌 속성이 결정자 노릇을 하고 있습니다 = 3NF 위반
4)
정규화 후 — 결정자를 기본키로 하는 표를 분리
[사원] — 부서번호만 외래키로 남긴다 (03강의 비식별관계)
사원번호 | 사원명 | 부서번호(FK) |
7369 | SMITH | 20 |
7566 | JONES | 20 |
7788 | SCOTT | 20 |
7782 | CLARK | 10 |
[부서] — 결정자였던 부서번호가 기본키가 된다
부서번호 | 부서명 | 부서위치 |
10 | ACCOUNTING | NEW YORK |
20 | RESEARCH | DALLAS |
우리가 실습에서 쓰는 EMP / DEPT 구조가 바로 제3정규형까지 정규화된 결과입니다.5) 정규화로 이상현상이 전부 해소되는지 확인 
이상현상 | 정규화 전 | 정규화 후 |
삽입 | 사원이 없으면 신설 부서 등록 불가 ![]() | [부서] 표에 한 행만 추가 → 사원 없이도 등록 ![]() |
갱신 | 부서명 변경 시 사원 수만큼 수정, 놓치면 불일치 ![]() | [부서] 표의 한 행만 수정 → 불일치 불가능 ![]() |
삭제 | 마지막 사원 삭제 시 부서 정보까지 소멸 ![]() | [사원] 행만 삭제, 부서는 그대로 남음 ![]() |
6) 2NF와 3NF 비교 
제2정규형 위반 | 제3정규형 위반 | |
종속 유형 | 부분 함수 종속 | 이행 함수 종속 |
형태 | 복합키의 일부 → 일반 속성 | 일반 속성 → 다른 일반 속성 |
발생 조건 | 기본키가 복합키일 때만 | 단일키여도 발생 |
예 | (학번+과목코드) 중 학번 → 학생명 | 사원번호 → 부서번호 → 부서명 |
해결 | 결정자별로 표를 분리 | 결정자를 기본키로 하는 표를 분리 |
5. 3단계 통합 실습 — 비정규 표를 끝까지 분해하기
실제 시험에서는 "이 표를 정규화하시오" 형태로 나옵니다. 한 번에 끝까지 가 봅시다.
0단계) 비정규 원본 — [주문] 표
주문번호 | 주문일자 | 고객번호 | 고객명 | 고객등급 | 등급할인율 | 주문상품 |
O001 | 2026-01-05 | C10 | 김철수 | VIP | 10 | P1:노트북:2, P2:마우스:1 |
O002 | 2026-01-06 | C20 | 이영희 | 일반 | 0 | P1:노트북:1 |
문제점 진단
# | 문제 | 위반 정규형 |
1 | 주문상품 한 칸에 상품이 여러 개 | 1NF |
2 | 상품명이 상품코드에만 종속 (복합키 일부) | 2NF |
3 | 등급할인율이 고객등급에 종속 (키 아닌 속성이 결정자) | 3NF |
1단계) 제1정규화 — 다중값을 행으로 분리
주문번호 | 상품코드 | 상품명 | 수량 | 주문일자 | 고객번호 | 고객명 | 고객등급 | 등급할인율 |
O001 | P1 | 노트북 | 2 | 2026-01-05 | C10 | 김철수 | VIP | 10 |
O001 | P2 | 마우스 | 1 | 2026-01-05 | C10 | 김철수 | VIP | 10 |
O002 | P1 | 노트북 | 1 | 2026-01-06 | C20 | 이영희 | 일반 | 0 |
기본키가 (주문번호 + 상품코드) 복합키가 되었습니다. → 이제 2NF를 따져야 합니다.
2단계) 제2정규화 — 부분 함수 종속 분리
속성 | 종속 대상 | 판정 | 조치 |
수량 | (주문번호 + 상품코드) 전체 | 완전 | [주문상세]에 남김 |
상품명 | 상품코드만 | 부분 | [상품] 표로 |
주문일자, 고객번호, 고객명, 고객등급, 등급할인율 | 주문번호만 | 부분 | [주문] 표로 |
[주문]
주문번호 | 주문일자 | 고객번호 | 고객명 | 고객등급 | 등급할인율 |
O001 | 2026-01-05 | C10 | 김철수 | VIP | 10 |
O002 | 2026-01-06 | C20 | 이영희 | 일반 | 0 |
[상품]
상품코드 | 상품명 |
P1 | 노트북 |
P2 | 마우스 |
[주문상세]
주문번호 | 상품코드 | 수량 |
O001 | P1 | 2 |
O001 | P2 | 1 |
O002 | P1 | 1 |
3단계) 제3정규화 — 이행 함수 종속 분리
[주문] 표에 아직 문제가 남아 있습니다.
[주문] — 고객번호만 외래키로 남김
주문번호 | 주문일자 | 고객번호(FK) |
O001 | 2026-01-05 | C10 |
O002 | 2026-01-06 | C20 |
[고객]
고객번호 | 고객명 | 고객등급(FK) |
C10 | 김철수 | VIP |
C20 | 이영희 | 일반 |
[등급]
고객등급 | 등급할인율 |
VIP | 10 |
일반 | 0 |
4) 최종 결과 — 표 1개가 5개로
항목 | 0단계 (비정규) | 3단계 (3NF) |
표 개수 | 1개 | 5개 |
중복 | 고객·상품 정보가 반복 | 없음 |
이상현상 | 삽입·갱신·삭제 모두 발생 | 모두 해소 |
조회 시 | 표 하나만 보면 됨 | 5개를 조인해야 함 ![]() |
마지막 행이 바로 정규화의 대가입니다. 다음 절에서 다룹니다.6. 정규화와 성능 

1) 가장 많이 틀리는 명제
"정규화를 하면 성능이 나빠진다" → 오답입니다.정규화는 조회 성능은 나빠질 수 있지만, 입력·수정·삭제 성능은 좋아집니다.
심지어 조회 성능이 좋아지는 경우도 있습니다.
2) 양방향 정리
구분 | 정규화의 효과 | 이유 |
입력(INSERT) | 향상 | 중복 저장이 없어 쓸 데이터가 적다 |
수정(UPDATE) | 향상 | 한 곳만 고치면 끝 (갱신 이상 없음) |
삭제(DELETE) | 향상 | 연쇄 문제 없이 안전하게 지운다 |
조회(SELECT) | ![]() 경우에 따라 다름 | 조인은 늘지만, 표가 얇아진다 |
저장 공간 | 절약 | 중복 제거 |
데이터 무결성 | 향상 | 이상현상 제거 |
3) 정규화가 조회 성능을 "높이는" 원리 
핵심 원리: 컬럼이 줄면 한 행이 짧아지고, 한 블록에 더 많은 행이 담겨 읽어야 할 블록 수가 줄어든다.
정규화 전 | 정규화 후 | |
한 행의 길이 | 약 43바이트 | 약 16바이트 |
블록당 저장 행 수 | 약 190행 | 약 512행 |
10,000행 조회 시 블록 I/O | 약 53블록 | 약 20블록 ![]() |
부서명이 필요 없는 조회(예: "20번 부서 사원 이름 목록")라면
얇아진 [사원] 표만 읽으면 되므로 정규화 후가 더 빠릅니다.4) 정규화가 조회 성능을 "낮추는" 경우
조회 내용 | 정규화 전 | 정규화 후 |
사원명 + 부서명 | 표 1개 (조인 0회) | 표 2개 (조인 1회) |
5절의 주문 전체 정보 | 표 1개 (조인 0회) | 표 5개 (조인 4회) ![]() |
결론
정규화는 "무결성 ↑ · 갱신 성능 ↑" 과 "조회 시 조인 부담 ↑" 의 트레이드오프입니다.
SQLD에서는 "정규화는 항상 옳다"도, "정규화는 성능을 해친다"도 모두 오답입니다.7. 출제 포인트 한눈에 정리
# | 꼭 외울 것 | 핵심 |
1 | 정규화의 목적 | 중복 제거 → 이상현상 방지, 데이터 독립성 확보 |
2 | 이상현상 3가지 | 삽입 / 갱신 / 삭제 (조회 이상은 없음 ) |
3 | 함수적 종속 표기 | A → B : A는 결정자, B는 종속자 |
4 | 종속 판정법 | 결정자 값 하나에 종속자 값이 항상 1종류면 성립 |
5 | 제1정규형 | 원자값만 허용 (다중값 속성 + 반복 컬럼 모두 위반) |
6 | 제2정규형 | 부분 함수 종속 제거 |
7 | 2NF 발생 조건 | 기본키가 복합키일 때만 (단일키면 2NF 위반 불가) |
8 | 제3정규형 | 이행 함수 종속 제거 (키 → A → B) |
9 | 3NF 다른 표현 | "키가 아닌 속성이 결정자가 되면 안 된다" |
10 | 무손실 분해 | 분해 후에도 조인으로 원본 복원 가능해야 함 |
11 | 정규화와 성능 | 입력·수정·삭제 향상 / 조회는 경우에 따라 다름 |
8. 확인 문제
Q1. 데이터베이스의 이상현상(Anomaly)에 해당하지 않는 것은?
① 삽입 이상 ② 갱신 이상 ③ 삭제 이상 ④ 조회 이상
정답 보기
Q2. 다음 중 제1정규형을 위반하는 것을 모두 고르시오.
① 자격증 = '1급코치, 심판2급'
② 전화1, 전화2, 전화3 컬럼
③ 주소를 시/구/동으로 나누어 저장
④ 한 행에 상품이 하나씩만 저장됨
정답 보기
Q3. 아래 표는 제2정규형을 만족하는가? 제3정규형은 만족하는가?
사원번호(PK) | 사원명 | 부서번호 | 부서명 | 부서위치 |
7369 | SMITH | 20 | RESEARCH | DALLAS |
정답 보기
Q4. 제2정규화에 대한 설명으로 옳은 것은?
① 기본키가 단일키여도 제2정규형 위반이 발생할 수 있다
② 기본키가 복합키인 경우에만 제2정규형 위반이 발생한다
③ 이행 함수 종속을 제거하는 과정이다
④ 다중값 속성을 제거하는 과정이다
정답 보기
Q5. 정규화와 성능에 대한 설명으로 옳지 않은 것은?
① 정규화하면 입력·수정·삭제 성능이 향상된다
② 정규화하면 조인이 늘어 조회 성능이 저하될 수 있다
③ 정규화로 한 행의 길이가 짧아져 조회 성능이 향상되는 경우도 있다
④ 정규화는 어떤 경우에도 조회 성능을 향상시키지 못한다
정답 보기















