Singleton

Singleton 은 가장 단순한 패턴이지만 안티패턴 논란의 대표 사례다. 단일 인스턴스 보장과 전역 접근을 한 패턴에 묶은 결정이 강한 결합과 테스트 어려움의 원인. DI 가 두 의도를 분리한 일반 대안이다.

2024년 1월 28일 · 약 4분 읽기

Dependency Injection — DIP, IoC, DI의 위계

DIP(원칙), IoC(패턴), DI(기법)는 서로 다른 추상 수준에 있는 개념이다. 위계를 분명히 봐야 프레임워크 기능과 설계 원리가 섞이지 않는다.

2024년 1월 25일 · 약 4분 읽기

캐시 갱신 최적화 회고

변경이 드문 캠페인 설정 데이터를 전량 갱신하던 캐시 구조를 개선하여 네트워크 비용을 줄이고 인스턴스를 스케일 다운한 과정을 기록한다.

2024년 1월 15일 · 약 2분 읽기

낙관적 락과 비관적 락

트랜잭션은 원자성, 락은 직렬성을 담당한다 — 서로 대체재가 아니다. 격리 수준의 기본 읽기로는 못 막는 Lost Update 를 비관적 락과 낙관적 락이 어떻게 메우는가, 그리고 선택 기준.

2023년 10월 1일 · 약 4분 읽기

격리 수준이 실제로 막는 것

트랜잭션 격리 수준은 ‘어떤 이상 현상까지 허용할 것인가’ 의 정책 선택이다. ANSI 4단계가 각각 막는 anomaly, 그리고 표준과 다르게 동작하는 InnoDB 의 MVCC 와 Repeatable Read.

2023년 9월 15일 · 약 5분 읽기

RDB Transaction 의 ACID 가 실제로 보장하는 것

RDB 트랜잭션의 ACID 4개 속성이 실제로 무엇을 보장하는가. A/C/D 는 비교적 명확한 보장이지만 I 만 ‘단계’ 가 존재하는 이유 — 정확성과 동시성의 트레이드오프 도입.

2023년 9월 1일 · 약 4분 읽기

광고 예산 페이싱의 2계층 제어 구조 회고

고정 규칙으로 동작하던 광고 예산 페이싱을, 캠페인별 학습과 실시간 보정의 2계층 제어 구조로 옮긴 회고. 캠페인 특성의 다양성을 어떻게 자동 흡수하게 만들었는가.

2023년 8월 21일 · 약 3분 읽기

rust-server

Rust Book Chapter 20의 멀티스레드 HTTP 서버를 따라 구현하며 소유권과 동시성이 타입 레벨에서 강제되는 것을 체감한 기록.

2022년 3월 13일 · 약 3분 읽기

TCP와 UDP

백엔드 개발에서 자주 마주치는 두 전송 프로토콜, TCP와 UDP의 동작 원리를 정리한다. 연결 수립, 신뢰성 보장, 흐름/혼잡 제어 메커니즘과 선택 기준.

2022년 3월 1일 · 약 8분 읽기