psql CLI 완전 정복 — 터미널에서 모든 것을 다루다
📋 실습 안내
✏️ CODE EDITOR (JSX)
▶ 실행 버튼을 눌러 코드를 테스트하세요.
👁️ 내 미리보기
내 코드 실행 결과
🎯 완성 미리보기
목표
위 에디터 코드를 수정해서 이 결과물과 똑같이 만들어보세요!
💡 TODO 주석을 채워서 위 결과물처럼 동작하게 만들어보세요
🤖 AI 선생님에게 질문하기
이번 강의 전용
▼
선생님이 답변 중이에요...
⚠️ 학습 관련 질문만 답변합니다. 관련 없는 질문은 자동으로 학습으로 유도됩니다.
Q1. psql에서 현재 데이터베이스의 모든 테이블 목록을 보여주는 메타 커맨드는?
💡 \dt는 현재 스키마의 테이블 목록을 보여줍니다. \dt public.*는 public 스키마의 모든 테이블, \dt *.*는 모든 스키마의 테이블을 조회합니다. MySQL의 SHOW TABLES에 해당합니다.
Q2. psql에서 COPY와 \copy의 차이점으로 가장 올바른 설명은?
💡 COPY는 PostgreSQL 서버 프로세스가 서버의 파일 시스템에 직접 읽고 씁니다. 따라서 슈퍼유저 권한이 필요하고 서버에 파일이 존재해야 합니다. \copy는 psql 클라이언트가 클라이언트 머신의 파일에 접근하므로 일반 사용자도 사용 가능합니다.
Q3. psql에서 마지막으로 실행한 쿼리를 외부 텍스트 에디터로 열어 편집하려면?
💡 \e 메타 커맨드는 $EDITOR 환경 변수에 지정된 외부 에디터(vim, nano 등)를 열어 마지막으로 실행한 쿼리를 편집할 수 있게 해줍니다. 에디터를 저장하고 종료하면 쿼리가 자동으로 실행됩니다.
Q4. psql에서 쿼리 실행 시간을 표시하려면?
💡 \timing 메타 커맨드를 실행하면 이후 모든 쿼리의 실행 시간이 밀리초 단위로 표시됩니다. 다시 \timing을 입력하면 토글로 비활성화됩니다. EXPLAIN ANALYZE는 실행 계획과 시간을 보여주지만 쿼리를 실제 실행하여 결과를 반환하지는 않습니다.
Q5. psql 접속 시 비밀번호를 환경 변수로 전달하는 올바른 방법은?
💡 PostgreSQL 클라이언트는 PGPASSWORD 환경 변수를 인식합니다. 스크립트에서 비밀번호를 환경 변수로 전달하거나 ~/.pgpass 파일에 저장하면 비대화형 실행이 가능합니다. MYSQL_PWD는 MySQL 클라이언트 전용입니다.
😅
아쉽네요!
점수: 0점 — 70점 이상이 되어야 통과합니다.