99클럽 22일차 TIL: KISS, YAGNI, DRY

2024. 4. 25. 14:4599클럽/TIL

728x90
반응형

#1. 오늘의 학습 키워드

소프트웨어 개발 3대원칙 KISS, YAGNI, DRY에 대해

  • 저번 포스트에서 객체지향 설계 5대 원칙인 SOLID 원칙을 알아보았다.

#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
      • 중복하지 마라
  • 결국 SOLID 도 마찬가지지만, 위 3가지 원칙 또한 가리키는 곳이 같다.
    • 코드의 가독성
    • 코드의 유지보수성
    • 개발 생산성
  • 스파게티 코드를 가는 소프트웨어 개발을 막아주고, 최대한 쉽고, 간결하게, 이해하기 편하게 코드를 짜는 데 집중해주기 위한 원칙들.
    • 굉장히 단순한 얘기를 담고 있는 원칙들인 것 같지만, 고객 요구사항이 점점 많아지고 복잡해지면서, 모듈이 추가되고, 코드가 방대해질 수록 간과하게 되는 부분들인 것 같다.
    • 항상 새겨두자.
728x90
반응형

'99클럽 > TIL' 카테고리의 다른 글

99클럽 21일차 TIL: Validation Group  (0) 2024.04.24
99클럽 20일차 TIL: SOLID  (0) 2024.04.23
99클럽 19일차 TIL: WebSocket  (0) 2024.04.22
99클럽 18일차 TIL: gRPC  (0) 2024.04.21
99클럽 17일차 TIL: Spring Webflux: Mono, Flux  (2) 2024.04.20