-
Notifications
You must be signed in to change notification settings - Fork 2
Open
Labels
enhancementNew feature or requestNew feature or request
Description
기능 설명 (Description)
Python에서 문자열을 포매팅하는 다양한 방식을 한곳에 정리하고, 각 방식의 문법·예시·버전 호환성·성능을 표로 비교·분석하려고 합니다.
대표적으로 % 연산자, str.format(), f-string, Template 문자열 등을 다룰 계획입니다.
왜 필요한가? (Why do we need it?)
- 버전 호환성: Python 2.x/3.x별로 지원 여부와 차이가 존재
- 협업 효율: 팀 내에서 통일된 포매팅 가이드가 있으면 코드 가독성과 유지보수성 향상
- 성능 분석: 간단한 벤치마크(benchmark) 결과를 통해 어떤 포매팅 방식이 상황에 따라 유리한지 파악 가능
- 학습 자료: 새로 합류하는 팀원들이 문자열 포매팅 기법을 빠르게 익힐 수 있도록 참고 문서로 활용
할 일 (To-do List)
-
%연산자,str.format(), f-string, Template 문자열의 문법·사용 예시 정리 - Python 버전별 호환성 (2.7, 3.x) 표 작성
- 각 방식의 장단점(가독성, 보안성, 확장성 등) 정리
- 성능 분석(Benchmark) 정보 추가: 예) 10만~100만 회 반복 시 소요 시간 비교
- README 또는 Wiki 페이지로 최종 결과물 공개
- 관련 코멘트 및 추가 자료(공식 문서, 커뮤니티 링크 등)도 모아서 함께 정리
고려 사항 (Considerations)
- Python 3.6 이상에서 f-string이 도입되어, 3.5 이하 버전은 지원 X
- Python 2.x 환경에서도 여전히 유지보수를 진행하는 팀이 있을 수 있으므로
% 연산자나str.format()문법 소개 필요 - 성능 테스트는 단순한 timeit 모듈 등을 활용한 간단 벤치마크로 진행 예정
- 형식 문자열을 “보안 취약점”이나 “코드 인젝션” 관점에서도 주의할 필요가 있음(
Template문자열이 상대적으로 안전)
추가 참고 사항 (Additional Context)
아래는 간단한 버전별 지원 및 사용 예시를 표로 정리한 예시입니다. 추후 문서 작성 시 참고해 주세요.
| 포매팅 방식 | 예시 코드 | 지원 버전 | 장단점 |
|---|---|---|---|
% 연산자 |
"%s가 %d개 있습니다." % ("사과", 3) |
Python 2.7 이상 | 장점: 오랜 역사가 있어 Python 2에서 호환성 높음 단점: 복잡한 포맷 시 가독성 떨어짐 |
str.format() |
"{}가 {}개 있습니다.".format("사과", 3) |
Python 2.7 이상, 3.x | 장점: 변수 개수나 순서가 유연, 가독성 개선 단점: Python 3.6 이후 f-string에 비해 다소 장황 |
| f-string | f"{fruit}가 {count}개 있습니다." |
Python 3.6 이상 | 장점: 직관적이고 가독성 뛰어남, 성능 좋음 단점: 3.6 미만 버전 호환성 없음 |
Template |
t = Template("$fruit 가 $count 개 있습니다.") | Python 2.7 이상, 3.x | 장점: 문자열 템플릿을 분리해둬서 보안/재사용성 유리 단점: 기본 문법이 간단치 않고, 특정 상황(HTML 템플릿 등)에 많이 쓰임 |
문서 완성 후 팀 가이드에 적용하거나, README/Wiki로 배포할 계획입니다.
추가 아이디어나 참고할 만한 자료가 있다면 코멘트로 공유 부탁드립니다.
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request