본문 바로가기
카테고리 없음

[파이썬 심화] 가독성 높이기, 함수 클린코드, 실무에서 클린코드

by 개발자를 꿈꾸는 사람들과 함꼐 2025. 4. 13.

가독성을 높이는 코드 스타일

클린 코드는 단순히 잘 작동하는 코드가 아니라, 다른 사람이 읽고 이해하기 쉬운 코드입니다.
가독성을 높이는 가장 기본적인 방법은 PEP8 스타일 가이드를 따르는 것입니다.

1. 의미 있는 변수명 사용

# 나쁜 예
a = 100

# 좋은 예
max_score = 100

해석: 변수명만으로도 의미를 파악할 수 있도록 구체적으로 작성합니다.
a, x 같은 이름 대신 user_count, price_per_unit처럼 의미 있는 단어를 사용하세요.

2. 한 줄에 하나의 명령만

# 나쁜 예
x=5;y=10;print(x+y)

# 좋은 예
x = 5
y = 10
print(x + y)

한 줄에 여러 명령문을 넣으면 디버깅이 어렵고 읽기 불편해집니다. 줄마다 명확한 목적을 가지도록 작성합니다.

3. 들여쓰기와 공백 정리

# 나쁜 예
if(x>10):print("크다")

# 좋은 예
if x > 10:
    print("크다")

해석: 공백도 코드의 일부입니다. if 조건문, = 연산자 등은 공백을 활용해 시각적 구조를 잡아야 합니다.

함수와 구조 설계에서의 클린 코드 원칙

클린 코드는 잘게 쪼갠 함수, 명확한 책임 분리, 중복 제거를 통해 유지보수에 강한 구조를 만듭니다.

1. 하나의 함수는 하나의 책임만

# 나쁜 예
def handle_user():
    name = input("이름 입력:")
    print(f"환영합니다, {name}")
    save_to_db(name)

# 좋은 예
def get_user_name():
    return input("이름 입력:")

def greet_user(name):
    print(f"환영합니다, {name}")

def save_to_db(name):
    # DB 저장 로직
    pass

해석:

  • 각 함수는 하나의 동작만 담당해야 합니다 (단일 책임 원칙).
  • 작게 나눈 함수는 테스트와 재사용이 용이하며, 수정 시 위험도 줄어듭니다.

2. 중복은 최대한 제거하자

# 나쁜 예
print("파일 저장 중...")
save_file()
print("파일 저장 완료")

# 좋은 예
def log_save_process(action):
    print("파일 저장 중...")
    action()
    print("파일 저장 완료")

log_save_process(save_file)

중복되는 출력이나 동작을 함수화하면, 유지보수와 확장에 강한 코드를 만들 수 있습니다.

3. 조건문은 단순하게

# 나쁜 예
if is_logged_in == True:
    ...

# 좋은 예
if is_logged_in:
    ...

== True 같은 불필요한 조건 비교는 생략할 수 있습니다. 조건 자체가 이미 Boolean 타입일 경우 직접 사용하는 것이 더 깔끔합니다.

실무에서의 클린 코드 적용 팁

1. 리스트 컴프리헨션 활용

# 나쁜 예
result = []
for x in range(10):
    if x % 2 == 0:
        result.append(x * 2)

# 좋은 예
result = [x * 2 for x in range(10) if x % 2 == 0]

한 줄로 간결하게 표현할 수 있는 로직은 리스트 컴프리헨션을 적극 활용하세요.
단, 너무 복잡한 조건문은 오히려 가독성을 해칠 수 있으므로 적절히 사용해야 합니다.

2. 주석은 "왜"를 설명하자

# 나쁜 예
i = 0  # 변수 초기화

# 좋은 예
i = 0  # 사용자 입력 수 카운트 시작점

무엇을 하는지는 코드로 알 수 있으므로, 그런 코드가 필요한지를 주석으로 설명하는 것이 더 유익합니다.

3. 긴 조건은 함수로 분리

# 나쁜 예
if user.age > 18 and user.country == "KR" and user.is_active:

# 좋은 예
def is_valid_user(user):
    return user.age > 18 and user.country == "KR" and user.is_active

if is_valid_user(user):

복잡한 조건은 함수로 분리하면 코드 가독성이 대폭 향상됩니다. 또한 테스트와 재사용도 쉬워지기 때문에 실무에서 자주 쓰이는 팁입니다. 클린 코드는 단순히 코드를 예쁘게 정리하는 것이 아니라, 협업과 유지보수를 고려한 개발자의 기본기입니다. 작은 습관 하나하나가 프로젝트 전체의 품질을 결정합니다. PEP8 스타일을 따르고, 함수는 작고 명확하게, 중복을 피하며, 읽기 쉬운 코드 작성에 집중해보세요. 한 줄의 코드에도 생각을 담는다면, 여러분의 파이썬 실력은 한 단계 더 성장하게 될 것입니다.