SOLID Principles
OOP 설계의 5원칙. 변경에 강하고 테스트 가능한 코드를 만드는 지침. SOLID는 목적이 아닌 수단. 과도한 추상화도 위반이다. 인터페이스 1개에 구현체 1개라면 추상화 비용이 이득을 초과.
이 용어로 연결된 기록을 섹션별로 살펴봅니다.
OOP 설계의 5원칙. 변경에 강하고 테스트 가능한 코드를 만드는 지침. SOLID는 목적이 아닌 수단. 과도한 추상화도 위반이다. 인터페이스 1개에 구현체 1개라면 추상화 비용이 이득을 초과.
빠른 배포를 위해 더 나은 설계를 나중으로 미룬 결과 생기는 추가 작업 비용. Ward Cunningham이 금융 부채 비유로 도입. 신중한 의도적 부채만 전략적으로 수용 가능. 나머지는 최소화 대상.
"Attention Is All You Need"(2017)에서 제안된 아키텍처. RNN의 순차 처리를 Self-Attention으로 대체하여 병렬 학습과 장거리 의존성 포착을 동시에 달성. 입력 시퀀스의 각 토큰이 다른 모든 토큰과의 관련성을 계산: `√d_k`...
분산 시스템은 Consistency, Availability, Partition Tolerance 세 속성 중 **동시에 둘만** 보장할 수 있다는 정리(Brewer, 2000). 네트워크 분할은 필연적 → P는 포기 불가. **CP vs AP**가 실질적 선택:...
Command Query Responsibility Segregation: 데이터 쓰기(Command)와 읽기(Query) 모델을 물리적으로 분리하는 아키텍처 패턴. Write Model의 이벤트를 구독하여 Read Model을 동기화하는 비동기 프로세스. 결과적...
현재 상태(State)가 아니라 발생한 사건(Event)의 이력 자체를 불변 로그로 저장하는 데이터 관리 패턴. 전통 DB: `UPDATE accounts SET balance = 500` → 이전 값 유실 Event Sourcing: `[Deposited(300...
노드 추가/제거 시 재분배되는 키 수를 최소화하는 분산 해싱 기법. 기존 모듈러 해싱(key % N)은 N 변경 시 대부분의 키 재분배가 필요하다. 단일 노드를 링 위 여러 지점에 배치 → 부하 균등 분배 + 핫스팟 방지: 실제 구현: Cassandra, Amaz...