본문으로 건너뛰기

코드 리뷰와 리팩토링: 좋은 코드를 작성하는 방법

· 약 7분
김건 (suwon)
곧 카이스트 졸업할 몸

안녕하세요. Taxi팀의 PM으로 활동하고 있는 김건(suwon)입니다.

소프트웨어 개발은 복잡한 과정입니다. 프로젝트의 성공은 코드의 품질에 크게 의존하며, 이를 달성하는 방법 중 하나는 코드 리뷰와 리팩토링입니다. 좋은 코드를 작성하는 방법, 코드 리뷰의 중요성, 그리고 리팩토링 기법에 대해 다루겠습니다.

좋은 코드란?

좋은 코드를 작성하는 것은 간단해 보이지만, 많은 연습과 지식이 필요합니다. 좋은 코드는 효율적이고, 이해하기 쉬워야 합니다. 이를 위한 몇 가지 방법은 다음과 같습니다:

  • 명확한 명명법: 변수, 함수, 클래스의 이름은 그것이 무엇을 하는지 명확하게 나타내야 합니다. 예를 들어, calculateAverage()는 그 함수가 평균을 계산한다는 것을 명확하게 보여줍니다.

  • 단순함: 코드는 간결하고 단순해야 합니다. 복잡한 코드는 이해하기 어렵고, 오류를 유발할 가능성이 높습니다.

  • 주석: 주석은 코드의 작동 방식을 설명하고, 복잡한 로직을 이해하는 데 도움을 줍니다. 하지만 너무 많은 주석은 코드를 복잡하게 만들 수 있으므로 적절한 균형이 필요합니다.

좋은 코드로 효율성과 통일성을 높이기 위해 Taxi 팀에서는 모든 팀원들이 공통적으로 지켜야 하는 Code Rules와 Convention을 지정하고 Issue & PR 템플릿을 사용하고 있습니다. 규칙을 지키며 코드를 작성하는 것은 개인적으로 개발에 많은 시간을 요구할 수 있지만, 거시적으로 팀 전체의 개발 속도는 감소시킬 것입니다. PM으로서 Code Rules를 팀원 전체에게 강요하는 이유입니다.

image-20230514221254055

코드 리뷰의 중요성

코드 리뷰는 개발자가 작성한 코드를 동료가 검토하고 피드백을 제공하는 과정입니다. 이는 여러 가지 이유로 중요합니다:

  • 버그 발견: 코드 리뷰는 코드에서 버그를 찾는 데 도움이 됩니다. 개발자가 작성한 코드에는 그 개발자가 인지하지 못한 버그가 있을 수 있습니다.

  • 코드 품질 향상: 코드 리뷰는 코드의 품질을 향상시키는 데 도움이 됩니다. 리뷰어는 개선할 수 있는 부분을 지적하고, 더 나은 방법을 제안할 수 있습니다.

  • 지식 공유: 코드 리뷰는 개발 팀 내에서 지식을 공유하는 좋은 방법입니다. 다른 사람의 코드를 리뷰하면서 새로운 기법이나 관점을 배울 수 있습니다.

팀원들의 성장과 코드의 품질을 위해 Taxi 팀에서는 코드 리뷰를 권장하고 있습니다. 코드 리뷰를 통해 서비스에서 발생할 수 있는 많은 버그를 발견하였고 저 개인적으로도 팀원들의 코드를 리뷰하면서 많은 지식을 얻을 수 있었습니다.

image-20230514221254056

리팩토링 기법

리팩토링은 코드의 구조를 개선하면서 외부적으로 보이는 행동은 그대로 유지하는 것을 말합니다. 이는 코드의 가독성을 향상시키고, 유지 보수를 용이하게 하는데 도움이 됩니다. 주요 리팩토링 기법으로는 다음과 같은 것들이 있습니다:

  • Extract Function(함수 추출): 긴 함수나 복잡한 코드 조각을 별도의 함수로 분리하는 기법입니다. 이를 통해 코드의 가독성을 향상시키고, 재사용성을 높일 수 있습니다.

  • Rename Variable(변수 이름 변경): 변수의 이름을 더 명확하게 변경하는 것입니다. 이를 통해 코드의 의도를 더 잘 전달하고 이해하는 데 도움이 됩니다.

  • Replace Magic Number with Symbolic Constant(매직 넘버를 상징적 상수로 변경): 코드 내에 특정 값을 직접 사용하는 대신 의미 있는 상수로 대체하는 기법입니다. 이를 통해 코드의 가독성을 높이고, 오류를 방지할 수 있습니다.

  • Remove Dead Code(불필요한 코드 제거): 더 이상 사용되지 않는 코드를 제거하는 기법입니다. 이를 통해 코드의 복잡성을 줄이고, 유지 관리를 용이하게 할 수 있습니다.

결론

좋은 코드를 작성하는 것은 소프트웨어 개발의 핵심적인 부분입니다. 코드 리뷰와 리팩토링은 이를 달성하는 데 중요한 도구입니다. 코드 리뷰를 통해 팀원들과 지식을 공유하고, 서로의 코드를 향상시킬 수 있습니다. 또한, 리팩토링을 통해 코드의 품질을 개선하고, 유지 보수를 용이하게 할 수 있습니다. 이러한 절차를 통해, 우리는 더 나은 소프트웨어와 서비스를 만들어낼 수 있습니다.