Docker로 환경 구축 — docker-compose + pgAdmin 4 완전 세팅
📋 실습 안내
✏️ CODE EDITOR (JSX)
▶ 실행 버튼을 눌러 코드를 테스트하세요.
👁️ 내 미리보기
내 코드 실행 결과
🎯 완성 미리보기
목표
위 에디터 코드를 수정해서 이 결과물과 똑같이 만들어보세요!
💡 TODO 주석을 채워서 위 결과물처럼 동작하게 만들어보세요
🤖 AI 선생님에게 질문하기
이번 강의 전용
▼
선생님이 답변 중이에요...
⚠️ 학습 관련 질문만 답변합니다. 관련 없는 질문은 자동으로 학습으로 유도됩니다.
Q1. docker-compose에서 PostgreSQL 컨테이너의 최초 기동 시 SQL을 자동으로 실행하려면 어느 경로에 파일을 마운트해야 합니까?
💡 /docker-entrypoint-initdb.d/ 경로에 마운트된 .sql 또는 .sh 파일은 PostgreSQL 컨테이너 최초 기동 시(볼륨이 비어있을 때) 알파벳 순서로 자동 실행됩니다. 볼륨에 기존 데이터가 있으면 실행되지 않으므로 데이터 초기화 후 재실행해야 합니다.
Q2. docker-compose에서 pgAdmin이 PostgreSQL 컨테이너가 완전히 준비된 후에만 시작되도록 하려면 어떻게 설정해야 합니까?
💡 단순 depends_on은 컨테이너가 '시작됨' 상태만 확인합니다. PostgreSQL이 실제로 연결을 받을 준비가 됐는지 확인하려면 healthcheck(pg_isready 명령 사용)와 condition: service_healthy를 함께 사용해야 합니다.
Q3. PostgreSQL Docker 컨테이너를 실행할 때 POSTGRES_USER 환경변수를 설정하면 어떤 일이 일어납니까?
💡 POSTGRES_USER로 지정된 이름의 슈퍼유저 역할(role)이 생성되고, POSTGRES_DB가 지정되지 않은 경우 같은 이름의 데이터베이스도 자동 생성됩니다. POSTGRES_DB를 별도로 지정하면 그 이름의 데이터베이스가 생성됩니다.
Q4. docker-compose down -v 와 docker-compose down 의 차이점은?
💡 docker-compose down은 컨테이너를 삭제하고 네트워크를 제거하지만 named volume은 보존합니다. -v 플래그를 추가하면 컴포즈 파일에서 정의된 named volume까지 삭제되어 PostgreSQL 데이터가 모두 사라집니다.
Q5. CI4에서 PostgreSQL에 연결하기 위해 Database.php의 DBDriver에 설정해야 할 값은?
💡 CodeIgniter 4에서 PostgreSQL 드라이버는 'Postgre'로 지정합니다(대소문자 주의). MySQLi 대신 Postgre로 바꾸면 CI4의 Query Builder가 PostgreSQL 문법으로 쿼리를 생성합니다. 포트 기본값은 5432입니다.
😅
아쉽네요!
점수: 0점 — 70점 이상이 되어야 통과합니다.