TechBridge

DB · Schema · Tablespace — MySQL에 없는 3계층 구조 완전 이해

← 목록으로

📋 실습 안내

✏️ CODE EDITOR (JSX)
▶ 실행 버튼을 눌러 코드를 테스트하세요.
👁️ 내 미리보기 내 코드 실행 결과
🎯 완성 미리보기 목표
위 에디터 코드를 수정해서 이 결과물과 똑같이 만들어보세요!
💡 TODO 주석을 채워서 위 결과물처럼 동작하게 만들어보세요
🤖 AI 선생님에게 질문하기 이번 강의 전용
  선생님이 답변 중이에요...
⚠️ 학습 관련 질문만 답변합니다. 관련 없는 질문은 자동으로 학습으로 유도됩니다.
Q1. PostgreSQL에서 스키마(Schema)의 역할로 가장 올바른 설명은?
💡 PostgreSQL의 스키마는 데이터베이스 내에서 테이블, 뷰, 함수, 타입 등 객체를 논리적으로 묶는 네임스페이스입니다. MySQL의 데이터베이스와 비슷한 역할을 하지만, PostgreSQL에서는 데이터베이스 아래에 위치하는 중간 계층입니다.
Q2. search_path를 'app, public'으로 설정했을 때, 'SELECT * FROM users;' 실행 시 PostgreSQL이 찾는 순서는?
💡 search_path는 왼쪽에서 오른쪽으로 스키마를 탐색합니다. 'app, public'이면 먼저 app.users를 찾고, 없으면 public.users를 찾습니다. 둘 다 없으면 'relation does not exist' 오류가 발생합니다.
Q3. MySQL에서 'SELECT * FROM db1.t1 JOIN db2.t2 ON ...' 처럼 다른 데이터베이스를 조인하는 쿼리를 PostgreSQL에서 실행하면?
💡 PostgreSQL에서 교차 데이터베이스 조인은 기본적으로 지원하지 않습니다. 같은 데이터베이스 내 다른 스키마의 테이블은 조인 가능하지만, 다른 DB는 dblink 확장이나 Foreign Data Wrapper(postgres_fdw)를 통해서만 접근 가능합니다.
Q4. DROP SCHEMA my_schema CASCADE; 명령의 효과는?
💡 CASCADE 옵션은 스키마와 그 안에 있는 모든 객체(테이블, 뷰, 함수, 시퀀스 등)를 함께 삭제합니다. CASCADE 없이 비어있지 않은 스키마를 삭제하려 하면 오류가 발생합니다. 매우 위험한 명령이므로 운영 환경에서는 극도로 주의해야 합니다.
Q5. PostgreSQL의 Tablespace에 대한 올바른 설명은?
💡 Tablespace는 PostgreSQL 데이터 파일(테이블, 인덱스)이 저장될 OS 파일 시스템 경로를 지정합니다. 자주 접근하는 테이블은 SSD Tablespace에, 아카이브 데이터는 HDD Tablespace에 저장하는 식으로 I/O 성능을 최적화할 수 있습니다.
🎉

퀴즈 통과!

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

다음 강의로 →
😅

아쉽네요!

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