본문으로 건너뛰기
실습하기

좋은 코드의 조건과 파이썬 코드를 개선하는 방법

잘 작동하는 코드라도 가독성이 떨어지거나 성능이 좋지 않다면, 그 코드는 훌륭한 코드라고 할 수 없습니다.

그렇다면 훌륭한 코드란 무엇일까요?


좋은 코드의 조건들

단순히 오류 없이 작동하는 것만으로 좋은 코드라고 할 수는 없습니다.

일반적으로 코드의 품질을 평가할 때는 다음과 같은 요소들을 고려합니다.

  • 가독성: 다른 개발자나 자신이 나중에 코드를 다시 볼 때 이해하기 쉬워야 합니다. 기능을 잘 표현하는 변수 이름, 주석, 적절한 코드 구조 등이 가독성을 높여줍니다.

  • 효율성: 코드가 주어진 작업을 효율적으로 수행해야 합니다. 즉, 필요 이상으로 메모리나 CPU를 사용하지 않도록 최적화가 필요합니다.

  • 재사용성: 잘 작성된 코드는 재사용하기 쉬워야 합니다. 함수나 클래스 등을 활용해 반복적인 코드를 줄이고, 필요한 곳에서 쉽게 가져다 쓸 수 있도록 구성해야 합니다.

  • 유연성: 변경되는 요구사항에도 쉽게 대응할 수 있는 확장성 있는 설계가 뒷받침되어야 합니다. 고정되어야 하는 값은 상수로, 변경될 수 있는 값은 변수로 선언되어야 하며, 코드의 일부를 쉽게 수정할 수 있도록 모듈화가 잘 되어 있어야 합니다.


코드 개선 전후 비교: 어떤 차이가 있을까요?

먼저 가독성이 떨어지는 코드를 개선하는 과정을 살펴보겠습니다.

아래 코드는 리스트의 모든 요소를 제곱한 값을 새 리스트로 반환합니다.

장황한 파이썬 코드
numbers_list = [1, 2, 3, 4, 5]

def handle_numbers(numbers):
output = []
for num in numbers:
output.append(num ** 2)
return output

result = handle_numbers(numbers_list)

# 출력값: [1, 4, 9, 16, 25]
print(result)

위 코드는 기능적으로는 문제가 없지만 가독성이 떨어집니다. 코드를 읽는 사람은 handle_numbers 함수가 무엇을 하는지 한눈에 파악하기 어렵습니다.

이제 이 코드를 개선해보겠습니다.

개선된 파이썬 코드
numbers_list = [1, 2, 3, 4, 5]

# 리스트 내포를 사용하여 간결하게 표현
def square_numbers(numbers):
return [num ** 2 for num in numbers]

result = square_numbers(numbers_list)

위 코드에서 개선된 점은 다음과 같습니다.

  1. 함수명을 handle_numbers에서 square_numbers로 변경하여 함수의 역할을 명확히 표현했습니다.

  2. 리스트 내포를 사용하여 코드를 간결하게 만들었습니다.

  3. output 변수 대신 바로 리스트를 반환하도록 수정하여 코드를 더 간결하게 만들었습니다.

이렇게 코드를 개선하면 후에 코드를 이해하고 수정하기 쉬워집니다.


프롬프트를 활용한 파이썬 코드 개선

AI로 코드를 개선할 때는 위에서 소개한 좋은 코드의 조건을 고려하여 프롬프트를 작성하는 것이 중요합니다.

개선 요청 프롬프트 예시
아래 파이썬 함수는 주어진 숫자 리스트의 각 요소를 제곱한 값을 새 리스트로 반환합니다.

def handle_numbers(numbers):
output = []
for num in numbers:
output.append(num ** 2)
return output

하지만 함수명이 기능을 명확히 표현하지 못하고, 코드가 장황하게 작성되어 있습니다.

이 함수를 개선하여 코드의 가독성을 높이고, 코드를 간결하게 만들어 주세요.

위와 같이 기존 코드를 개선할 때는 가독성, 효율성, 재사용성, 유연성과 같은 좋은 코드의 조건을 고려하여, 코드 개선을 요청한다는 것을 프롬프트에 명시해야 합니다.

다음 내용이 궁금하다면?

코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!