<aside>
</aside>
매번 poetry run uvicorn todo_api.main:app --reload 나 poetry run pytest 처럼 긴 명령어를 입력하는 거, 조금 귀찮지 않으셨나요? 😅 오늘은 이런 반복적인 작업들을 poe serve, poe test 처럼 짧고 기억하기 쉬운 '별명'으로 만들어주는 '태스크 러너(Task Runner)'를 도입해 볼 거예요. 그중에서도 Poetry와 찰떡궁합을 자랑하는 Poe the Poet을 만나보겠습니다!
poethepoet을 dev 그룹 의존성으로 추가할 수 있습니다.pyproject.toml 파일의 [tool.poe.tasks] 섹션에 서버 실행, 테스트 등의 작업을 태스크로 등록할 수 있습니다.poetry run poe <태스크_이름> 형태로 등록한 태스크를 실행할 수 있습니다.이번 챕터에서는 코드 변경은 없고, pyproject.toml 파일에 Poe the Poet을 위한 설정이 추가됩니다.
pyproject.toml (추가/변경되는 부분 — PEP 621 형식)
# ... [project] 섹션 등은 생략 ...
[dependency-groups]
dev = [
"pytest >=8.2,<9",
"httpx >=0.27,<0.29",
"pytest-asyncio >=0.23,<0.24",
"poethepoet >=0.35,<0.36" # <-- poe the poet 추가!
]
# Poe the Poet를 위한 태스크 정의 섹션
[tool.poe.tasks]
serve = "fastapi dev src/todo_api/main.py"
test = "pytest -q"
💡 -q 옵션은 뭐죠?: pytest -q는 테스트 실행 시 나오는 불필요한 정보(버전, 플러그인 등)를 줄이고 결과만 깔끔하게 보여주는 'quiet' 모드 옵션입니다.
태스크 러너는 프로젝트에서 자주 사용하는 여러 명령어들을 간단한 이름(태스크)으로 정의하고 실행할 수 있게 해주는 도구입니다.