소프트웨어 개발의 3가지 핵심 원칙 (Nettuts+)
Source
Evernote/Technote scraps/3 Key Software Principles You Must Understand Nettuts+.md
Summary
이 문서는 소프트웨어 개발에서 변화하는 기술보다 근본적인 원칙이 중요함을 강조하며, 복잡성 관리를 위한 3가지 핵심 원칙을 소개합니다. 현재 제공된 원문은 첫 번째 원칙인 ‘DRY(Don’t Repeat Yourself)‘에 대한 상세 설명으로 구성되어 있습니다. DRY 원칙은 시스템 내의 모든 지식 조각이 단 하나의 명확하고 권위 있는 표현으로 존재해야 함을 의미하며, 이를 통해 모듈 아키텍처를 구축하고 복잡성을 관리할 수 있습니다.
Key Points
- 소프트웨어 개발에서 근본적인 아이디어 이해는 새로운 기술 습득보다 우선하며, 복잡성 관리의 핵심입니다.
- DRY(Don’t Repeat Yourself) 원칙: 시스템 내의 지식 조각은 단 하나의 표현으로만 존재해야 합니다.
- 복잡성 관리 전략: 시스템을 구성 요소(Component)와 하위 구성 요소(Subcomponent)로 분할하여 단일 책임 원칙에 도달합니다.
- 지식(Knowledge)과 표현(Representation)의 구분: 코드 스니펫은 ‘어떻게 달성하는지’에 대한 지식이며, 변수나 클래스 속성은 그 지식을 나타내는 표현입니다.
- 모듈 아키텍처: DRY 원칙은 로직을 표현으로 패키징하는 철학이며, 이를 통해 하향식 또는 상향식의 표현 계층 구조를 형성합니다.