Skip to content

Commit c85c1f9

Browse files
committed
Create Appendix.md
1 parent da21096 commit c85c1f9

File tree

1 file changed

+81
-0
lines changed

1 file changed

+81
-0
lines changed

docs/Appendix.md

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
# **Appendix: Pythonic Best Practices**
2+
3+
이 문서는 Python 프로젝트를 보다 효과적으로 관리하고 Pythonic한 코드를 작성하는 데 도움이 되는 여러 가지 권장 사항을 다룬다.
4+
5+
## **1. Python 버전 및 프로젝트 관리 도구 사용**
6+
7+
Python 프로젝트를 효율적으로 관리하려면 **Poetry** 또는 **UV**와 같은 Python 버전 및 패키지 관리 도구를 사용하는 것이 좋다.
8+
9+
- **Poetry**: 의존성 관리 및 가상 환경을 손쉽게 설정할 수 있으며, `pyproject.toml`을 활용하여 프로젝트 설정을 간결하게 유지할 수 있다.
10+
- **UV**: 빠르고 가벼운 패키지 관리 도구로, 기존 패키지 관리자보다 빠른 설치 속도를 제공한다.
11+
12+
### 사용 예시
13+
```bash
14+
poetry init # 새 프로젝트 초기화
15+
poetry add requests # 패키지 추가
16+
poetry run python main.py # 가상 환경에서 실행
17+
```
18+
19+
## **2. 타입 힌트(Type Hints) 활용**
20+
21+
Python은 동적 타입 언어이지만, **타입 힌트를 활용하면 코드의 가독성을 높이고 버그를 줄일 수 있다.**
22+
Python 3.5에서 도입.
23+
24+
### 타입 힌트 적용 예시
25+
```python
26+
def add(x: int, y: int) -> int:
27+
return x + y
28+
29+
def fetch_data(url: str) -> dict[str, str]:
30+
return {"data": "example"}
31+
```
32+
33+
- 타입 힌트를 사용하면 코드 자동 완성과 정적 분석이 더 효과적으로 동작한다.
34+
- `mypy` 같은 정적 분석 도구를 사용하면 타입 관련 오류를 미리 감지할 수 있다.
35+
36+
## **3. 코드 스타일 유지: Linter 및 Formatter 사용**
37+
38+
일관된 코드 스타일을 유지하려면 **Linter****Formatter**를 활용하는 것이 중요하다.
39+
40+
- **Linter (예: flake8, pylint)**: 코드의 잠재적인 오류와 스타일 위반 사항을 자동으로 감지한다.
41+
- **Formatter (예: black, ruff)**: 코드 스타일을 자동으로 일관되게 유지해준다.
42+
43+
### 사용 예시
44+
```bash
45+
pip install black flake8
46+
black my_script.py # 코드 자동 포맷팅
47+
flake8 my_script.py # 코드 스타일 검사
48+
```
49+
50+
## 4. `unittest` 대신 `pytest` 사용
51+
52+
Python의 기본 테스트 프레임워크인 `unittest`보다 **`pytest`**를 사용하는 것이 더 간편하고 강력하다.
53+
54+
### `pytest` 사용 예시
55+
```python
56+
# test_example.py
57+
58+
def add(x: int, y: int) -> int:
59+
return x + y
60+
61+
def test_add():
62+
assert add(2, 3) == 5
63+
```
64+
```bash
65+
pytest test_example.py # 테스트 실행
66+
```
67+
68+
- `pytest``assert` 문을 활용하여 간결한 테스트 작성이 가능하다.
69+
- 다양한 플러그인을 통해 테스트 기능을 확장할 수 있다.
70+
71+
---
72+
73+
Python 프로젝트를 보다 Pythonic하게 유지하기 위해 다음과 같은 권장 사항을 따르면 좋다.
74+
75+
- Poetry 또는 UV를 사용하여 Python 버전과 의존성을 관리한다.
76+
- 타입 힌트를 활용하여 코드의 가독성을 높인다.
77+
- Linter와 Formatter를 사용하여 코드 스타일을 유지한다.
78+
- `unittest`보다 `pytest`를 사용하여 간결한 테스트 코드를 작성한다.
79+
- Pythonic한 코딩 스타일을 유지하기 위해 리스트 컴프리헨션, f-string, 컨텍스트 매니저 등을 적극적으로 활용한다.
80+
81+
이러한 원칙을 따르면 코드의 유지보수성이 향상되고, 협업이 더욱 원활해질 것이다.

0 commit comments

Comments
 (0)