Go Concurrency 모델
Go의 동시성 모델은 CSP를 기반으로 Goroutine과 Channel을 핵심 도구로 제공한다. 각 도구의 동작 원리와 선택 기준을 정리한다.
Go의 동시성 모델은 CSP를 기반으로 Goroutine과 Channel을 핵심 도구로 제공한다. 각 도구의 동작 원리와 선택 기준을 정리한다.
Go의 동시성 패턴 세 가지(mutex, channel, lock-free)를 직접 구현하고 벤치마크하며 체화한 과정의 기록.
같은 NoSQL 우산 아래에서 MongoDB 와 Redis 가 서로 다른 역할로 자리잡은 이유. 데이터 모델·스토리지·스키마·확장·사용 사례를 기준으로 비교 정리.
실무에서 깊이 다루기 어려웠던 Kafka와 Hexagonal Architecture를 채팅 시스템 개인 프로젝트로 직접 설계하고 구현한 과정의 기록.
Spring MVC는 요청당 스레드를 할당한다. I/O 대기가 길어지면 스레드가 묶인다. WebFlux는 이벤트 루프 기반 논블로킹 모델로 이 문제를 해결한다. MVC와의 구조적 차이, Reactor 패턴, 선택 기준을 정리한다.
HTTP/1.1은 요청과 응답이 순차적이다. HTTP/2는 멀티플렉싱, 바이너리 프레이밍, 헤더 압축으로 이 구조를 바꿨다. 두 프로토콜의 차이와 HTTP/2 위에서 동작하는 gRPC의 특성을 정리한다.
Container의 개념과 VM과의 차이를 정리하고, Docker의 아키텍처, Dockerfile, Docker Compose의 기본 사용법을 설명한다.
코드를 기술 계층별로 나누는 수평 분할과, 기능/도메인별로 나누는 수직 분할의 차이를 정리한다. 각각의 장단점과 선택 기준.
레거시 광고 서버를 제거하면서 Nest.js 기반 fallback 서버를 새로 설계한 과정. 단일 API에 복잡한 비즈니스 로직이 집중된 구조에서 수평 계층 아키텍처를 선택한 배경과 결과.
Nest.js는 Node.js 생태계에서 DI 컨테이너와 Module 시스템을 프레임워크 수준에서 제공한다. IoC, DI, Module, Provider 등 핵심 설계 원칙을 정리한다.