해결하려는 문제에 맞춰 글을 골라볼 수 있도록 정리했다. 처음 시작하는 주제는 환경 구성부터, 이미 사용 중인 기술은 비교·오류 해결 글부터 읽으면 된다. 최신 글부터 보려면 전체 글 목록으로 이동한다.
클라우드 구성·비용#
서버를 선택할 때는 VM 가격 외에 디스크·공인 IP·아웃바운드(이그레스) 비용도 함께 확인해야 한다. 먼저 필요한 사양과 과금 항목을 정한 뒤, 네트워크·스토리지·모니터링 구성으로 이어간다. 비용 글의 금액은 각 글에 표시된 기준일과 가정에 따른 값이다.
서버 선택과 비용 계산#
- GCP VM 비용 줄이기: 소규모 백엔드용 사양, 커스텀 머신, 디스크와 약정 선택을 비교한다.
- GCP·AWS·Azure·네이버클라우드 VM 비용 비교: VM·디스크·공인 IP·트래픽을 합산해 비교한다.
- Compute Engine vs GKE vs Cloud Run: 요청이 드문 API와 상시 실행 서비스의 비용이 어떻게 달라지는지 계산한다.
- 서버호스팅 vs 클라우드: 5년 TCO 계산법: 장비 구매·임대·VM 월정액의 기본비와 추가 운영비를 구분한다.
- 4사 클라우드 리전 비교: 배포할 국가, 가용 영역, 상품 지원 여부를 확인한다.
네트워크·디스크·모니터링#
- GCP Cloud VPN과 Interconnect 선택 가이드: 연결 용량과 이중화 조건에 따른 비용을 비교한다.
- GCP HA VPN과 AWS Site-to-Site VPN 연결: 네 개의 터널과 BGP 세션을 구성하고 연결 상태를 확인한다.
- 내부 로드 밸런서 비용과 Stateful MIG: 부하분산이 필요한 경우와 내부 IP 보존만 필요한 경우를 구분한다.
- Persistent Disk LVM 구성과 용량 확장: 디스크 확장분을 PV·LV·파일시스템에 순서대로 반영한다.
- GCP VM 모니터링 알림 설정: CPU·메모리 임계치와 프로세스 메트릭을 이용한 알림을 설정한다.
- CentOS 8 NetworkManager Permission denied 사례: 실제 오류 로그와 임시 복구 결과, 재발 시 진단 순서를 구분해 살펴본다.
Terraform과 자격증 학습#
- Terraform으로 GCP VPC와 VM 만들기: 다운로드 예제의 구성 파일과 생성·삭제 절차를 설명한다.
- Terraform vs OpenTofu: 라이선스, provider, state 호환성을 기준으로 도구를 비교한다.
- GCP 자격증, Associate부터 따야 할까?: 취득 경험과 공식 응시 조건을 바탕으로 목표 시험을 선택한다.
- Professional Cloud Architect 준비 가이드: 학습 순서와 자체 IAM 예제로 요구사항을 해석하는 연습을 한다.
Kafka·Docker#
Kafka를 처음 실습한다면 Docker 환경 → 메시징 비교 → 웹 UI → offset → 소비자 그룹 → 보관 정책 순서로 읽는 것을 권한다. 같은 메시지를 다시 읽는 동작과 소비자에게 작업을 분배하는 동작을 각각 확인할 수 있다.
- Docker Desktop 설치와 WSL 연동: Windows와 WSL에서 같은 Docker 엔진을 사용하도록 준비한다.
- Kafka와 RabbitMQ 직접 비교: 메시지 발행·ACK·재조회 결과를 비교한다.
- Kafka UI 설치와 메시지 조회: Compose 파일로 실행하고 토픽·소비자 그룹·lag를 웹에서 확인한다.
- Kafka offset과 IBM MQ commit 비교: 메시지 위치, 처리 완료, 다음 수신 위치의 차이를 이해한다.
- Kafka consumer group 실습: 같은 그룹의 파티션 분배와 다른 그룹의 독립 수신을 확인한다.
- Kafka 메시지 보관과 삭제: 메시지를 읽는 것과 보관 정책으로 삭제하는 것을 구분한다.
실습 이후 서버 배치를 고민한다면 Kafka 1대·2대·3대 구성과 Scale-out에서 Controller 쿼럼과 장애 범위를 살펴본다.
Docker 자체의 문제는 다음 두 글에서 다룬다.
- WSL 2에서 docker 명령을 찾지 못하는 오류: Docker Desktop 실행 상태와 WSL integration을 점검한다.
- 컨테이너 삭제 후 데이터 유지하기: 볼륨이 없는 경우와 네임드 볼륨을 마운트한 경우를 직접 비교한다.
개발 환경·앱 개발#
Windows에서 개발 도구를 준비하고 실제 앱의 초기 실행까지 진행하는 글이다. WSL을 사용하는 CLI 환경과 Windows의 Android Studio 프로젝트 환경은 각 글의 실행 위치를 확인하면서 따라간다.
- WSL 환경에서 Codex CLI 설치·구성: WSL·Ubuntu 설치부터 Node.js 경로와 CLI 실행을 확인한다.
- DayPing 개발기 1: Android Studio와 Codex CLI: 리마인더 앱의 요구사항을 전달하고 빌드·에뮬레이터 실행·알림을 확인한다. 스토어 배포 전의 초기 버전을 다룬다.
블로그 구축·배포#
Hugo 소스를 로컬에서 작성하고 GitHub에 저장한 뒤 정적 사이트로 배포하는 과정이다. 처음 배포한다면 호스팅 비교 후 원하는 서비스의 배포 글을 선택하면 된다. 기존 GitHub Pages 사이트를 옮길 때는 Cloudflare 배포 확인 후 도메인 이전 순서로 진행한다.
- WSL에서 Hugo 개발 환경 구성: 글별 디렉터리, 이미지, 로컬 미리보기와 빌드를 준비한다.
- GitHub Pages vs Cloudflare Pages: 저장소 공개 범위, 도메인과 배포 기능을 비교한다.
- GitHub Pages에 Hugo 배포: GitHub Actions와 커스텀 도메인을 구성한다.
- Cloudflare Pages에 Hugo 배포: GitHub 연동, Hugo 버전, 빌드 설정과 자동 배포를 확인한다.
- GitHub Pages에서 Cloudflare Pages로 이전: 기존 글 URL을 유지하면서 DNS를 변경하고 저장소를 비공개로 전환한다.
배포 중 막히기 쉬운 두 가지는 별도로 정리했다.
- Hugo 빌드 오류: can’t evaluate field Locale: 로컬과 배포 환경의 버전 차이를 확인하고 해결한 사례다.
- Cloudflare Pages 루트 도메인과 외부 DNS: 루트 도메인과 서브도메인의 연결 조건을 구분한다.
Git·오픈소스·웹#
소스 코드를 공개하는 것, 재사용을 허락하는 것, 비밀정보를 공개하는 것은 서로 다른 문제다. 저장소 공개 전에는 라이선스와 비밀정보를 각각 확인하고, 이미 토큰이 노출됐다면 토큰 대응 글부터 읽는다.
- GitHub Public 저장소와 LICENSE의 차이: fork와 글·코드의 재사용 권한을 구분한다.
- MIT·GPL·Apache 라이선스 비교: 상용 이용과 배포 시 고지·소스 제공 조건을 비교한다.
- GitHub에 토큰을 올렸을 때 대응 순서: 토큰 폐기·교체, 영향 확인, 파일·기록 정리 순서로 대응한다.
- 웹사이트 로고의 SVG·PNG 비교: 표시 크기와 해상도별 예시를 보고 로고 파일 형식을 선택한다.