본문 바로가기

DEV

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

 

1. DRY

DRY는 Don’t Repeat Yourself의 줄임말로 같은 기능이 반복되는 코드를 작성하지 말라는 뜻입니다.

 

2. YAGNI

YAGNI는 YouAin't Gonna Need It 의 줄임말로 불필요하게 확장을 고려한 개발을 하지 말라는 이야기이다.
어떻게 보면 solid법칙에서의 개발 폐쇄 원칙과 반대가 되는 의견으로 생각 될수 있는 여지가 있지만,
무조건적으로 확장을 하지 말라는 이야기가 아닌,
"미래의 이 기능이 커질거야", 또는 "이런 기능이 생길수도 있겠지?", "이 기능이 지금은 없어졌지만 다시 사용될수 있겠지?"
등의 이유로 불필요하게 확장에 치중한 코드가 생기거나 지금당장 필요하지 않은 로직을 만들지 말자는 원칙입니다.

 

3. KISS

KISS는 앞서 이름에서부터 보이듯이 심플을 엄청 강조하고있습니다.

간단한 코드가 가독성도 좋고, 버그를 유발하는것도 줄어든다는 이야기인데, 예를 들자면

이 예시 코드는 isAdd 라는 값을 가지고 if문으로 덧셈과 뺄셈이 분기됩니다.

 

물론 이 코드는 매우 간단한 코드이기에 버그를 일으키기 쉽지않겠지만,
우측에 보이는 것처럼 두개로 나눠 놓은것이 가독성 측면에서 좀 더 좋은 코드가 되고 각각 한개의 기능을 수행하는 코드가 되었습니다.

 

이는 솔리드 법칙의 단일 책임 원칙과도 이어질수 있는데요 한개의 class 에서는 한개의 기능만 책임진다는 것처럼

이 코드도 한개의 함수에서 한개의 기능만 수행하는 코드로 가독성을 챙기고 버그를 발생시키지 않는 안정성을 갖출수 있습니다.

또한 솔리드 원칙 중 네번째 원칙인 인터페이스 분리 원칙에도 적용이 될수 있습니다.

한개의 인터페이스가 여러가지의 범용적으로 사용되는 과정에서 의도치않은 버그가 생길수도 있고

코드를 봤을때도 가독성과 명시적인 부분이 부족할수 있는데 각각의 하나의 인터페이스로 분리하여

버그 방지와 가독성을 챙길수도 있습니다.

반응형

'DEV' 카테고리의 다른 글

[DEV] SOLID원칙이란?  (0) 2023.03.02