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

2023. 1. 26. 15:25·개발정보
반응형

개발을 하다보면 많은 상황이 발생한다. 

이때 품질 높은 코드를 작성하기 위한 원칙들이 있는데, 대표적으로 KISS, YAGNI, DRY가 있다. 

 

KISS

Keep It Simple Stupid 의 첫 글자를 따서 만든 약어이다. 

소프트웨어를 설계하는 작업이나 코딩을 할때 되도록이면 간단하고 단순하게 만드는 것이 좋다는 원칙이다. 

 

코드나 설계 내용이 불필요하게 장황하거나 복잡해지는 것을 주의하라는 원칙이다. 

 

당연하게 이들은 단순할수록 이해하기 쉽고, 이해하기 쉬우면 유지보수 등이 쉬워진다. 

즉, 생산성 향상으로 연결된다. 

 

YAGNI 

You Ain't Gonna Need It 의 첫 글자를 따서 만든 약어이다. 

개발하다보면 당장 필요하지는 않지만 확장성을 위해서 미리 작업하는 경우가 있다. 

이런 작업을 하지 말라는 뜻이다. 

 

하지 말라는 이유가 미래에 필요할 수 있는 코드를 미리 작성하면 코드가 불필요하게 장황해진다. 

그리고 수정 사항이 발생했을 때 수정해야 하는 코드가 늘어나게 된다. 

 

이는 확장성을 고려하지 말라는 뜻이 아닌 필요한 경우에 작업하고

현재는 현재 해야할 개발에 집중하라는 뜻이다. 

 

DRY 

Do not Repeat Yourself 의 첫 글자를 따서 만든 약어이다. 

개발을 할 때 동일한 소스코드가 반복되는 것을 막으라는 뜻이다. 

 

동일한 소스코드가 반복되는 경우 추후 수정사항이 생기면 반복되는 모든 코드를 찾아서 수정 해야 하기 때문에 

잠재적인 버그의 위협을 증가시킨다. 

 

이것은 프로젝트의 규모가 커질수록 반복되는 코드로 인한 유지 보수 오버헤드가 커지게 된다. 

때문에 작은 프로젝트부터 코드를 반복해서 사용하지 않는 습관이 중요하다.  

반응형
저작자표시 비영리 변경금지

'개발정보' 카테고리의 다른 글

GitHub Action 알아보기  (2) 2024.08.28
VSCode Git 계정 변경  (0) 2023.04.13
RSS 피드란?  (2) 2023.01.21
CSS Scroll Smooth  (0) 2022.12.14
SEO  (0) 2022.12.09
'개발정보' 카테고리의 다른 글
  • GitHub Action 알아보기
  • VSCode Git 계정 변경
  • RSS 피드란?
  • CSS Scroll Smooth
잉여개발자
잉여개발자
풀스택 개발자를 목표로 잉여롭게 개발 공부도 하면서 다양한 취미 생활도 즐기고 있는 잉여 개발자입니다.
  • 잉여개발자
    잉여로운 개발일지
    잉여개발자
    • 분류 전체보기 (789)
      • 개발정보 (36)
      • 개발환경 (7)
      • 개발생활 (19)
      • React (141)
        • 이론 (23)
        • 기능 (12)
        • 실험실 (88)
        • 버그 (6)
        • 패스트캠퍼스 (9)
        • Npm (3)
      • React Native (28)
        • 공통 (6)
        • TypeScript (3)
        • JavaScript (18)
        • 버그 (1)
      • Next.js (30)
        • 이론 (13)
        • 실험실 (13)
        • 버그 (3)
      • Web (35)
      • 알고리즘 (202)
        • 풀이 힌트 (39)
      • JavaScript (47)
      • TypeScript (29)
        • 기초 (27)
        • 실험실 (2)
      • Node.js (13)
        • 이론 (0)
        • 기능 (3)
        • 실험실 (9)
        • 버그 (1)
      • 도커 (4)
      • CCNA (22)
        • 이론 (4)
        • 문제 (18)
      • 취미생활 (167)
        • 잉여로운 칵테일 (2)
        • 잉여의 식물키우기 (130)
        • 잉여로운 여행기 (11)
        • 잉여의 제2외국어 (21)
        • 잉여로운 책장 (2)
      • Java (1)
        • Java의 정석 (1)
      • 꿀팁 공유 (3)
  • 태그

    react
    redux
    바질 키우기
    javascript
    바질
    다이소
    ChatGPT
    타입스크립트
    자바스크립트
    영어독학
    Node.js
    리얼클래스
    next.js
    CCNA
    리얼학습일기
    typescript
    ReactNative
    리액트
    타일러영어
    Babel
    영어회화
    네트워크
    webpack
    네이버 부스트캠프
    Docker
    식물
    프로그래머스
    CSS
    덤프
    알고리즘
  • hELLO· Designed By정상우.v4.10.1
잉여개발자
소프트웨어 개발 3대 원칙 - KISS, YAGNI, DRY
상단으로

티스토리툴바