소프트웨어를 개발하면서 지켜야 할 3대 원칙을 알게 되어 간단하게 블로그에 포스팅하게 되었다.
KISS [Keep It Simple, Stupid]
(단순하게 만들자)
Keep It Small and Simple, Keep It Short and Simple으로도 쓰이며 구조와, 디자인을 가능한 단순하게 유지하라는 취지를 가지고 있다.
코드가 단순해져 복잡성을 줄이고, 이해하기 쉬운 코드를 작성하는 것에 중점을 둔다. 또한 디버깅과 테스팅이 용이해지는 장점이 있다.
필요한 기능만 포함할 수 있도록 잘 설계해보자.
YAGNI - You Aren't Gonna Need It
(불필요한 것은 추가하지 말자.)
이 원칙은 불필요한 기능 구현을 피하고, 현재 요구사항에 집중하여 가장 간단하고 효율적인 소프트웨어를 개발하는 것을 중요하게 생각한다.
YAGNI 원칙의 핵심은 "당장 필요하지 않은 것은 구현하지 말라"는 것이다. 사용자의 요구사항에 맞춰 필요한 기능을 개발하고, 불필요한 추가 기능을 피해야 한다.
이는 개발 시간과 비용을 절약하고, 코드의 복잡성을 낮춰 유지보수를 용이하게 하는 것이다.
DRY - Don't Repeat Yourself
(반복하지 말아라)
이 원칙은 간결하고 효율적인 코드 작성을 해야 한다는 원칙이다.
반복되는 코드는 유지보수의 어려움을 초래하며, 코드의 길이를 불필요하게 늘리고, 잠재적 오류의 원인이 될 수 있다.
핵심적인 내용은 동일한 정보를 두 번 이상 반복하지 않는 것이다. 예를 들어 클래스를 작성할 때 같은 기능을 하는 코드를 여러 번 작성하는 대신 한 번만 작성하고 필요한 곳에서 호출하여 사용하는 것이 대표적인 예이다.
이 원칙을 따르게 되면 코드의 재사용성이 높아지고, 수정이나 추가가 필요할 때 일관성을 유지하면서 하나의 위치에서만 변경을 진행할 수 있다. 이는 유지보수 과정을 단순화시켜 전체적인 퀄리티를 높일 수 있다.
하지만 이를 너무 적용하려고 하면 오버 엔지니어링이 될 수 있다. 그러므로 적절하게 적용해야 한다.
가장 중요한 것은 코드의 중복을 최소화하고, 유지보수성과 가독성을 높이는 방향으로 작성되어야 한다는 것이다.