소프트웨어 공학의 법칙들
·2026.04.22 09:47
핵심 내용
팀·아키텍처·품질·설계를 관통하는 56개 소프트웨어 원칙 모음.
자세히 보기
소프트웨어 시스템, 팀, 의사결정에 영향을 주는 56가지 원칙과 패턴을 한곳에 정리한다.
팀(Teams)
- Conway의 법칙: 조직의 커뮤니케이션 구조가 시스템 구조에 반영된다.
- Brooks의 법칙: 늦은 프로젝트에 인력을 더 넣으면 오히려 더 늦어진다.
- Dunbar의 수, Ringelmann 효과, Price의 법칙 등은 팀 규모와 생산성의 한계를 설명한다.
- Bus Factor, Peter 원칙, Dilbert 원칙은 지식 집중과 승진/관리의 문제를 보여준다.
계획(Planning)
- Premature Optimization, Parkinson's Law, 90-90 Rule, Hofstadter's Law가 일정과 추정의 함정을 다룬다.
- Goodhart's Law는 지표가 목표가 되면 지표가 망가진다고 경고한다.
- Gilb's Law는 완벽하지 않아도 측정은 하지 않는 것보다 낫다고 말한다.
아키텍처(Architecture)
- Hyrum's Law, Gall's Law, Leaky Abstractions는 현실 시스템의 제약과 추상화의 한계를 짚는다.
- Tesler's Law는 복잡성을 없애는 것이 아니라 어디로 옮길지의 문제라고 본다.
- CAP 정리, Fallacies of Distributed Computing, Second-System Effect는 분산 시스템과 확장 설계의 핵심 함정을 정리한다.
품질(Quality)
- Boy Scout Rule, Murphy's Law, Postel's Law, Broken Windows Theory는 지속적 개선과 방어적 설계의 필요성을 강조한다.
- Technical Debt, Linus's Law, Kernighan's Law, Testing Pyramid, Pesticide Paradox는 코드 품질과 테스트 전략을 다룬다.
- Lehman의 법칙, Sturgeon's Law는 소프트웨어 진화와 품질 편차를 설명한다.
스케일(Scale)
- Amdahl's Law와 Gustafson's Law는 병렬화의 한계와 가능성을 함께 보여준다.
- Metcalfe's Law는 네트워크 효과가 사용자 수의 제곱으로 커질 수 있음을 설명한다.
설계(Design)
- DRY, KISS, SOLID는 중복 제거, 단순성, 책임 분리를 위한 기본 원칙이다.
- YAGNI, Composition over Inheritance, Demeter's Law 같은 패턴도 함께 묶어 실무 설계 감각을 정리한다.
- Separation of Concerns, Law of Demeter는 결합도를 낮추고 변경 비용을 줄이는 방향을 제시한다.
전체적으로 팀 운영부터 분산 시스템, 테스트, 리팩터링, 설계 철학까지 소프트웨어 엔지니어링의 기본 법칙들을 빠르게 훑을 수 있는 참고 목록이다.
이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.