99클럽 22일차 TIL: KISS, YAGNI, DRY
2024. 4. 25. 14:45ㆍ개발 공부
728x90
반응형
#1. 오늘의 학습 키워드
소프트웨어 개발 3대원칙 KISS, YAGNI, DRY에 대해
- 저번 포스트에서 객체지향 설계 5대 원칙인 SOLID 원칙을 알아보았다.
- https://second-brain.tistory.com/38
- 이번엔 추가적으로 전체를 아우르는 소프트웨어 개발 3대 원칙에 대해 알아보자
#2. 공부한 내용
1. KISS
- Keep It Simple Stupid
- Keep It Short and Simple
- Keep It Small and Simple
- 위 phrase 들의 약어다.
- 즉 소프트웨어 설계 시 최대한 간단하고 짧게 구현하라는 뜻이다.
- 소스 코드가 될 수도 있고, 설계 구조가 될 수도 있다.
- 요건만 만족한다면, 굳이 불필요하게 복잡하게 설계를 할 필요가 없다.
- 복잡할 수록 생산성은 낮아지고, 유지보수만 힘들뿐.
2. YAGNI
- You Ain’t Gonna Need It
- 의 첫 글자를 딴 약어다.
- “너 그거 앞으로 안 쓸 거야” 라는 의미다.
- 즉 필요한 작업만 하라는 뜻
- 나중에 필요할 거라고 예상하며 작업하지 말고.
- 이런 식으로 작업하게 되면, 코드가 불필요하게 많아져서, 추후 예상했던 요건이 아닌, 다른 요건이 들어왔을 때 오히려 고쳐야할 부분만 많아질 수 있다.
- 익스트림 프로그래밍(XP) 의 원칙이다.
- 비즈니스 상 요구가 변동성이 심할 경우 사용되는 개발 방법론.
- 수시로 발생되는 고객의 요구사항에 유연하게 대응하기 위해, 고객의 피드백과 개발 상 반영의 반복과정의 텀을 짧게하고, 횟수를 늘려서, 개발 생산성을 극대화함
- 5가지 핵심 가치
- 의사소통
- 단순성
- 용기
- 피드백
- 존중
3. DRY
- Don't Repeat Yourself
- 의 첫 글자를 딴 약어다.
- 코드의 반복 뿐만 아니라 모든 형태의 정보 중복을 지양하라는 원리
- 우선 소스코드의 반복은 해당 코드에서의 수정이 이뤄져야할 경우, 모든 반복된 부분에서의 수정이 필요하다.
- 개발 유지보수 성 하락
- 또한 가져다 써야할 메서드의 반복이 있을 때면, 구현 시 어느 소스코드가 최신화가 된 부분인 지 파악하는 데에 시간이 소모되며, 혼란이 올 수 있다.
- 개발 생산성 하락
- 데이터로 확장하여 얘기하면, 데이터의 중복은 데이터 무결성을 침해한다.
- 참조:
#3. 오늘의 회고
- 짧은 정리:
- KISS
- 코드 짧게 써라
- YAGNI
- 필요한 코드만 써라
- DRY
- 중복하지 마라
- KISS
- 결국 SOLID 도 마찬가지지만, 위 3가지 원칙 또한 가리키는 곳이 같다.
- 코드의 가독성
- 코드의 유지보수성
- 개발 생산성
- 스파게티 코드를 가는 소프트웨어 개발을 막아주고, 최대한 쉽고, 간결하게, 이해하기 편하게 코드를 짜는 데 집중해주기 위한 원칙들.
- 굉장히 단순한 얘기를 담고 있는 원칙들인 것 같지만, 고객 요구사항이 점점 많아지고 복잡해지면서, 모듈이 추가되고, 코드가 방대해질 수록 간과하게 되는 부분들인 것 같다.
- 항상 새겨두자.
728x90
반응형
'개발 공부' 카테고리의 다른 글
99클럽 24일차 TIL: 아키텍처 패턴 - 모놀리식 (4) | 2024.04.27 |
---|---|
99클럽 23일차 TIL: Thread (Java, Spring) (0) | 2024.04.26 |
99클럽 21일차 TIL: Validation Group (2) | 2024.04.24 |
99클럽 20일차 TIL: SOLID (0) | 2024.04.23 |
99클럽 19일차 TIL: WebSocket (0) | 2024.04.22 |