실전 SQL 학습: LeetCode 챌린지와 PostgreSQL 설정

발행: (2026년 1월 7일 오후 05:42 GMT+9)
5 min read
원문: Dev.to

Source: Dev.to

LeetCode로 SQL 연습하기 (SQL 50 Challenge)

오늘은 부가 퀘스트로 LeetCode의 SQL 50 Challenge 중 SELECT 파트에 도전했습니다. 다음 문제들을 해결했습니다:

  • 재활용 가능 및 저지방 제품
  • 고객 추천인 찾기
  • 큰 국가들
  • 기사 조회수 I
  • 잘못된 트윗

모두 난이도가 Easy로 표시돼 있었고, 재미있었지만 핵심은 각 질문이 실제로 무엇을 묻고 있는지를 이해하는 것이었습니다.

몇몇 문제를 여러 번 다시 풀었는데, 어려워서가 아니라 다음을 명확히 매핑하기 위해서였습니다:

  • 문제 설명
  • 필요한 SQL 로직
  • 최종 쿼리

이를 통해 SQL은 문법을 외우는 것보다 질문을 쿼리로 변환하는 능력이 더 중요하다는 것을 다시 한 번 확인했습니다.

PostgreSQL 설치 및 도구 탐색

연습을 마친 뒤 PostgreSQL을 설치했으며, 다음과 같은 구성 요소가 함께 제공되었습니다:

  • pgAdmin (GUI 클라이언트)
  • psql / SQL Shell (터미널 기반 클라이언트)

제가 따라하고 있는 튜토리얼은 터미널 사용을 강조하고 있어, 대부분의 시간을 SQL 쉘에서 보냈습니다.

배운 기본 PostgreSQL 명령어

데이터베이스 생성 및 삭제

CREATE DATABASE db_name;
DROP DATABASE db_name;

테이블 삭제

DROP TABLE table_name;

PostgreSQL에서 테이블 만들기

CREATE TABLE table_name (
  column_name datatype constraint
);

흔히 사용하는 제약조건

  • NULL – 빈 값을 허용
  • NOT NULL – 빈 값을 허용하지 않음
  • PRIMARY KEY – 각 레코드를 고유하게 식별

유용한 psql 터미널 명령어

  • \? → 도움말 표시
  • \c db_name → 데이터베이스에 연결
  • \l → 서버에 존재하는 모든 데이터베이스 목록
  • \d → 모든 테이블 목록
  • \d table_name → 테이블 스키마(컬럼, 데이터 타입, 제약조건, 인덱스) 표시

이 명령어들을 사용하면 GUI에 의존하지 않고도 데이터베이스 탐색이 훨씬 수월해집니다.

PostgreSQL 데이터 타입 살펴보기

PostgreSQL은 다양한 데이터 타입을 지원합니다:

  • bigserial, serial
  • uuid
  • date, time, timestamp
  • varchar(n), text
  • json, xml
  • boolean
  • money

이러한 유연성은 실제 데이터를 모델링할 때 큰 도움이 됩니다.

첫 번째 테이블: users

전체 과정을 정리하기 위해 간단한 users 테이블을 만들었습니다:

  • idbigserial, PRIMARY KEY, NOT NULL
  • first_namevarchar(50), NOT NULL
  • last_namevarchar(50)
  • gendervarchar(6)
  • emailvarchar(150)
  • dobdate
CREATE TABLE users (
  id         bigserial PRIMARY KEY NOT NULL,
  first_name varchar(50) NOT NULL,
  last_name  varchar(50),
  gender     varchar(6),
  email      varchar(150),
  dob        date
);

처음부터 테이블을 설계하면서 컬럼, 데이터 타입, 제약조건이 어떻게 서로 맞물리는지 체감할 수 있었습니다.

마무리 생각

오늘은 매우 실용적인 하루였습니다. LeetCode에서 SQL 문제를 풀면서 쿼리 사고력을 키웠고, PostgreSQL을 설치하고 테이블을 만들면서 모든 것이 실제처럼 느껴졌습니다. 이제 데이터베이스를 단순히 저장소가 아니라, 질문에 신뢰성 있게 답변하도록 설계된 시스템으로 바라보기 시작했습니다.

내일은 데이터를 삽입하고 의미 있게 조회하는 방법에 더 집중할 예정입니다.

Back to Blog

관련 글

더 보기 »

데이터베이스 & SQL 기초: 첫날 배운 것

데이터베이스란 무엇인가? 데이터베이스는 전자적으로 저장된 관련 데이터의 구조화된 컬렉션이며, 쉽게 접근하고, 관리하고, 업데이트할 수 있도록 조직되어 있다.

WTF는 Relational Databases as a Service인가?

관계형 데이터베이스란 무엇인가? 관계형 데이터베이스는 데이터를 테이블로 구성하며, 각 테이블은 행과 열을 가지고 있습니다—마치 Excel 스프레드시트와 같습니다. This s...