Akashic Records

13.3 코드 리뷰와 리팩토링 본문

Python for Beginners

13.3 코드 리뷰와 리팩토링

Andrew's Akashic Records 2023. 4. 17. 10:40
728x90

코드 리뷰와 리팩토링은 개발 프로세스에서 코드 품질을 향상시키는 데 도움이 되는 두 가지 중요한 활동입니다.

코드 리뷰(Code Review)는 동료 개발자가 작성한 코드를 검토하여 코드 품질, 버그, 스타일, 설계 문제 등을 찾아내고 개선하는 과정입니다. 코드 리뷰의 목적은 다음과 같습니다.

  • 코드 품질 향상: 코드 구조, 설계, 명명 규칙 등을 검토하여 가독성과 유지 보수성을 높입니다.
  • 버그 발견: 미처 발견하지 못한 버그나 문제를 찾아냅니다.
  • 팀워크 강화: 팀원들이 서로의 코드를 이해하고, 팀 전체의 코드 품질을 향상시킵니다.
  • 지식 공유: 새로운 기술이나 접근 방식을 배우고, 개발자 간의 경험과 지식을 공유합니다.

리팩토링(Refactoring)은 기능을 변경하지 않으면서 코드 구조를 개선하는 과정입니다. 리팩토링의 주요 목표는 가독성, 유지 보수성, 확장성을 높이는 것입니다. 리팩토링 과정에서는 다음과 같은 작업이 수행됩니다.

  • 중복 코드 제거
  • 함수 및 클래스 추출
  • 명확한 명명 규칙 적용
  • 함수 및 클래스 크기 축소
  • 관심사의 분리(Separation of Concerns)

예제 코드:

# 코드 리뷰 전
def calculate(a, b, op):
    if op == "add":
        return a + b
    elif op == "subtract":
        return a - b
    elif op == "multiply":
        return a * b
    elif op == "divide":
        if b == 0:
            return None
        return a / b


코드 리뷰 후 리팩토링한 코드:

def add(a, b):
    return a + b

def subtract(a, b):
    return a - b

def multiply(a, b):
    return a * b

def divide(a, b):
    if b == 0:
        raise ZeroDivisionError("division by zero")
    return a / b

def calculate(a, b, op):
    operations = {
        'add': add,
        'subtract': subtract,
        'multiply': multiply,
        'divide': divide,
    }

    operation = operations.get(op)
    if operation:
        return operation(a, b)
    else:
        raise ValueError(f"Invalid operation: {op}")

리팩토링 후 코드에서는 각각의 연산을 수행하는 함수를 정의하여 코드의 가독성과 재사용성을 높였습니다. 또한, calculate 함수 내부에서 딕셔너리를 사용하여 연산 함수를 저장하고, 이를 이용해 적절한 연산을 수행하도록 변경하였습니다. 이렇게 하면 새로운 연산을 추가할 때 코드를 더 쉽게 확장할 수 있습니다.

또한, 기존 코드에서는 0으로 나누는 경우 None을 반환했지만, 리팩토링 후 코드에서는 ZeroDivisionError를 발생시켜 에러 처리를 명확하게 했습니다. 마지막으로, 올바르지 않은 연산자가 전달될 경우 ValueError를 발생시켜 클라이언트에게 명확한 에러 메시지를 제공합니다.

코드 리뷰와 리팩토링을 통해 다음과 같은 이점을 얻을 수 있습니다:

  • 코드 품질 향상: 리팩토링을 통해 코드의 가독성, 유지 보수성, 확장성을 높일 수 있습니다.
  • 실수 줄임: 코드 리뷰를 통해 미처 발견하지 못한 버그나 문제를 찾아낼 수 있습니다.
  • 지식 공유: 리뷰 과정에서 개발자 간의 경험과 지식을 공유하고, 새로운 기술이나 접근 방식을 배울 수 있습니다.
  • 일관성 유지: 코드 리뷰를 통해 프로젝트 전체의 코드 스타일과 구조를 일관되게 유지할 수 있습니다

.코드 리뷰와 리팩토링은 개발 프로세스에서 핵심적인 역할을 합니다. 이 두 활동을 지속적으로 수행함으로써 소프트웨어의 품질을 높이고 개발 효율을 향상시킬 수 있습니다.

 
728x90
Comments