python/기능개발을 위한 지식
-
Python 코드가 전부 한 파일에 존재한다!? (코드 분리하기)python/기능개발을 위한 지식 2025. 4. 2. 18:10
소프트웨어 개발에서 "작동하는 코드"와 "좋은 코드"는 큰 차이가 있습니다.특히 서버 애플리케이션처럼 장기간 운영되고 지속적인 유지보수가 필요한 코드는 처음부터 확장성과 유지보수성을 고려해야 합니다. 이 글에서는 TCP 소켓 기반의 오디오 처리 서버 코드를 리팩토링하면서 적용한 예시를 살펴보겠습니다. 1. 모듈화와 단일 책임 원칙1.1 파일 분리하나의 큰 파일을 여러 개의 작은 모듈로 분리하는 것은 코드의 가독성과 유지보수성을 크게 향상시킵니다. 각 모듈은 명확한 책임을 가지고 있어야 합니다.project/├── main.py # 애플리케이션 진입점├── constants.py # 상수 정의├── logger.py # 로깅 설정├── connecti..
-
[Python] 기존에 작성된 코드를 쉽게 수정하기! (상속)python/기능개발을 위한 지식 2025. 4. 1. 14:14
소프트웨어 개발에서 기존 코드를 수정하는 것과 확장하는 것 사이에는 중요한 차이가 있습니다. 실제 프로젝트에서 남들이 작성한, 혹은 기존에 작성된 클래스를 확장하여 로깅 기능을 추가한 사례를 통해 코드 유지보수와 확장의 베스트 프랙티스를 살펴보겠습니다.상속을 통한 코드 확장의 이점코드를 수정할 때 기존 클래스를 직접 변경하는 대신 상속을 통해 새로운 기능을 추가하면 다음과 같은 이점이 있습니다:원본 코드 보존 - 라이브러리나 프레임워크의 코드를 직접 수정하지 않아 업데이트 충돌을 방지합니다.명확한 기능 추가 - 어떤 기능이 추가되었는지 명확하게 알 수 있습니다.유연한 확장 - 필요에 따라 특정 메서드만 오버라이드하여 기능을 확장할 수 있습니다.쉬운 롤백 - 문제 발생 시 원래 클래스로 쉽게 되돌릴 수 있..
-
[Logging] 메인 코드와 모듈에서 동일 로그 파일 사용python/기능개발을 위한 지식 2025. 4. 1. 11:37
파이썬에서 로그를 남기는 방법을 정리했습니다. 메인 코드에서 로그를 설정하고, 다른 모듈 파일에서도 동일한 로그 파일에 기록되도록 하는 데 초점을 맞췄습니다.1. 메인 코드에서 로그 설정로그는 logging 모듈을 사용해 설정합니다. 메인 파일에서 로그 레벨, 포맷, 파일 핸들러를 정의합니다. import loggingfrom datetime import datetime# 로깅 기본 설정logging.basicConfig( level=logging.INFO, format='%(asctime)s.%(msecs)03d [%(levelname)s] %(message)s', datefmt='%Y/%m/%d %I:%M:%S')# 루트 로거 가져오기logger = logging.getLogger()..