모든 포스트
REST API가 느릴 때: 병목을 찾는 순서
API 응답이 느릴 때 감이 아니라 순서로 병목을 찾는 방법을 정리합니다. 어디가 느린지 구간부터 쪼개는 계측, 데이터베이스, 직렬화, 외부 호출, N+1이라는 단골 병목 4곳, 캐싱과 페이지네이션 같은 처방의 우선순위, 그리고 p50이 아니라 p99를 봐야 하는 이유까지 다룹니다.
GitHub Foundations #10 보너스 — 풀스케일 객관식 모의고사 (50문항 + 해설)
GitHub Foundations 시리즈의 마지막 글입니다. 7개 도메인 분포에 맞춰 50문항을 풀고 각 문항에서 정답과 해설을 확인합니다. 38문항(76%) 이상이면 합격권으로 보고 시험을 예약하시기 바랍니다.
Load Average의 정체: CPU 사용률과 다른 점
리눅스 지표 중 가장 자주 오독되는 Load Average를 정확히 읽는 법을 정리합니다. 실행 중+실행 대기+디스크 대기(D 상태)를 합친 숫자라는 정의, 코어 수로 나눠 읽는 기준, CPU 사용률과 어긋나는 네 가지 전형 사례, 1·5·15분 세 값의 추세 독법까지 다룹니다.
RI vs Savings Plans: AWS 약정 할인 선택 기준
예약 인스턴스와 Savings Plans를 가르는 실무 기준을 정리합니다. 인스턴스 속성 매칭과 시간당 금액 약정이라는 구조 차이, 최대 72%라는 같은 할인율에서 갈리는 유연성, Savings Plans가 커버하지 못하는 RDS 같은 서비스, 용량 예약이라는 별개 문제, 약정 규모를 청구서의 안정 하한선으로 잡는 방법까지 다룹니다.
Wails 실전 강좌 #10 마감과 완성도 — 설정·다크모드·데이터 백업
시리즈의 마지막 글입니다. 기능은 다 됐지만 앱을 다시 열고 싶게 만드는 마감 요소를 채웁니다. 설정을 저장하고 불러오는 구조, 시스템을 따라가는 다크모드, 창 상태 기억, 사용자 데이터를 잃지 않게 하는 백업·내보내기·가져오기, 그리고 열 편 전체를 관통한 원칙의 회고를 다룹니다.
EFS vs EBS vs S3: AWS 스토리지 선택 기준
AWS 스토리지 셋을 가르는 실무 기준을 정리합니다. 블록, 파일, 객체라는 접근 모델의 차이, GB당 $0.023에서 $0.30까지 벌어지는 단가와 프로비저닝·사용량이라는 과금 방식 차이, EFS의 처리량 요금 같은 숨은 비용, 공유가 필요 없는데 EFS를 쓰는 흔한 과잉 설계, 접근 패턴으로 가르는 판단 순서까지 다룹니다.
fork는 정말 메모리를 복사할까: copy-on-write의 실제 동작
fork가 프로세스 전체를 복사하는데도 빠른 이유인 copy-on-write를 페이지 테이블 수준에서 풀어냅니다. 쓰는 순간에만 복사되는 메커니즘, fork+exec 조합이 싼 이유, Redis 스냅숏과 프리포크 서버 같은 실전 사례, 오버커밋과 메모리 계산이 헷갈려지는 이유까지 다룹니다.
GitHub Foundations #9 Domain 7: GitHub 커뮤니티 + 시험 팁
오픈소스와 소스 공개의 구분, InnerSource, Sponsors·Marketplace 같은 커뮤니티 기능을 정리하고, 문제 유형별 접근과 자주 틀리는 패턴, 응시 환경 체크리스트까지 시험 준비를 마무리합니다.
Wails 실전 강좌 #9 자동 업데이트 구현 — 새 버전을 안전하게 전달
#6에서 전략만 이야기한 자동 업데이트를 실제로 구현합니다. 앱에 버전을 심고 GitHub Releases에서 최신 버전을 조회하는 법, 알림형 업데이트를 안전하게 만드는 구현, 완전 자동 교체가 왜 위험하고 무엇을 지켜야 하는지, 그리고 서명·CI와 어긋나지 않게 버전을 흘리는 흐름을 다룹니다.
SQS vs SNS vs EventBridge: 메시징 서비스 선택 기준
AWS 메시징 서비스 셋을 가르는 실무 기준을 정리합니다. 큐, pub/sub, 이벤트 버스라는 모델 차이, 보존과 재시도가 있는 곳과 없는 곳, 100만 건당 $0.40에서 $1.00까지 벌어지는 요금과 64KB 청크 과금, SNS 뒤에 SQS를 두는 팬아웃 같은 조합 패턴, EventBridge의 지연과 FIFO 처리량 한계까지 다룹니다.
Wails 실전 강좌 #8 테스트 전략 — 서비스와 저장소를 검증하기
#1에서 층을 나누며 약속했던 테스트를 실제로 작성합니다. Wails 없이 순수 Go로 서비스 로직을 검증하는 단위 테스트, 임시 SQLite로 저장소를 검증하는 통합 테스트, 테이블 주도 테스트로 경계 조건을 훑는 법, 그리고 이 테스트를 #6의 CI에 넣어 릴리스 전에 자동으로 돌리는 법을 다룹니다.