Filter by topic
소프트웨어 설계에서 반복적으로 발생하는 21가지 실패 패턴을 Decision Quality 프레임워크로 체계적으로 분석합니다. 평가축과 지배축 개념을 바탕으로 AI 시대에 더 나은 설계 판단을 내리는 방법을 설명합니다.
State/Control이 만드는 복잡성의 원인부터 Deep Module, Stratified Design의 기원과 계보, 분산 시스템의 Essential Complexity, 분류값을 다형성으로 바꾸는 법까지 이론과 실천을 정리합니다.
추상화로 골라내고 모델로 정리한 다음의 질문은 모델의 크기입니다. 언어가 유효한 경계인 바운디드 컨텍스트와 규칙이 지켜지는 경계인 애그리거트, 컨텍스트 맵, 분해의 판단 기준과 잘못 그은 경계의 신호를 주문 도메인으로 설명합니다.
추상화로 골라낸 것을 업무의 언어로 정리한 결과물이 모델이고, 모델을 코드와 스키마로 옮겨 적는 일이 표현입니다. 모델의 세 수준과 발견 도구, 빈혈증과 Always-Valid, 엔티티부터 바운디드 컨텍스트까지의 구성 요소, 여섯 가지 표현 방식을 설명합니다.
추상화는 목적에 맞게 현실에서 필요한 것만 골라내는 일이고, 메타는 다루는 대상이 데이터에 대한 기술로 바뀌는 일입니다. 노선도와 역 타입, 인터페이스 예시로 두 축의 차이와 진짜 추상을 가려내는 기준을 설명합니다.
DDD에서 Value Object의 불변성, 값 동등성, Smart Constructor, Anti-Corruption Layer 를 Java 예시로 설명하고, Parse don't validate와 Make Illegal States Unrepresentable 원칙을 소개합니다.
브라우저에 URL을 입력했을 때 DNS 조회부터 CDN, TLS, 로드밸런서, 웹서버, 캐시, DB까지 각 단계에서 일어나는 일과 스타트업 개발자가 알아야 할 실무 지식을 정리합니다.
Function color problem(함수 전염성 문제)이 무엇인지 설명하고, C#·Kotlin·Rust 등 컬러 문제가 있는 언어와 Go·Java·Ruby처럼 Goroutine·Fiber·Coroutine으로 이를 해결한 언어들의 접근 방식을 정리합니다.
객체지향 프로그래밍(OOP) 환경에서 NULL 값의 사용은 설계적 결함이며, 가능한 한 피해야 하고, 코드의 가독성, 안정성, 유지보수성 모두를 해친다고 보고, 대안으로 Null Object 패턴 혹은 예외(Exception) 던지기 방식을 제시합니다.
Java의 String 클래스가 불변(Immutable)이고 final로 설계된 이유를 String Pool, 보안, 클래스 로딩, 멀티스레딩, 성능 최적화의 다섯 가지 관점에서 설명합니다.
Sandi Metz가 Ruby Rogues 팟 캐스트에서 소개한 루비 개발자들을 위한 룰(5가지)에 대해 재밌는 내용을 소개.
Stack Overflow 커뮤니티가 만들어낸 프로그래밍 은어 30선을 정리합니다. Yoda Conditions, Heisenbug, Jenga Code 등 개발자라면 한번쯤 겪어봤을 상황을 재치있게 표현한 용어들을 소개합니다.
변수와 메소드 이름을 일관되고 명확하게 짓는 방법을 정리한 15가지 네이밍 원칙입니다. 좋은 네이밍 습관을 익히면 코드 리뷰와 협업 속도가 함께 빨라집니다.
나이가 들어서도 여전히 프로그래밍을 하는 이유는 단순히 코드 작성이 좋아서라기보다는 아이디어를 실제로 구현하고, 그 과정을 통해 더 깊이 이해하며, 다른 사람들과 수평적 관계로 일하는 것이 본질적 동기라고 말합니다.
Checked/Unchecked Exception 선택 기준, 예외 캡슐화, 예외 문서화 등 Java 예외 처리에서 지켜야 할 7가지 원칙과 실용적인 모범 사례를 코드 예시와 함께 정리합니다.
README가 뭐에 쓰는 물건이꼬.
Jack W. Reeves의 1992년 아티클을 번역한 글로, 소스 코드가 소프트웨어 설계 문서이며 컴파일·링크가 제조 행위임을 주장하고, 코딩과 테스트가 설계 활동의 일부임을 설명합니다.