ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 프로젝트 코드 리팩토링
    Project/공통 사항 2022. 2. 1. 00:47

    코드 리팩토링을 통해 어디 내놓아도 부끄럽지 않은 코드를 작성하는 것을 목표로 한다!

     

    이번 졸업 프로젝트를 진행하며 코드 작성 후 바로 코드를 리팩토링하는 것의 중요함을 알게 되었다. 

    단계별 리팩토링을 진행하며 까먹지 않고 계속 실천하기 위해 정리를 해본다.

     

    ✔️ 단계별 리팩토링

    1️⃣ lint 적용

    lint란 프로그래밍 언어에서 권장하는 코딩 스타일 혹은 코딩 컨벤션이다.

    lint를 어긴다고 해서 에러가 발생하지는 않지만, lint는 팀원들 간의 코딩 스타일을 통일시켜주고, 잠재적인 에러의 가능성을 줄여준다.

     

    *Java

    top-10-java-linters

     

    *Python

    → PEP8을 일반적으로 권장

    → pylint를 사용해 더 엄격한 lint 검사 진행 가능

    $ pip install pylint
    $ pylint main.py

     

    2️⃣ 추상화 적용

    기능 별로 함수로 분리

    함수명에서 기능을 유추할 수 있도록 네이밍

     

    추상화를 통해 전체 코드의 진행 흐름을 파악하기 편해지고, 기능별로 나뉘어져 이어 디버깅과 유지 보수가 편해진다.

    이때 함수명과 파라미터만으로 충분히 설명되는 경우 불필요한 docstring은 삭제하는 것이 좋다.

    (lint에 반하지만, 불필요한 주석은 오히려 가독성을 해치므로 필요한 주석만 다는 것이 바람직함)

     

    3️⃣ 모듈화 적용

    프로젝트의 규모가 커질 수록 하나의 파일에 모든 코드를 작성하는 것은 복잡성을 키우고 가독성을 떨어뜨린다. 

    기능 별로 파일을 적절하게 분리하고, 이를 가져와 사용하도록 재구성하는 작업이 필요하며, 이를 모듈화라고 한다.

     

    기능 별로 파일로 분리

    모듈로 분리한 파일을 import 하여 사용

     

    4️⃣ 테스트 코드 작성

    앞서 기능 별로 나눈 함수들이 제대로 동작하는지 테스트하는 단위 테스트를 작성해야 한다.

    프로젝트의 규모가 커질 수록 테스트 코드의 중요성이 커진다.

     

     

    리팩토링 수행 예시

     

    ⭐️ 처음에 무작정 작성한 코드를 다시보며 예쁘게 가꿔나가는 것이 다른 사람이 보기에도 좋고, 더욱이 나에게도 좋은 점이라는 것을 잊지말자!

     

     

    참고)

    Code Refactoring [2] 파이썬 코드 리팩토링 해보기

    댓글

Designed by Tistory.