코드 검토와 리팩터링

케이스 스터디: Python으로 소프트웨어 만들기

Mark Pedigo

Principal Data Scientist

정기 코드 리뷰의 이점

  • 코드 품질 향상
    • 조기 불일치 발견
  • 지식 공유
    • 협업
    • 정렬 유지
  • 일관성과 모범 사례
    • 높은 기준 유지

컴퓨터에서 두 사람이 코드를 검토하는 모습

케이스 스터디: Python으로 소프트웨어 만들기

코드 리뷰 예시

def factorial(n):
    if n == 0:
        return 1
    else:
        result = 1
        for i in range(1, n + 1):
            result *= i
        return result

다음에 대해 피드백하십시오:

  • 기능성
  • 가독성
    • 예 - 불필요한 else
  • 엣지 케이스
    • 예 - 계승에 음수 입력
케이스 스터디: Python으로 소프트웨어 만들기

코드 리팩터링의 이점

  • 코드 품질 향상
  • 유지보수 용이
  • 기술 부채 감소

스파게티 코드가 순서도로 바뀌는 모습

케이스 스터디: Python으로 소프트웨어 만들기

리팩터링 예시

# Original code
def factorial(n):
    if n == 0:
        return 1
    else:
        result = 1
        for i in range(1, n + 1):
            result *= i
        return result
# Refactored code
def factorial(n):
    if n < 0:
        raise ValueError("Not defined")

if n == 0: return 1
result = 1 for i in range(1, n + 1): result *= i return result
케이스 스터디: Python으로 소프트웨어 만들기

새 공식에 맞는 함수

이전 공식 $$m = P \cdot \frac{r (1 + r)^N}{(1+r)^N - 1}$$ 여기서 $m$은 월 상환액, $P$는 대출원금, $r$은 월 이자율, $N$은 상환 횟수입니다

새 공식 $$P = m \cdot \frac{(1+r)^N - 1}{r (1 + r)^N}$$

케이스 스터디: Python으로 소프트웨어 만들기

로드맵

프로젝트에서 완료한 부분과 시작할 부분을 보여주는 로드맵

케이스 스터디: Python으로 소프트웨어 만들기

Let's practice!

케이스 스터디: Python으로 소프트웨어 만들기

Preparing Video For Download...