⊙ 아티클 스터디
주제 : "파이썬 초보자가 저지르는 10가지 실수"
( https://yozm.wishket.com/magazine/detail/1605/)
요약
: 파이썬 입문자들이 흔히 저지르는 10가지 나쁜 코딩 습관을 소개하고, 가독성과 효율성을 높여주는 파이썬다운(Pythonic) 코드 작성법과 올바른 대안을 제시하는 글.
주요 포인트
- 불필요한 전체 불러오기 지양 : import * 대신 필요한 모듈이나 객체만 명확히 불러와 충돌을 방지합니다. 데이터 양이나 신뢰성만큼 중요한 것이 '무엇을 위해 데이터를 쓰는가'라는 목적성입니다.
- 표준 가이드 준수 : PEP8 가이드라인을 따르고, 구체적인 예외 처리(except ExceptionName)를 습관화합니다.
- 효율적인 라이브러리 활용: 복잡한 수학 계산 시 for 루프 대신 벡터 연산이 가능한 Numpy를 사용합니다.
- 자원 관리 및 가독성: with 구문으로 파일을 안전하게 닫고, f-string이나 리스트 컴프리헨션을 활용해 코드를 간결하게 만듭니다
- 가변 객체 주의 : 함수의 디폴트 매개변수로 리스트와 같은 가변 객체(Mutable)를 사용할 때 발생하는 의도치 않은 동작을 방지합니다.
핵심개념
- 파이썬다운 코드(Pythonic Code) : 파이썬의 철학에 부합하며 가독성이 높고 간결한 코드를 의미합니다.
- PEP 8 : 파이썬 개선 제안서(Python Enhancement Proposal)의 8번째 문서로, 파이썬 코딩 스타일의 표준 가이드를 제공합니다
- 벡터화(Vectorization) : 반복문 없이 배열의 모든 원소에 대해 한꺼번에 연산을 수행하여 처리 속도를 높이는 방식입니다.
용어정리
| Mutable (가변성) | ● 생성 후 그 상태를 변경할 수 있는 객체(예: 리스트, 딕셔너리)를 의미 |
| List Comprehension (리스트 컴프리헨션) |
● 기존 리스트를 기반으로 새로운 리스트를 간결하게 생성하는 문법 |
| Bare 'except' |
● 예외의 종류를 명시하지 않은 except: 구문으로, 원치 않는 시스템 예외까지 잡아낼 수 있어 권장되지 않음 |
| f-string | ● 문자열 앞에 f를 붙여 변수나 표현식을 문자열 안에 직관적으로 삽입하는 포맷팅 방식 |
| zip / enumerate | ● 여러 리스트를 동시에 순회하거나(zip), 인덱스와 값을 동시에 가져올 때(enumerate) 사용하는 내장 함수 |