홈시리즈

© 2026 Ki Chang. All rights reserved.

본 블로그의 콘텐츠는 CC BY-NC-SA 4.0 라이선스를 따릅니다.

☕후원하기소개JSON Formatter러닝 대기질개인정보처리방침이용약관

© 2026 Ki Chang. All rights reserved.

콘텐츠: CC BY-NC-SA 4.0

☕후원하기
소개|JSON Formatter|러닝 대기질|개인정보처리방침|이용약관

데이터는 디스크에 어떻게 저장되는가 — InnoDB 스토리지 엔진의 내부 구조 (1편)

MySQL에서 INSERT를 실행하면 데이터는 어디에, 어떤 형태로 저장되는가? InnoDB의 페이지 구조, Buffer Pool, 그리고 WAL(Redo/Undo Log)까지 — 디스크 I/O를 최소화하면서 데이터 무결성을 보장하는 구조를 추적합니다.

2026. 3. 28.

AI 응답을 90초 동안 기다리게 할 수는 없으니까 — SSE로 전환한 이야기

90초 동안 로딩만 보여주던 AI 분석 플로우를 SSE로 전환하여 단계별 진행 피드백을 제공한 과정. HTTP 타임아웃 체인과 heartbeat 패턴을 정리했습니다.

2026. 3. 27.

개인 사업자 등록증 없이 결제 모듈을 달고 싶어서, Polar를 연결해봤습니다.

개인 사업자 등록 없이 웹서비스에 결제를 붙이고 싶었습니다. 사업자 주소지, PG 심사, 비상주 사무실 비용 등 고민하던 중 Polar를 알게 되어 블로그에 후원 버튼을 연결한 과정을 정리합니다.

2026. 3. 26.

오랜만에 글의 시작을 AI의 도움없이 진행해봅니다.

AI에게 글쓰기를 맡긴 3개월, 편했지만 독자의 문제를 해결해주는 글은 아니었다. 블로그의 정체성을 돌아보고, 개발자로서 앞으로의 방향을 정리합니다.

2026. 3. 25.

MySQL 커넥션 풀, 설정했다가 뺀 이유 — TCP Keep-Alive와 네트워크 토폴로지

MySQL 커넥션 풀에 TCP Keep-Alive를 설정했다가 제거한 과정을 통해, 네트워크 토폴로지에 따라 설정이 달라져야 하는 이유를 정리했습니다.

2026. 3. 24.

NestJS는 Express 위에서 어떻게 동작하는가 — 플랫폼 추상화의 설계 (7편)

NestJS는 Express 위에서 동작한다고 하지만, 정확히 어떻게 감싸고 있는 걸까요? AbstractHttpAdapter 소스코드를 추적하며 Express와 Fastify를 교체 가능하게 만드는 어댑터 패턴의 실체를 확인합니다. NestJS Deep Dive 시리즈 마지막 편.

2026. 3. 23.

Custom Decorator 만들기 — createParamDecorator의 내부 (6편)

NestJS에서 @CurrentUser(), @Roles() 같은 커스텀 데코레이터가 내부에서 어떻게 동작하는지 소스코드로 추적합니다. createParamDecorator가 메타데이터를 저장하고, Pipe가 값을 추출하고, SetMetadata + Reflector + Guard가 연결되는 전체 흐름을 확인합니다.

2026. 3. 22.

요청이 컨트롤러에 도달하기까지 — Guard, Interceptor, Pipe, Filter (5편)

NestJS에서 HTTP 요청 하나가 컨트롤러 메서드에 도달하기까지 거치는 6단계를 소스코드로 추적합니다. Middleware, Guard, Interceptor, Pipe, ExceptionFilter — 각 레이어가 왜 존재하고 어떤 순서로 실행되는지 RouterExecutionContext 소스를 통해 확인합니다.

2026. 3. 21.

@Module()은 어떻게 앱을 조립하는가 — NestJS 소스코드 추적 (4편)

NestJS 앱은 하나의 거대한 provider 목록이 아니라, @Module()로 나뉜 여러 모듈의 조합입니다. @Module() 데코레이터가 메타데이터를 저장하고, DependenciesScanner가 모듈 그래프를 구축하는 전 과정을 소스코드에서 추적합니다.

2026. 3. 20.
<이전12345...14>다음