[Software Engineering] 소프트웨어 개발 3대 원칙

1 분 소요

소프트웨어 공학 관련 정보 : 소프트웨어 개발 3대 원칙 - KISS, YAGNI, DRY

소프트웨어 개발 3대 원칙

: 더 좋은 품질의 소스코드를 작성하기 위해 따르면 좋은 대표적인 3가지 원칙에 대해 알아보자.

KISS

KISS = Keep It Simple, Stupid !
단순하게 하라

소프트웨어 디자인을 간단하고 단순하게 하는 것을 말한다.

“할머니에게 설명할 수 없다면 당신은 제대로 이해한 게 아닙니다.” - 알버트 아인슈타인

큰 프로젝트를 설계함에 있어서 단순하게 디자인 하지 못하고 복잡하게 구현한다는 것은 해당 프로젝트에 대해 제대로 이해하지 못했다는 증거이다. 프로젝트 진행 전 최대한 기반 배경과 목적을 이해하고 어떻게 구현을 단순화할 수 있을지 파악하기 위해 노력해야한다.

소프트웨어를 설계하는 작업이나 코딩하는 행위에 있어 ‘불필요하게’ 장황하고 복잡해지는 것을 경계하자.

단순할수록 이해하기 쉽고, 이해하기 쉬울수록 버그가 발생할 가능성을 줄일 수 있다.

YAGNI

YAGNI = You Ain’t Gonna Need It
필요한 작업만 해라

개발하다 보면 현재 사용하지 않지만 확장성을 고려해서 미리 작업해 놓는 것들에 대해 하지 말라는 원칙이다.

미래를 위해 작성해놓은 코드로 인해 현재의 코드가 복잡해져 분석하기 어려워지며, 버그가 발생할 확률을 높힌다. 또한, 설계나 환경의 변화로인해 변경해야 하는 코드의 양도 늘어나게 된다.

당장 필요한 작업에만 집중하고, 쓸데없는 작업은 하지 말자.

DRY

DRY = Do not Repeat Yourself
반복하지 마라

소스 코드에서 동일한 코드가 반복되는 것은 잠재적 버그의 위협을 증가시킨다. 반복 코드가 변경되어야 하는 경우, 모든 코드에서 반복되는 코드를 찾아 수정해야 한다. 이는 실수를 유발하여 버그로 이어질 수 있다.

프로젝트를 진행하다 보면 팀별, 팀내에서 서로 공유되지 않은 수 많은 중복 코드가 발생할 수 있다. 이러한 코드들을 줄이기 위해 공통적으로 사용되는 기능에 대해 컴포넌트로 추출하거나, 동일 또는 유사한 기능에 대해 Copy & Paste 하여 개발하는 습관을 줄이도록 하자.

DRY를 위반하는 행위를 WET 이라고도 부른다.

- WET
We Enjoy Typing, Write Everything Twice


고찰

대표적인 3대 개발원칙에 대해 알아보았는데, 평소 지키지 못했던 것들이 많이 생각났다. 특히 YAGNI 원칙을 잘 못지키고 있는것 같다. 그러면서 동시에 KISS 원칙도 자연스럽게 영향을 받게 된듯하다… 앞으로 개발하는데 있어 위 3개의 원칙을 항상 생각하며, 본인의 개인적인 개발원칙인 ‘10년 뒤에도 봐도 유지보수 가능하게’를 지키기 위해 노력해야겠다.


참고

댓글남기기