CI4 + PostgreSQL 연결 — MyModel 패턴 그대로 PostgreSQL로 전환하기
📋 실습 안내
✏️ CODE EDITOR (JSX)
▶ 실행 버튼을 눌러 코드를 테스트하세요.
👁️ 내 미리보기
내 코드 실행 결과
🎯 완성 미리보기
목표
위 에디터 코드를 수정해서 이 결과물과 똑같이 만들어보세요!
💡 TODO 주석을 채워서 위 결과물처럼 동작하게 만들어보세요
🤖 AI 선생님에게 질문하기
이번 강의 전용
▼
선생님이 답변 중이에요...
⚠️ 학습 관련 질문만 답변합니다. 관련 없는 질문은 자동으로 학습으로 유도됩니다.
Q1. CI4에서 PostgreSQL에 연결하기 위해 Database.php의 DBDriver 값으로 설정해야 하는 것은?
💡 CodeIgniter 4에서 PostgreSQL 드라이버는 'Postgre'로 지정합니다(대소문자 정확히). MySQL의 'MySQLi'에 해당합니다. 포트 기본값은 5432로 변경해야 합니다.
Q2. PostgreSQL의 RETURNING 절의 장점으로 가장 올바른 설명은?
💡 RETURNING 절은 INSERT/UPDATE/DELETE 후 영향받은 행의 컬럼 값을 즉시 반환합니다. MySQL의 lastInsertId()보다 강력하여 SERIAL/IDENTITY로 생성된 ID뿐만 아니라 DEFAULT 값, 트리거로 설정된 값, 연산 결과 등 모든 컬럼을 한 번에 가져올 수 있습니다.
Q3. PostgreSQL에서 CI4 LIKE 검색 시 대소문자를 무시하려면?
💡 PostgreSQL의 LIKE는 대소문자를 구분합니다. 대소문자 무시 검색은 ILIKE 연산자를 사용합니다. 또는 LOWER(col) LIKE LOWER(?)도 동작하지만 인덱스 활용이 어렵습니다. 인덱스가 필요하면 pg_trgm 확장과 GIN 인덱스를 사용하는 것이 좋습니다.
Q4. CI4에서 INSERT 후 MySQL의 $db->insertID() 대신 PostgreSQL에서 권장하는 방법은?
💡 CI4의 $db->insertID()는 PostgreSQL에서 currval() 내부 함수를 통해 동작하지만, RETURNING 절을 사용하면 더 명확하고 안전합니다. 특히 멀티 시퀀스 테이블이나 트리거가 있는 경우 RETURNING이 확실히 올바른 값을 반환합니다.
Q5. CI4 Migration에서 PostgreSQL DDL을 트랜잭션으로 묶는 것의 이점은?
💡 PostgreSQL은 DDL(CREATE, ALTER, DROP)도 트랜잭션 안에서 실행하고 롤백할 수 있습니다. 마이그레이션 중 오류가 발생했을 때 이미 실행된 CREATE TABLE 등이 롤백되어 불완전한 상태가 남지 않습니다. MySQL에서는 DDL이 자동 커밋되어 이 안전망이 없습니다.
😅
아쉽네요!
점수: 0점 — 70점 이상이 되어야 통과합니다.