모든 포스트
PostgreSQL 기초 강좌 #4 인덱스는 언제 사용되는가
조회를 빠르게 만드는 인덱스를 PostgreSQL 기준으로 다룹니다. B-tree 인덱스가 조회를 바꾸는 구조, 인덱스를 만들었는데도 사용되지 않는 대표 원인들(선행 컬럼 불일치, 컬럼에 함수 적용, 자료형 불일치, 낮은 선택도), 쓰기 성능과 저장 공간이라는 비용, 그리고 "느린 쿼리의 WHERE·JOIN·ORDER BY를 보고 만든다"는 실무 순서까지 다루겠습니다.
Rust 기초 강좌 #4 참조와 빌림: &와 &mut, 빌림 규칙 관련 컴파일 에러 해결
소유권을 옮기지 않고 값을 사용하는 참조(&)와 가변 참조(&mut)를 다룹니다. "불변 참조는 여러 개, 가변 참조는 하나"라는 빌림 규칙이 무엇을 막는지(반복 중 수정, 데이터 레이스), cannot borrow as mutable 에러를 읽고 푸는 법, 해제된 메모리를 가리키는 댕글링 참조가 컴파일 단계에서 차단되는 구조, 그리고 &str과 슬라이스까지 다루겠습니다.
SQLAlchemy 2.0 #3 ORM 모델 정의: DeclarativeBase, Mapped, mapped_column
테이블을 파이썬 클래스로 선언하는 2.0 스타일 ORM 모델 정의를 정리합니다. DeclarativeBase를 상속하는 구조, Mapped 타입 힌트와 mapped_column의 역할 분담, 파이썬 타입이 DB 타입으로 매핑되는 규칙, Optional과 nullable의 연동, 기본값·유니크·인덱스 선언, 제약 조건 이름을 자동으로 붙이는 네이밍 컨벤션까지 다룹니다.
PostgreSQL 기초 강좌 #3 조인과 집계: 읽기 쿼리의 실무 감각
읽기 쿼리의 실무 8할을 차지하는 조인과 집계를 다룹니다. INNER와 LEFT 조인의 선택 기준과 LEFT 조인 결과를 WHERE로 걸러 INNER로 만들어 버리는 고전적 실수, GROUP BY와 HAVING의 역할 구분, 집계와 조인이 섞일 때의 중복 집계 함정, 서브쿼리와 조인의 갈림길, 그리고 그룹별 최신 1건을 뽑는 PostgreSQL다운 방법(DISTINCT ON)까지 다루겠습니다.
Rust 기초 강좌 #3 소유권: move가 기본인 언어, GC 없이 메모리가 정리되는 원리
Rust의 심장인 소유권을 정면으로 다룹니다. 모든 값에 소유자가 하나뿐이라는 세 규칙, 대입과 함수 호출에서 값이 이동(move)한 뒤 원래 변수를 사용할 수 없게 되는 이유, 스택에 저장되는 고정 크기 타입만 누리는 Copy, 비용이 코드에 드러나는 clone, 그리고 스코프 끝에서 자동으로 해제되는 drop까지, use-after-free가 컴파일 에러로 바뀌는 구조를 다루겠습니다.
SQLAlchemy 2.0 #2 엔진과 트랜잭션: 커넥션 풀, commit의 두 가지 패턴
SQLAlchemy의 토대인 엔진과 트랜잭션을 정리합니다. 커넥션 풀이 왜 필요하고 어떻게 동작하는지, pool_size와 max_overflow가 실제로 제한하는 것, connect()와 begin()으로 갈리는 commit-as-you-go와 begin-once 패턴, 트랜잭션이 자동 커밋되지 않는 이유, MetaData와 Table로 테이블을 정의하고 Core 표현식으로 CRUD를 실행하는 것까지 다룹니다.
PostgreSQL 기초 강좌 #2 자료형과 테이블 설계: 무엇으로 저장할 것인가
PostgreSQL 설계의 절반은 자료형 선택입니다. 문자열은 text 하나로 충분한 이유, 돈 계산에서 numeric이 필수인 이유, 시각 저장의 표준인 timestamptz와 timestamp의 함정, 기본 키 전략(bigint IDENTITY vs UUID, 그리고 uuidv7), NOT NULL·CHECK·외래 키로 데이터 무결성을 DB 층에서 지키는 설계, enum과 배열을 쓸 곳까지 다루겠습니다.
Rust 기초 강좌 #2 변수와 타입: let과 mut, 섀도잉, 함수는 표현식으로 끝난다
불변이 기본인 let과 명시적으로 붙이는 mut의 의미부터 시작합니다. 같은 이름을 다시 선언하는 섀도잉이 왜 실무 관용구인지, 정수·부동소수점·bool·char 스칼라 타입과 오버플로 동작, 튜플과 배열, 그리고 세미콜론 하나로 문장과 표현식이 갈리는 Rust 함수의 반환 규칙까지 다루겠습니다.
SQLAlchemy 2.0 #1 전체 그림: Core와 ORM, 그리고 2.0 스타일
파이썬 DB 라이브러리의 사실상 표준인 SQLAlchemy를 바닥부터 정리하는 시리즈의 첫 편입니다. Core와 ORM이라는 두 층의 구조, 1.x 시절 코드와 2.0 스타일이 다른 이유, select() 중심으로 통일된 쿼리 방식과 타입 힌트 지원, 설치와 첫 연결, text()로 SQL을 직접 실행하는 것까지 다룹니다.
PostgreSQL 기초 강좌 #1 PostgreSQL이란: 널리 쓰이는 데이터베이스가 된 이유, 설치와 psql 첫 사용
PostgreSQL이 신규 프로젝트의 기본 데이터베이스가 된 배경부터 시작합니다. 표준 준수와 풍부한 자료형, 확장 생태계(pgvector·PostGIS), 관대한 라이선스라는 선택의 이유, 도커로 로컬에 띄우는 가장 빠른 설치, psql 접속과 메타 명령(\l, \dt, \d)의 기본기, 첫 테이블을 만들고 넣고 조회하는 한 사이클, 그리고 강좌 전체의 지도까지 다루겠습니다.
Rust 기초 강좌 #1 Rust란: 배우는 이유, rustup 설치와 cargo 첫 사용
Rust가 커널부터 CLI 도구까지 빠르게 퍼진 이유로 꼽히는 "GC 없는 메모리 안전"이 무슨 뜻인지부터 시작합니다. 안전과 성능이 트레이드오프였던 기존 언어들과의 차이, rustup 한 줄 설치, cargo로 프로젝트를 만들고 실행하는 기본 사이클, 그리고 첫 컴파일 에러 메시지를 읽는 법과 강좌 전체의 지도까지 다루겠습니다.
파이썬 패키징 #7 팀 규약과 도구 선택: uv, poetry, pip
시리즈 마지막 편으로, 도구 선택과 팀 규약을 정리합니다. uv, poetry, pip+venv를 한 표에 놓고 가르는 기준, 마이그레이션의 실제 비용, CI에서 캐싱과 frozen 검증을 거는 법, 도커 이미지에서 uv를 쓰는 표준 패턴, 새 팀원이 와도 무너지지 않는 팀 규약 체크리스트까지 다루고 시리즈 전체를 회고합니다.