본문 바로가기

[Python] 46강 기존 코드 리팩토링하기 (고치지 말고 개선하기)

@도마22026. 1. 13. 18:00
728x90


이 강의는 파이썬 강의 46강입니다.
이전 강의에서는 데이터 구조를 설계하는 방법을 배웠습니다.
이번 강의에서는 이미 동작하는 코드를
더 읽기 좋고, 관리하기 쉽게 바꾸는 작업,
즉 리팩토링(refactoring)을 배웁니다.


리팩토링이란 무엇인가

리팩토링은
기능은 그대로 두고 코드 구조만 개선하는 작업입니다.

중요한 점은 이겁니다.

  • ❌ 새로운 기능 추가 아님
  • ❌ 버그 수정 아님
  • ⭕ 같은 결과, 더 좋은 코드

1️⃣ 왜 리팩토링이 필요한가

처음 짠 코드는
대부분 이런 특징을 가집니다.

  • 코드가 길다
  • 같은 코드가 반복된다
  • 변수 이름이 애매하다

하지만 이건 실력 부족이 아니라 정상적인 과정입니다.
그래서 리팩토링이 필요합니다.


2️⃣ 리팩토링 전 코드 예시

아래 코드를 봅니다.

score1 = 90
score2 = 80
score3 = 70

total = score1 + score2 + score3
avg = total / 3

print(avg)

동작은 하지만
확장하기가 매우 어렵습니다.


3️⃣ 자료구조로 리팩토링

관련된 값들을
리스트로 묶습니다.

scores = [90, 80, 70]

total = sum(scores)
avg = total / len(scores)

print(avg)

코드가 짧아지고
의도가 명확해졌습니다.


4️⃣ 함수로 리팩토링

역할을 함수로 분리합니다.

def average(scores):
    return sum(scores) / len(scores)

scores = [90, 80, 70]
print(average(scores))
  • 재사용 가능
  • 테스트 쉬움
  • 수정 범위 최소화

5️⃣ 이름만 바꿔도 리팩토링이다

리팩토링은
큰 변화만 의미하지 않습니다.

# before
def f(x):
    return x * 2

# after
def double(number):
    return number * 2

의미가 드러나는 이름
그 자체로 리팩토링입니다.


6️⃣ 리팩토링 체크리스트

아래 질문에
“예”가 나오면 리팩토링 대상입니다.

  • 같은 코드가 2번 이상 반복되는가?
  • 변수/함수 이름이 애매한가?
  • 한 함수가 너무 많은 일을 하는가?
  • 나중에 다시 읽기 힘든가?

7️⃣ 리팩토링은 언제 하는가

리팩토링은
코드를 다 짠 뒤에 합니다.

❌ 쓰면서 동시에 고치기
⭕ 동작 확인 → 그 다음 개선

이 순서가 중요합니다.


8️⃣ 실습 예제

아래 코드를
리팩토링해보세요.

a = 100
b = 30
c = a - b
print(c)

 

더보기

힌트: 변수 이름, 함수 분리


이번 강의 핵심 정리

  • 리팩토링은 기능 변경이 아니다
  • 코드를 더 읽기 좋게 만든다
  • 자료구조와 함수는 리팩토링의 핵심 도구다
  • 이름만 바꿔도 리팩토링이다

728x90
도마2
@도마2 :: 도마의 코드노트

초보자를 위한 코딩 강의를 정리합니다. 파이썬부터 C#, Unity 게임 제작까지 차근차근 기록합니다. — 도마

목차