1년이 지나도 여전히 이해되는 Python 작성
Source: Dev.to

파이썬은 가독성이 뛰어나다는 평을 자주 받지만, 가독성은 자동으로 생기는 것이 아닙니다. 오늘은 잘 동작하지만 몇 달 뒤에 이해하기 어려워지는 파이썬 코드를 쉽게 작성할 수 있습니다. 언어의 유연성은 강력하지만, 규율이 없으면 복잡성이 은밀히 스며들게 됩니다.
몇 가지 습관은 시간이 지나도 잘 유지되는 파이썬 코드와 유지보수 부담이 되는 코드 사이의 차이를 일관되게 만들어 줍니다.
지속 가능한 파이썬 작성을 위한 가이드라인
유연성보다 명시성을 선호하기
파이썬은 함수가 거의 모든 형태의 인자를 받아들이고 거의 모든 형태의 값을 반환하도록 허용합니다. 편리하지만, 이는 종종 의도를 가립니다. 명확한 함수 시그니처, 예측 가능한 반환 타입, 그리고 분명한 제어 흐름은 코드가 무엇을 하는지 이해하는 데 필요한 정신적 노력을 줄여줍니다.
동작이 아니라 의미를 위한 이름 짓기
변수와 함수 이름은 어떻게 동작하는지가 아니라 왜 존재하는지를 설명해야 합니다. 좋은 이름은 주석의 필요성을 없애고 추가적인 컨텍스트 없이도 논리를 읽기 쉽게 만듭니다.
함수를 작고 집중되게 유지하기
한 가지 일을 하는 함수는 테스트하기도, 재사용하기도, 이해하기도 쉽습니다. 함수가 커지면 책임이 뒤섞이기 시작하고, 이는 향후 변경을 위험하게 만듭니다.
똑똑한 언어 기능을 사용할 때 주의하기
리스트 컴프리헨션, 데코레이터, 메타프로그래밍은 강력하지만 이해의 장벽을 높입니다. 코드를 줄이는 것이 다음 독자의 인지 부하를 늘리는 대가를 치르는 경우는 드뭅니다.
제어 흐름을 명확히 하기
깊게 중첩된 조건문이나 암묵적인 동작을 피하세요. 코드는 독자가 머릿속으로 엣지 케이스를 시뮬레이션하지 않아도 위에서 아래로 자연스럽게 읽혀야 합니다.
테스트를 문서화로 활용하기
잘 작성된 테스트는 단순히 정확성을 검증하는 것을 넘어, 코드가 어떻게 사용되어야 하는지를 보여줍니다. 동작에 초점을 맞춘 테스트는 향후 리팩터링을 더 안전하고 쉽게 만들어 줍니다.
미래의 독자를 위해 최적화하기
코드의 가장 중요한 독자는 시간에 쫓기는, 아직 코드를 모르는 사람입니다. 그 사람이 코드를 유지보수하게 될 것처럼 작성하세요. 결국 그렇게 될 테니까요.
시간의 시험을 견뎌낸 파이썬 코드는 차분함을 느끼게 합니다. 조각별로 이해하고, 자신 있게 변경하며, 두려움 없이 진행할 수 있습니다. 그 차분함은 엄격한 규칙에서 오는 것이 아니라, 일관되게 명료함을 선택하는 데서 옵니다.