코드 품질을 2배로 올리는 코드 개발 원칙 모음.zip

코드 품질을 높이기 위한 10가지 필수 코딩 원칙을 따르면서 유지보수 가능하고 효율적이며 버그 없는 코드를 작성하세요.

0. 개요

우리가 코드를 작성할 때 따라야 하는 몇 가지 기본적인 원칙들이 존재합니다.
물론 무조건 따라야만 한다는 것은 아니지만, 위 원칙을 지켜 코드를 작성할 시 여러가지 이점이 존재합니다.
이러한 원칙들은 코드를 더 읽기 쉽고 유지 보수하기 쉽게 만들어줍니다. 아래에는 몇 가지 중요한 코드 작성 원칙을 소개하겠습니다.
 
 

1. 약자로 기억하는 개발 원칙

1.1. DRY (Don't Repeat Yourself)

DRY (Don’t Repeat Yourself) 원칙은 코드에서 중복을 피하라는 의미입니다.
동일한 기능이나 정보를 여러 곳에서 반복해서 작성하는 대신, 해당 기능이나 정보를 단일 장소에서 관리하세요.
중복 코드는 버그가 발생하기 쉽고 유지 보수가 어려울 수 있습니다. 가령 여러분이 동일한 기능의 코드를 여러방식으로 작성했을 경우, 해당 코드의 수정이 필요한 상황에서도 똑같이 수차례에 걸쳐 코드를 수정해야 합니다.
 
 

1.2. KISS (Keep It Simple, Stupid)

KISS(Keep It Simple, Stupid) 원칙은 코드를 가능한 간단하게 유지하라는 의미입니다.
복잡한 코드보다 간단하고 명확한 코드가 이해하기 쉽고 버그를 찾기 쉽습니다. 복잡성은 문제를 해결하는 과정을 어렵게 만들 수 있습니다.
코드의 가독성과 유지보수는 긴밀하게 연관되어 있습니다. 코드길이와 가독성이 떨어지는 코드는 오류가 생기는 부분이나 수정해야하는 부분을 찾기가 어려워집니다.
특히 주니어개발자가 가장 많이 하는 실수로, 나만 알아보기 쉬운 코드를 작성했다가 다른 팀원의 야근을 유발하기도 합니다.
 
 

2. 변수, 함수, 모듈 필수 원칙

2.1. 의미 있는 변수와 함수명 사용

변수와 함수명을 명확하고 의미 있게 지정하세요. 다른 개발자나 여러분 스스로가 코드를 읽을 때 변수나 함수가 하는 일을 파악하기 쉬워집니다.
최대한 직관적이고 간결한 코딩을 위해서는 모든 변수와 함수에 의미가 포함되어야 합니다. 의미없는 함수, 변수명은 해당 기능을 파악하는데 시간이 걸리게 하여 생산성을 떨어트리는 가장 큰 요인이 됩니다.
 
 

2.2. 작은 함수와 모듈 사용

함수와 모듈을 최대한 작게 유지해보세요. 함수는 한 가지 일만 해야 하며, 모듈은 관련된 기능을 그룹화해야 합니다.
큰 함수와 모듈의 문제점은 상대적으로 범용성이 떨어지는 편입니다. 반면에 작은 함수와 모듈은 코드를 재사용하기 쉽게 만들어주기 때문에, 개발 규모가 커질 수록 코딩 시간을 비약적으로 단축시키는데 큰 도움이 됩니다.
 
 

3. 시작보다 중요한 마무리 원칙

3.1. 유닛 테스트와 테스트 주도 개발 (TDD)

코드를 작성할 때 유닛 테스트를 작성하고, 테스트 주도 개발(TDD, Test-driven development) 원칙을 따르세요. 테스트는 코드의 동작을 검증하고 버그를 발견하는 데 도움을 줍니다.
다만 TDD를 사용하는 경우에 개발과 같이 테스트를 만드는 과정을 거치면서 개발 속도가 늦춰질 수 있습니다. 어떤 것이 본인의 프로젝트에 더 맞는지 판단하여, 적용하는 유연한 태도가 필요합니다.
 

3.2. 예외 처리

예외 처리를 신경써서 작성해주세요. 개발을 진행할때, 우리는 늘 예외 상황을 예측하고 처리하는 코드를 염두해야 합니다.
견고하게 작동하는 프로그램의 경우, 다양한 경우의 수에 대응할 수 있도록 예외처리가 잘 준비된 경우가 많습니다. 결국에는 우리의 개발 의도와 달리 예상치 못한 조건으로 동작하는 경우가 있기 때문에, 개발 기획단계에서 전체적으로 필요한 예외 처리를 파악할 줄 아는 것이 큰 도움이 됩니다.
 

3.3. 코드 리뷰

코드 리뷰는 중요한 학습 도구입니다. 다른 개발자들의 코드를 읽고 피드백을 주고 받으세요. 다른 사람의 관점에서 코드를 볼 때, 버그나 개선점을 발견할 수 있습니다. 만약 코드 리뷰를 같이할 사람이 없는경우, TDD를 이용해서 자가 코드 리뷰를 하는 차선책도 존재하니 참고하시면 좋습니다.
 
 

4. 팀(Team) 단위 개발을 위한 원칙

4.1. 적절한 주석 사용

코드에 설명을 담은 주석을 사용하세요. 해당 코드가 어떤 일을 하는지, 왜 이렇게 작성했는지 설명하는 주석은 팀 단위로 개발이 진행되는 실무에서 큰 도움이 됩니다.
그러나 잦은 주석 사용은 코드 자체로 설득이 어렵다는 말과 동일합니다. 최대한 주석을 줄이고, 코드 자체로 설명되도록 노력하는것이 좋습니다.
 

4.2. 코드 스타일 가이드 준수

프로젝트 팀이나 언어에 관한 코드 스타일 가이드를 따르세요. 일관된 코드 스타일을 유지하면 협업이 더 쉽고 코드의 가독성을 높일 수 있습니다.
동일한 코드스타일을 맞추는 것이 때로는 불필요하고, 비효율적으로 느껴질 수 있습니다. 그렇지만 팀 단위로 프로젝트를 진행할때는 누구든 해당 코드를 이해하고 수정/이용이 가능하게 하는 것이 중요합니다.
특히나 기존에 운영되어온 프로젝트에 합류하게 된 경우, 바로 개발에 착수하기 보단 기존 코드스타일을 파악하고 가이드를 숙지하는 것이 필수적입니다.
 
 

5. 실력 향상을 위한 원칙

5.1. 자기계발 투자

프로그래밍 기술 발전 속도는 점점 가속화되고 있습니다. 이에 대응하기 위해서 지속적인 학습과 노력이 필요합니다. 연차가 아무리 높아지더라도, 새로운 기술과 도구를 배우며 자신의 스킬을 향상시키는 것에 투자해야하는 것이 필수적입니다.
 

5.2. 트렌드 모니터링과 기술자 간 교류

깃허브, 레딧, 긱뉴스 등 트렌드에서 멀어지지 않기 위해 지속적인 모니터링과 시류에 관한 관심이 요구됩니다.
자존심을 내려놓고, 내가 만든 작품의 완성도를 높이는 것보단, 빠르게 시장에 내놓아 다양한 파트의 전문가들의 피드백을 받는 것 또한 실력 향상에 큰 도움이 됩니다.
 
 

6. 결론

코드 작성은 예술과 과학의 결합입니다. 처음에는 어려울 수 있지만, 경험을 쌓고 위의 원칙을 따르면 더 나은 프로그래머로 성장할 수 있습니다. 실패와 버그는 배움의 일부이며, 계속해서 개선하며 더 나은 코드를 작성하게 될 것입니다.