더 좋은 코드를 작성 할 수 있게 도와줄 원칙.
KISS, YAGNI, DRY에 대해 가볍게 알아봅니다.
- KISS
Keep it simple, stupid.
소프트웨어를 설계할 때는 언제나 단순하게 해야 한다는 원칙입니다. 큰 프로젝트를 만들기 이전에 최대한 단순하게 설계를 해보세요.
그리고 그 설계를 쉽게 이해할 수 있는 그림으로 먼저 그려볼 수 있어야 합니다. 여기서 주의할 점은, 만약 계획 도시를 처음 설계하기 전에 건물을 먼저 두고 도로를 설계한다면 건물의 크기가 각기 다르게 지어지면서 격자 무늬로 반듯하지 않고 꼬불꼬불한 도로가 나올수 밖에 없습니다. 여러분이 소프트웨어를 개발하는것이란 이것과 아주 유사하니 나중에 여러 디자인 패턴과 개발 지식을 배우게 되면 KISS를 꼭 지킬수 있도록 노력해보세요 😉
- YAGNI
You Ain’t Gonna Need it
“정말 필요하기 전까지는 그 기능을 만들지 마라” 라는 원칙입니다. 여러분도 이런 경험이 언젠가 있었을거예요.
마트에 갔는데 좋아보이는 물건이 있고, 언젠가 쓸것 같으니 일단 사봅니다.
그리고 그 물건은 한번도 사용되지 않고 이제는 어디에 있는지도 모르는 일 말이죠. 이렇게 사용하지 않는 기능이나 사용하지 않는 데이터가 많아질수록 여러분의 소프트웨어는 복잡도가 높아지며, 점차 유지보수가 어려워집니다! 이 YAGNI 원칙을 잘 지키기 위해서는 최소한 코드를 짤 때 만큼은 미니멀리스트가 되어야 합니다 😄 (쉽지 않겠지만 지킬수 있도록 의지를...!) 나중에 필요할 것 같으니 지금 당장 필요하지 않은 함수를 만들고, 인자를 받고, 필요하지 않은 데이터를 데이터베이스에 넣다던가...
위와 같은 일이 생기지 않도록 나중에 정말 필요해 질 때 사용해볼 수 있도록 노력해보세요!
- DRY
Don’t Repeat Yourself
똑같은 일을 두번 하지 않는다는 원칙입니다. 중복되는 기능, 함수, 코드 등이 있다면 공통적으로 사용할 수 있도록 분리하여 커다란 어플리케이션을 여러 조각으로 나누어 관리할 수 있도록 해야 합니다.
만약 이 원칙을 지키지 않는다면 중복되는 기능을 바꿔야 하는 일이 생기면 찾아서 바꾸느라 아주 고생이겠죠? 😥
그런데 대부분의 버그는 이런식으로 파편화 된 코드를 바꾸면서 예상치 못한 Side effect에 의해 발생합니다!
이 원칙을 잘 지킬수록 유지보수 비용이 줄어드니 언제나 머릿속에 넣어두세요!