모든 포스트
Box, Rc, Arc 차이: Rust 스마트 포인터, 언제 무엇을 쓰나
기초 강좌가 The Book에 맡겨 둔 공백을 회수합니다. 값을 힙에 두는 Box가 필요한 세 상황(재귀 타입, dyn 트레이트, 큰 값의 이동), 소유자를 여럿 만드는 Rc와 참조 카운트, 스레드를 건너는 Arc, 런타임 빌림 검사로 내부 가변성을 여는 RefCell, 그리고 실무 관용구인 Rc<RefCell<T>>와 Arc<Mutex<T>>까지, 선택 기준을 결정 순서도로 정리하겠습니다.
Entra ID 자동화 #2 사용자 수명 주기: 생성, 비활성화, 그리고 수명 주기 워크플로
입사·이동·퇴사를 코드로 처리하는 방법을 다룹니다. Graph API로 사용자를 만들 때 속성을 표준화해야 하는 이유, 초기 자격 증명을 임시 액세스 패스로 전달하는 법, 퇴사 처리에서 삭제보다 비활성화가 먼저인 이유와 30일 소프트 삭제, 라이선스는 개인 할당보다 그룹 기반이 기본인 이유, 그리고 이 흐름 전체를 제품 기능으로 제공하는 Entra 수명 주기 워크플로와 HR 연동 프로비저닝까지 다룹니다.
pgvector 실전: PostgreSQL로 벡터 검색을 운영할 때 알아야 할 것
임베딩 검색을 별도 벡터 DB 없이 PostgreSQL로 운영하는 실전 가이드입니다. vector 타입과 거리 연산자, HNSW 인덱스가 기본값인 이유와 IVFFlat과의 비교, 필터 조건과 함께 쓸 때의 과소 검색 문제와 반복 인덱스 스캔(0.8.0), halfvec으로 저장 크기를 절반으로 줄이고 최대 4000차원을 다루는 방법, 그리고 "전용 벡터 DB가 필요한 시점은 언제인가"의 판단 기준까지 다루겠습니다.
Entra ID 자동화 #1 전체 그림: 테넌트, 디렉터리 객체, JML 수명 주기
Microsoft Entra ID 관리 업무를 코드로 자동화하는 시리즈의 첫 편입니다. Azure AD에서 이름이 바뀐 Entra ID의 위치, 테넌트와 사용자·그룹·앱·디바이스라는 디렉터리 객체의 구조, 계정 관리 자동화의 뼈대가 되는 입사·이동·퇴사(JML) 모델, Graph API·PowerShell·IaC라는 도구 지형, Free·P1·P2·Governance로 갈리는 라이선스와 기능의 관계까지 다룹니다.
PostgreSQL vs MySQL: 2026년에 새 프로젝트라면 어느 쪽인가
두 오픈소스 RDBMS의 선택 기준을 정리합니다. 결론은 "새 프로젝트는 특별한 이유가 없으면 PostgreSQL, MySQL 생태계에 이미 서 있다면 MySQL 유지"입니다. MySQL 8.0 지원 종료(2026-04)와 8.4 LTS 전환 시점, 기능 폭(JSONB·윈도 함수·확장)과 MVCC 구현 차이, 복제 생태계의 성숙도 차이, 그리고 어느 쪽을 골라도 되는 경우까지 판단 기준을 다루겠습니다.
Rust vs Go: 서버, CLI, 시스템 프로그래밍에서 무엇으로 만들지 고르는 기준
둘 다 정적 타입에 단일 바이너리를 만드는 컴파일 언어지만, 설계 철학은 반대에 가깝습니다. 메모리 관리(GC vs 소유권), 동시성(내장 고루틴 vs async 생태계), 학습 곡선과 팀 온보딩, 지연 시간 특성, 그리고 웹 API, CLI 도구, 인프라 소프트웨어, 임베디드까지 용도별로 어느 쪽이 유리한지의 판단 기준을 정리하겠습니다.
PostgreSQL 실전 강좌 #9 백업·PITR·업그레이드: 장애 직전으로 돌아가는 기술
실전 편의 마무리로 데이터를 지키는 마지막 층을 다룹니다. pg_dump 논리 백업의 한계를 넘는 물리 백업(pg_basebackup)과 WAL 아카이빙의 조합, 원하는 시각으로 되감는 PITR(Point-In-Time Recovery)의 원리와 복구 목표 설정, "삭제 사고는 페일오버로 못 돌린다"는 복제와 백업의 역할 구분, 메이저 버전 업그레이드의 세 가지 길(pg_dump·pg_upgrade·논리 복제), 그리고 트랙 전체의 회고까지 다루겠습니다.
Rust 빌림 에러 총정리: value moved, cannot borrow, does not live long enough
Rust 입문자가 가장 자주 만나는 빌림 검사기 에러를 코드별로 정리합니다. E0382(이동 후 사용), E0502(불변·가변 빌림 충돌), E0499(가변 빌림 중복), E0506(빌린 값에 대입), E0597(수명 부족), E0596(클로저 캡처)까지, 각 에러의 원인과 대표 처방을 진단→원인→해결 순서로 다루겠습니다.
테라폼 실전 강좌 #1 프로젝트 설계와 부트스트랩: 전체 그림, 백엔드, 공통 태그
열 편에 걸쳐 코드로 세울 웹 서비스 인프라의 전체 아키텍처를 먼저 그리고, 실습 비용이 발생하는 지점과 관리 원칙을 정리합니다. state 버킷과 S3 백엔드 부트스트랩, provider 버전 고정, default_tags로 모든 리소스에 공통 태그를 거는 기반 작업까지 마쳐 실전 시리즈의 출발선을 만들겠습니다.
PostgreSQL 실전 강좌 #8 복제와 고가용성: 스트리밍 복제, 읽기 분산, 페일오버
DB 서버 한 대의 한계를 넘는 표준 수단인 복제를 다룹니다. WAL을 그대로 흘려보내는 스트리밍(물리) 복제의 원리, 비동기 복제의 복제 지연과 read-your-writes 문제, 동기 복제의 트레이드오프, 읽기 부하를 스탠바이로 분산할 때의 주의점, 자동 페일오버에 필요한 것들(Patroni 등)과 스플릿 브레인, 테이블 단위로 골라 보내는 논리 복제의 용도, 그리고 관리형 서비스와의 대응 관계까지 다루겠습니다.