코드 깔끔하게 작성하는 세 가지 유용한 코딩 팁
Table of Contents:
- 소개
- WET vs DRY
- DRY 원칙
- 로직 단일화
- 유지보수성 향상
- 코드 재사용성
- 드라이 예제 코드
- 키스 원칙
- 시스템 디자인의 주 목표
- 코드 작성의 심플함과 가독성
- 클래스와 컴포넌트의 심플성
- 키스 예제 코드
- 야그니 원칙
- 불필요한 기능 작성의 위험성
- 코드의 깨끗함과 유지보수성
- 사용하지 않은 코드의 제거
- 야그니 예제 코드
- 최종정리
- 결론
DRY (Don't Repeat Yourself)
여러분이 개발을 하다 보면, 같은 코드 혹은 기능을 반복 작성하는 경우가 종종 있을 것입니다. 이러한 반복은 개발자들의 시간을 낭비하게 만드는 요소인데요, DRY 원칙은 다양한 형태로 반복되는 코드와 로직들을 피하라고 말합니다.
- 로직 단일화
특정한 지식, 로직 등이 다른 곳에서 반복적으로 나타나는 것은 지양해야 합니다. 코드를 작성할 때 코드나 기능 로직 등이 반복적으로 나타난다면 DRY 원칙을 지키기 위해서는 반복을 피해야 합니다.
- 유지보수성 향상
여러 모듈에 걸쳐서 동일한 로직을 반복 작성한다면 유지보수의 어려움이 생길 수 있습니다. 로직 변경이 필요한 경우 수정해야 할 곳이 많아지고, 실수로 한 곳을 빠뜨릴 경우 유지보수의 악몽이 시작될 수 있습니다. 반대로 DRY하게 로직을 한 곳에서만 작성한다면 유지보수성이 높아질 수 있습니다.
- 코드 재사용성
코드를 한 곳에 정의해 두면 재사용성을 높일 수 있습니다. 나중에 변경이 필요한 경우 한 곳에서 수정할 수 있으므로 코드의 재사용성과 유지보수성이 높아집니다.
드라이 예제 코드
예를 들어, 여러 함수에서 사용자의 이름을 출력하고 있는데, 사용자 이름을 포함한 풀 네임을 출력하고 싶다면, 각각의 함수에서 수정해야 하는 번거로움이 생길 것입니다. 이런 경우 로직을 한 곳에서 정의하고 해당 함수에서 호출하는 것으로 개선할 수 있습니다.
KISS (Keep It Simple, Stupid)
시스템을 디자인할 때 심플함이 주요한 목표가 되어야 하고, 불필요한 복잡성은 피해야 합니다. 코드 작성에 있어서도 최대한 심플하고 간결하게 작성하는 것이 좋습니다. 코드에서 심플함을 유지하는 것은 함수와 클래스의 기능을 단일화시켜야 함을 의미합니다.
- 시스템 디자인의 주 목표
심플한 시스템은 복잡성을 피하고 제대로 동작합니다. 시스템을 심플하게 디자인하는 것이 주요한 목표이며, 화려한 테크닉보다 누구나 이해할 수 있도록 작성하는 것이 좋습니다.
- 코드 작성의 심플함과 가독성
함수와 클래스는 한 가지의 기능을 수행하며, 코드를 읽었을 때 한 번에 이해할 수 있어야 합니다. 필요한 주석 없이도 코드를 이해할 수 있도록 작성하는 것이 좋습니다.
- 클래스와 컴포넌트의 심플성
UI와 관련된 컴포넌트는 비즈니스 로직을 포함하지 않고, 최대한 심플하고 멍청하게 UI에 관련된 로직만을 담당해야 합니다. 서비스는 하나의 큰 기능을 담당하는 것보다 단 하나의 기능을 담당하는 개별적인 서비스를 만드는 것이 좋습니다.
키스 예제 코드
예를 들어, 배열에서 홀수 또는 짝수 값을 찾아 리턴하는 함수를 작성한다고 가정해봅시다. 로직을 코드 한 줄로 작성해도 되지만, 가독성을 높일 수 있도록 풀어서 작성하는 것이 좋습니다.
YAGNI (You Ain't Gonna Need It)
미래에 필요하지 않을 기능을 작성하는 것은 좋지 않습니다. 필요한 기능만 초점을 두고 작성해야 합니다. 작성하지 않은 코드는 주석으로 남기지 말고 깔끔하게 삭제하는 것이 좋습니다.
- 불필요한 기능 작성의 위험성
미래에 필요하지 않을 기능을 작성하면 유지보수성과 코드의 복잡성에 영향을 줄 수 있습니다. 또한 작성하지 않아도 되는 기능을 위해 개발 비용을 낭비하게 됩니다.
- 코드의 깨끗함과 유지보수성
불필요한 기능을 작성하는 대신 코드를 깨끗하게 유지하고, 변경이 쉬운 코드를 작성해야 합니다. 시스템의 복잡성을 더하지 않는 선에서 코드의 확장성을 고려해야 합니다.
- 사용하지 않은 코드의 제거
세 가지 원칙 중 하나인 야그니를 따라 가치 없는 코드는 제거해야 합니다. 버전 관리 툴을 활용하여 쓰이지 않는 코드를 깔끔하게 삭제하는 것이 좋습니다.
야그니 예제 코드
예를 들어, 소프트 삭제 기능을 추가하는 것은 미래에 필요하지 않을 수 있습니다. 소프트 삭제는 데이터베이스에서의 삭제가 아닌, 마크만 남겨주는 것으로, 복잡성을 더해주는 기능입니다. 필요하지 않은 기능은 개발 비용을 높일 뿐만 아니라 유지보수와 수리 비용을 초래할 수 있습니다.
최종정리
CLEAN CODE의 중요한 원칙들 중에서도 DRY, KISS, YAGNI 세 가지를 소개했습니다. 이 원칙들을 따라가면 더 깨끗하고 확장 가능한 코드를 작성할 수 있으며, 시스템의 유지보수성과 개발 비용을 향상시킬 수 있습니다.
결론
더 좋은 코드를 작성하기 위해서는 DRY, KISS, YAGNI 원칙을 따라가야 합니다. 이런 원칙들은 개발자들이 더 나은 코드를 작성하고 유지보수성을 향상시키는데 도움을 줄 수 있습니다. 이 세 가지 원칙을 지키며 더 나은 코드를 작성해 보세요.
FAQ
Q: DRY 원칙을 왜 지켜야 할까요?
A: DRY 원칙을 지키면 코드의 중복을 줄이고 유지보수성을 향상시킬 수 있습니다. 반복적인 작업을 피하고 코드를 한 곳에 단일화시켜야 합니다.
Q: KISS 원칙을 왜 지켜야 할까요?
A: KISS 원칙을 지키면 코드와 시스템을 보다 심플하고 가독성 있게 만들 수 있습니다. 코드의 기능을 단일화시키고 복잡성을 피해야 합니다.
Q: YAGNI 원칙을 왜 지켜야 할까요?
A: YAGNI 원칙을 지키면 필요하지 않은 기능을 작성하지 않아 유지보수성과 코드의 가독성이 향상됩니다. 필요한 기능만 초점을 두고 작성해야 합니다.