Go Concurrency 모델
Go의 동시성 모델은 CSP를 기반으로 Goroutine과 Channel을 핵심 도구로 제공한다. 각 도구의 동작 원리와 선택 기준을 정리한다.
Go의 동시성 모델은 CSP를 기반으로 Goroutine과 Channel을 핵심 도구로 제공한다. 각 도구의 동작 원리와 선택 기준을 정리한다.
TLS는 신뢰할 수 없는 네트워크 위에서 기밀성·무결성·인증을 확보해 안전한 채널을 만든다. 대칭/비대칭 하이브리드 암호화, TLS 1.2 핸드셰이크, 인증서와 PKI 신뢰 모델, 그리고 TLS 1.3의 개선을 정리한다.
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의 특성을 정리한다.
Observer는 상태 변화를 구독자에게 통지하는 일대다 관계로 결합을 끊는다. Subject는 누가 듣는지 모른 채 통지만 한다. EventEmitter, RxJS, 이벤트 기반 아키텍처가 모두 여기서 확장된다. 브로커를 매개하는 pub/sub와는 구분된다.
Container의 개념과 VM과의 차이를 정리하고, Docker의 아키텍처, Dockerfile, Docker Compose의 기본 사용법을 설명한다.
코드를 기술 계층별로 나누는 수평 분할과, 기능/도메인별로 나누는 수직 분할의 차이를 정리한다. 각각의 장단점과 선택 기준.