TechBridge

고유 데이터 타입 총정리 — JSONB · Array · UUID · ENUM · NUMERIC · tstzrange

← 목록으로

📋 실습 안내

✏️ CODE EDITOR (JSX)
▶ 실행 버튼을 눌러 코드를 테스트하세요.
👁️ 내 미리보기 내 코드 실행 결과
🎯 완성 미리보기 목표
위 에디터 코드를 수정해서 이 결과물과 똑같이 만들어보세요!
💡 TODO 주석을 채워서 위 결과물처럼 동작하게 만들어보세요
🤖 AI 선생님에게 질문하기 이번 강의 전용
  선생님이 답변 중이에요...
⚠️ 학습 관련 질문만 답변합니다. 관련 없는 질문은 자동으로 학습으로 유도됩니다.
Q1. PostgreSQL의 JSON과 JSONB의 차이점으로 가장 올바른 설명은?
💡 JSON은 입력 텍스트를 그대로 저장하여 공백과 키 순서를 보존하지만 인덱스를 지원하지 않습니다. JSONB는 파싱하여 바이너리로 저장하므로 쓰기 시 약간 느리지만 GIN 인덱스, 빠른 검색, @ > 등 강력한 연산자를 지원합니다. 실무에서는 거의 항상 JSONB를 사용합니다.
Q2. PostgreSQL 배열에서 첫 번째 요소에 접근하는 올바른 방법은?
💡 PostgreSQL 배열은 1-based index를 사용합니다. tags[1]이 첫 번째 요소입니다. tags[0]은 NULL을 반환합니다. 대부분의 프로그래밍 언어가 0-based를 사용하는 것과 달라 MySQL 개발자가 자주 실수하는 부분입니다.
Q3. 금액 계산에 NUMERIC(15,2) 대신 DOUBLE PRECISION을 사용하면 어떤 문제가 생깁니까?
💡 DOUBLE PRECISION은 IEEE 754 부동소수점으로 0.1 + 0.2 = 0.30000000000000004 같은 오차가 발생합니다. 금액, 환율 등 정밀도가 중요한 계산에는 NUMERIC(또는 DECIMAL)을 사용해야 합니다. NUMERIC은 내부적으로 10진수로 정확하게 표현합니다.
Q4. tstzrange 타입의 '[2024-01-01, 2024-01-31)' 에서 2024-01-31은 범위에 포함됩니까?
💡 범위 타입에서 '[' 는 포함(inclusive), '(' 는 미포함(exclusive)을 의미합니다. '[2024-01-01, 2024-01-31)'는 1월 1일은 포함하고 1월 31일은 포함하지 않는 반개방 구간입니다. 날짜 범위에서 이 패턴은 매우 일반적입니다.
Q5. PostgreSQL ENUM 타입의 특징으로 올바른 것은?
💡 PostgreSQL ENUM은 ALTER TYPE ... ADD VALUE로 값을 추가할 수 있지만, 기존 값을 삭제하거나 순서를 변경하는 것은 매우 제한적입니다. 자주 변경될 수 있는 상태 코드나 카테고리에는 ENUM 대신 CHECK 제약이나 별도 참조 테이블 사용을 권장합니다.
🎉

퀴즈 통과!

점수: 0점 — 수고하셨습니다!

다음 강의로 →
😅

아쉽네요!

점수: 0점 — 70점 이상이 되어야 통과합니다.