[Python] PyCharm์—์„œ Poetry๋ฅผ ์ด์šฉํ•œ ๋””ํŽœ๋˜์‹œ ๊ด€๋ฆฌ

๋ฐ˜์‘ํ˜•

์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์‹œ ๋””ํŽœ๋˜์‹œ์˜ ๊ด€๋ฆฌ๋Š” ์ด์ œ ์„ ํƒ์ด ์•„๋‹Œ ํ•„์ˆ˜๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์—ฌํƒœ๊นŒ์ง€ Python ์–ธ์–ด๋ฅผ ์ด์šฉํ•ด ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์„ ํ•˜์˜€์„ ๋•Œ๋Š” requirement๋ฅผ ์ด์šฉํ•˜์—ฌ ํ™˜๊ฒฝ๋ณ„๋กœ ๋””ํŽœ๋˜์‹œ ๊ด€๋ฆฌ๋ฅผ ํ–ˆ์—ˆ์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿฌ๋‚˜ requirements๋Š” ํ•˜๋‚˜์˜ ๋””ํŽœ๋˜์‹œ๋ฅผ ์„ค์น˜ํ•  ๋•Œ ํ•˜์œ„ ์š”์†Œ๊นŒ์ง€ ์„ค์น˜ํ•ด์ฃผ์ง€ ์•Š์•„ ์ข…์†๋˜๋Š” ๋””ํŽœ๋˜์‹œ๋ฅผ ์ˆ˜๋™์œผ๋กœ ์„ค์น˜ํ•ด์•ผ ํ•˜๋Š” ๋ถˆํŽธํ•จ์ด ์žˆ์Šต๋‹ˆ๋‹ค. 

 

 

 

 

Poetry

 

Poetry - Python dependency management and packaging made easy.

Intuitive CLI Poetry's commands are intuitive and easy to use, with sensible defaults while still being configurable. Soon extensible with a plugin system

python-poetry.org

Poetry๋Š” Node.js์˜ package.json๊ณผ ๋น„์Šทํ•œ ๋ชจ์Šต์œผ๋กœ ๋ช…๋ น์–ด ํ˜•ํƒœ๋กœ ๋””ํŽœ๋˜์‹œ๋ฅผ ์„ค์น˜/์‚ญ์ œ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋„๋ก ๊ตฌํ˜„๋˜์–ด ์žˆ์–ด ์„ค์น˜ํ•˜๋ ค๋Š” ๋””ํŽœ๋˜์‹œ์˜ ํ•˜์œ„ ๋””ํŽœ๋˜์‹œ๊นŒ์ง€ ์ž๋™์œผ๋กœ ์„ค์น˜ํ•ด์ฃผ๋Š” ํŽธ๋ฆฌํ•จ์„ ๋”ํ•˜์—ฌ Python ๊ฐœ๋ฐœ์‹œ ์•„์ฃผ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. Python 2.7, 3.5 ์ด์ƒ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

$ curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python -

Mac, Ubuntu์—์„œ๋Š” ์œ„์˜ ๋งํฌ๋ฅผ ์ด์šฉํ•ด ํŒŒ์ดํ”„ ๋’ค์— ์›ํ•˜๋Š” ํŒŒ์ด์ฌ์˜ ๋ฒ„์ „ ๋ช…๋ น์–ด๋ฅผ ๋„ฃ์–ด์ฃผ๋ฉด Poetry ์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

 

 

 

 

Using PyCharm

PyCharm์—์„œ Poetry๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์น˜์™€ ๋ช‡ ๊ฐ€์ง€ ์ฃผ์š” ์„ค์ •์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. 

 

๋จผ์ € ํ”Œ๋Ÿฌ๊ทธ์ธ์—์„œ Poetry ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿฌ๋ฉด New environment using ๋ฉ”๋‰ด์— Poetry๋ผ๋Š” ๋ฉ”๋‰ด๊ฐ€ ์ƒ๊ธฐ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. PyCharm์—์„œ ์ž๋™์œผ๋กœ Poetry ๋ช…๋ น์–ด์˜ ์œ„์น˜๋ฅผ ์ฐพ๊ธฐ ๋•Œ๋ฌธ์— ๋ช…๋ น์–ด ์œ„์น˜๋Š” ๋ณ„๋„๋กœ ์„ค์ •ํ•˜์ง€ ์•Š๊ณ , main.py ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์˜ต์…˜์— ์ฒดํฌ๋ฅผ ๋ˆ„๋ฅธ ํ›„ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ์„ ์ง„ํ–‰ํ•ด๋ด…์‹œ๋‹ค.

 

๊ทธ๋Ÿฌ๋ฉด ์œ„์™€ ๊ฐ™์ด ํ”„๋กœ์ ํŠธ๊ฐ€ ์ƒ์„ฑ๋˜๋ฉด์„œ pyproject.toml ํŒŒ์ผ์ด ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค. Poetry์—์„œ๋Š” pyproject.toml ํŒŒ์ผ์„ ํ†ตํ•ด ๋””ํŽœ๋˜์‹œ๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

 

ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ํ˜๊ฒจ๋งŒ ๋ด๋„ ์•„์‹œ๋‹ค์‹œํ”ผ poetry์—์„œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฐฐํฌ ํ™˜๊ฒฝ ์—†์ด Node.js์ฒ˜๋Ÿผ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ๋งŒ์„ ์œ„ํ•œ ๋””ํŽœ๋˜์‹œ๋ฅผ ๋ณ„๋„๋กœ ๋งˆ๋ จํ•ด์ค๋‹ˆ๋‹ค. 

 

 

 

 

Management Dependencies

์ด์ œ Poetry๋ฅผ ์„ค์น˜ํ–ˆ์œผ๋‹ˆ ๋””ํŽœ๋˜์‹œ๋ฅผ ์–ด๋–ป๊ฒŒ ์„ค์น˜ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š”์ง€ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

$ poetry add requests

๊ธฐ๋ณธ์ ์œผ๋กœ add ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ๋””ํŽœ๋˜์‹œ๋ฅผ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” Node.js์—์„œ ์ œ๊ณตํ•˜๋Š” yarn๊ณผ ์œ ์‚ฌํ•จ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋ฉด pyproject.toml ํŒŒ์ผ์—๋„ ๋™์ผํ•˜๊ฒŒ ์ ์šฉ๋˜๋ฉฐ ๋ฒ„์ „์„ ๋ช…์‹œํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ ์ตœ์‹  ๋ฒ„์ „์˜ ๋””ํŽœ๋˜์‹œ๋ฅผ ์„ค์น˜ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด์— ๋งž์ถฐ ํ•˜์œ„ ๋””ํŽœ๋˜์‹œ๋„ ๊ฐ™์ด ์„ค์น˜ํ•ด์ค๋‹ˆ๋‹ค.

$ poetry remove requests

๋””ํŽœ๋˜์‹œ๋ฅผ ์ œ๊ฑฐํ•  ๊ฒฝ์šฐ remove ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. 

์ด ์—ญ์‹œ ํ•˜์œ„ ๋””ํŽœ๋˜์‹œ์— ์˜ํ–ฅ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ ํ•˜์œ„ ๋””ํŽœ๋˜์‹œ์™€ ์ค‘๋ณต๋˜๋Š” ๋‹ค๋ฅธ ๋””ํŽœ๋˜์‹œ๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ ๋””ํŽœ๋˜์‹œ ์ง€์˜ฅ์— ์œ ์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

$ poetry add --dev pytest

๊ฐœ๋ฐœ ํ™˜๊ฒฝ์— ๋Œ€ํ•œ ๋””ํŽœ๋˜์‹œ๋ฅผ ์„ค์ •ํ•  ๋• --dev๋ผ๋Š” ์ถ”๊ฐ€ ์ธ์ž๋ฅผ ๋ถ™์—ฌ์ค๋‹ˆ๋‹ค.

์ œ๊ฑฐํ•  ๋•Œ๋„ ๋™์ผํ•˜๊ฒŒ remove ๋ช…๋ น์–ด๋ฅผ ์ฃผ๊ณ  --dev ์ธ์ž๋ฅผ ์ฃผ๋ฉด dev dependeny์—์„œ ์›ํ•˜๋Š” ํŒจํ‚ค์ง€๊ฐ€ ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค.

 

 

 

 

 

Architecture

Poetry๋ฅผ ๊ณ„์† ์ด์šฉํ•˜๋ฉด์„œ ์ด๋Ÿฌํ•œ ์˜๋ฌธ์ ์ด ๋“ค ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ธฐ์กด์˜ PyCharm์—์„œ requirements๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” Virtualenv๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๋งˆ๋‹ค ๋‹ค๋ฅด๊ฒŒ ๋””ํŽœ๋˜์‹œ๋ฅผ ์ฃผ๊ธฐ ์œ„ํ•ด ํ™˜๊ฒฝ์„ ๋‚˜๋ˆ„์—ˆ๊ณ , ์ด ํ™˜๊ฒฝ์€ ํ”„๋กœ์ ํŠธ ์ƒ์œ„ ํด๋”์— venv ํด๋”๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. 

 

๊ทธ๋Ÿฐ๋ฐ, Poetry๋กœ ํ™˜๊ฒฝ ์„ค์ •์„ ํ•œ ๋’ค, PyCharm ์ƒ์œ„ ํ”„๋กœ์ ํŠธ์— venv ํด๋”๊ฐ€ ์–ด๋””์—๋„ ๋ณด์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์•„๋งˆ ์ด ๋ถ€๋ถ„์„ ์ธ์ง€ํ•˜์‹  ๋ถ„์ด์‹œ๋ผ๋ฉด Poetry๋กœ ๋””ํŽœ๋˜์‹œ ๊ด€๋ฆฌํ•  ๋•Œ ๋กœ์ปฌ ํ™˜๊ฒฝ์„ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์‹ค ์ˆ˜๋„ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿฌ๋‚˜ ์œ„์—์„œ ์Šคํฌ๋ฆฐ์ƒท์„ ์ž์„ธํžˆ ๋ณด์‹œ๋ฉด External Libraries ๋ถ€๋ถ„์— Poetry ํ™˜๊ฒฝ๊ณผ ํ•จ๊ป˜ ํ”„๋กœ์ ํŠธ ์ด๋ฆ„์ด ์ ํ˜€์žˆ๋Š” ๊ฒƒ์„ ๋ณด์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ ๊ฒฝ๋กœ์—๋Š” virtualenv ํ™˜๊ฒฝ์ด ์–ด๋””์— ์„ค์น˜๊ฐ€ ๋˜์–ด ์žˆ๋Š”์ง€๊ฐ€ ๋‚˜์™€ ์žˆ๋Š”๋ฐ์š”. ์ด์ฒ˜๋Ÿผ Poetry๋„ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋””ํŽœ๋˜์‹œ ๊ด€๋ฆฌ๋ฅผ Virtualenv๋ฅผ ์ƒ์„ฑํ•œ ๋’ค ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

 

requirements๋ž‘ ๋‹ค๋ฅธ ์ ์€ ํ”„๋กœ์ ํŠธ์™€ venv์˜ ์œ„์น˜๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅธ ์œ„์น˜์— ์žˆ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋˜์–ด ์žˆ์Œ์œผ๋กœ์จ Git์ด๋‚˜ SVN ๋“ฑ๊ณผ ๊ฐ™์€ ํ˜•์ƒ ๊ด€๋ฆฌ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๋ฒ„์ „ ๊ด€๋ฆฌ์‹œ ์‹ค์ˆ˜๋กœ ๊ฐ€์ƒ ํ™˜๊ฒฝ๊นŒ์ง€ ์—…๋กœ๋“œ ๋˜๋Š” ์‹ค์ˆ˜๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ Poetry ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ†ตํ•ด ์ž๋™์œผ๋กœ ํ„ฐ๋ฏธ๋„ ์‹คํ–‰์‹œ ๊ฐ€์ƒ ํ™˜๊ฒฝ์œผ๋กœ ์‰˜์ด ๋งž์ถฐ์ง€๊ธฐ ๋•Œ๋ฌธ์— ๊ฐœ๋ฐœ์ž๊ฐ€ ๋””ํŽœ๋˜์‹œ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด ์‰˜์„ ์ ‘์†ํ•˜๋Š” ๋“ฑ์„ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚ด ํ”„๋กœ์ ํŠธ ํ™˜๊ฒฝ์— ์–ด๋–ค ํŒจํ‚ค์ง€๊ฐ€ ์„ค์น˜ ๋˜์—ˆ๋Š”์ง€(ํ•˜์œ„ ๋””ํŽœ๋˜์‹œ ํฌํ•จ) ํ™•์ธํ•˜๊ณ  ์‹ถ์„ ๊ฒฝ์šฐ [File] -> [Settings]๋ฅผ ํด๋ฆญํ•˜์—ฌ ์ขŒ์ธก ์‚ฌ์ด๋“œ๋ฐ”์—์„œ Project Python Interpreter๋ฅผ ํด๋ฆญํ•˜๋ฉด ์„ค์น˜๋œ ๋””ํŽœ๋˜์‹œ๋ฅผ ํ™•์ธํ•จ๊ณผ ๋™์‹œ์— Poetry ํ™˜๊ฒฝ์„ ์ƒˆ๋กœ ๋งŒ๋“ค๊ณ  ์„ค์ •ํ•˜๋Š” ๋“ฑ ๊ณ ๊ธ‰์ ์ธ ์˜ต์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 

 

 

How to deploy

๋˜ ๋‹ค๋ฅธ ์˜๋ฌธ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๋ฐฐํฌ๋Š” ์–ด๋–ค์‹์œผ๋กœ ํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”? ๊ธฐ๋ณธ์ ์œผ๋กœ Virtualenv๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ๋ฐฐํฌ์‹œ ๋‚ด๊ฐ€ ์ˆ˜๋™์œผ๋กœ poetry ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•˜์—ฌ Virtualenv๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•˜๋Š” ๊ฒƒ์ผ๊นŒ์š”? PyCharm์—์„œ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ด์šฉํ•˜์—ฌ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•˜์˜€์ง€๋งŒ ๋ฐฐํฌ๋ฅผ ํ•ด์•ผํ•  ๋•Œ ์ด๋Ÿฐ ๊ณผ์ •์€ ๋ฒˆ๊ฑฐ๋กญ๊ฒ ์ฃ ?

 

๊ทธ๋Ÿด ๋• Poetry ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๊ธฐ๋ณธ ์˜ต์…˜์—์„œ virtualenv๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ์œผ๋กœ ์„ค์ •ํ•ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

$ poetry config virtualenvs.create false

poetry config ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•˜๋ฉด ๊ฐ€์ƒ ํ™˜๊ฒฝ ์ƒ์„ฑ ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ(false)๋กœ ๋ฐ”๊พธ๋ฉด ๋ชจ๋“  ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•ด์„œ Poetry ํ™˜๊ฒฝ ์‚ฌ์šฉ์‹œ ๋กœ์ปฌ ํ™˜๊ฒฝ์˜ Python์—์„œ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด ์˜ต์…˜์€ ๋ฐฐํฌํ•  ๋•Œ๋งŒ ์‚ฌ์šฉํ•  ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ตœ๊ทผ์—๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ด์šฉํ•œ ๋ฐฐํฌ ํ™˜๊ฒฝ์ด ๊ถŒ์žฅ๋˜๊ณ , ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿฌ๋ฉด Docker๋ฅผ ์˜ˆ์‹œ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฐฐํฌํ•  ๋•Œ ์–ด๋–ค์‹์œผ๋กœ ๊ฐ€๋Š” ๊ฒƒ์ด ์ข‹์„๊นŒ์š”?

FROM python:3
MAINTAINER N.K

WORKDIR /usr/src/app

RUN pip install poetry
RUN poetry config virtualenvs.create false

COPY . .

RUN poetry install --no-dev

COPY . .
# CMD []

poetry๋ฅผ ์„ค์น˜ํ•  ์‹œ์—๋Š” pip๋กœ๋„ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— Python์˜ ๊ธฐ๋ณธ ์ปจํ…Œ์ด๋„ˆ ํ™˜๊ฒฝ์—์„œ pip๋กœ poetry๋ฅผ ์„ค์น˜ํ•˜๊ณ , ๊ฐ€์ƒ ํ™˜๊ฒฝ ์„ค์น˜ ์˜ต์…˜์„ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  pyproject.toml์— ์„ค์ •๋œ ๋””ํŽœ๋˜์‹œ๋ฅผ ์ „์ฒด ์„ค์น˜ํ•  ๊ฒฝ์šฐ poetry install ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐœ๋ฐœ ๋””ํŽœ๋˜์‹œ๋ฅผ ์ œ์™ธํ•˜๊ธฐ ์œ„ํ•ด --no-dev ์ธ์ž๊นŒ์ง€ ์ถ”๊ฐ€๋กœ ์„ค์ •ํ•˜๋ฉด ๊น”๋”ํ•œ ๋ฐฐํฌ ํ™˜๊ฒฝ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 

 

๋งˆ์น˜๋ฉฐ..

์ตœ๊ทผ Python์„ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋ฉด์„œ ๋””ํŽœ๋˜์‹œ ๊ด€๋ฆฌ์— ๋งŽ์€ ๋ถˆํŽธํ•จ์„ ๋Š๊ผˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์กด์—๋„ requirements๋กœ ์ž˜ ์‚ฌ์šฉํ–ˆ์—ˆ๋Š”๋ฐ ์œ ๋‚œํžˆ ์ตœ๊ทผ๋“ค์–ด ๊ทธ๋Ÿฐ ๋ถˆํŽธํ•จ์„ ์ž์ฃผ ๋Š๋ผ๊ฒŒ ๋œ ๊ฒƒ์€ ์Šคํฌ๋ฆฝํŠธ ๊ฐœ๋ฐœ์„ ๋„ฃ์–ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ ˆ๋ฒจ์˜ ๊ฐœ๋ฐœ์„ ํ•˜๊ฒŒ ๋จ์œผ๋กœ์จ ๊ทธ๋ ‡๊ฒŒ ๋˜์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

 

๊ฐœ์ธ์ ์œผ๋กœ Poetry๋ฅผ ๋””ํŽœ๋˜์‹œ ๊ด€๋ฆฌ์— ์‚ฌ์šฉํ•จ์œผ๋กœ์จ ํŽธ๋ฆฌํ–ˆ๋˜ ์ ์€ ํ•˜์œ„ ๋””ํŽœ๋˜์‹œ ๊ด€๋ฆฌ๋„ ์žˆ์—ˆ์ง€๋งŒ ๋ฌด์—‡๋ณด๋‹ค๋„ ๋””ํŽœ๋˜์‹œ๊ฐ€ ํ˜ผ๋™์ด ๋ฐœ์ƒ๋˜์—ˆ์„ ๋•Œ ์ƒˆ๋กœ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•˜๊ณ  ๋‹ค์‹œ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ์‰ฌ์› ๋‹ค๋Š” ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๋””ํŽœ๋˜์‹œ๋ฅผ ๊ด€๋ฆฌํ•˜๋‹ค๋ณด๋ฉด ๋‹ค๋ฅธ ๋””ํŽœ๋˜์‹œ์™€ ํ˜ผ์„ ์ด ๋ฐœ์ƒํ•˜์—ฌ ์ œ๋Œ€๋กœ ์‹คํ–‰๋˜๋˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๊ฐ‘์ž๊ธฐ ์‹คํ–‰๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ๊ฐ€ ๊ฐ„ํ˜น ๋ฐœ์ƒํ•˜๊ฒŒ ๋˜๋Š”๋ฐ์š”. requirements๋ฅผ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ๋Š” venv๋ฅผ ์ œ๊ฑฐํ•˜๊ณ , ๋‹ค์‹œ venv๊นŒ์ง€ ์žฌ ๊ตฌ์ถ•ํ•ด์•ผํ•˜๋Š” ๋ถˆํŽธํ•จ์„ ํ˜ธ์†Œํ•˜๊ณ , ๊ฑฐ๊ธฐ์— ๋”๋ถˆ์–ด PyCharm์—์„œ ํ•ด๋‹น venv ์ •๋ณด๊นŒ์ง€ ์ˆ˜๋™์œผ๋กœ ๋ฐ”๊ฟ”์•ผํ•œ๋‹ค๋Š” ์ ์€ ๊ทธ์•ผ๋ง๋กœ ์ง€์˜ฅ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿฌ๋‚˜ Poetry๋Š” ์ƒˆ๋กœ์šด ํ™˜๊ฒฝ์„ ์„ค์ •ํ•˜๋Š” ๋ฐ๋„ PyCharm์— ๋ถ™์–ด ์žˆ๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ๋“ค์ด ์นœ์ ˆํ•˜๊ฒŒ ์›ํ•˜๋Š”๋Œ€๋กœ ๋งŒ๋“ค์–ด์ฃผ๊ณ  ํ”„๋กœ์ ํŠธ ์„ค์ •๋„ ์‰ฝ๊ฒŒ ํด๋ฆญ๋งŒ์œผ๋กœ ์ด๋ค„์ง€๋Š” ๋ถ€๋ถ„์ด ๋งŽ์•˜์œผ๋ฉฐ ์ด๋Ÿฐ ๊ธ‰์ƒํ™ฉ์„ ๋Œ€๋น„ํ•  ์ˆ˜ ์žˆ๋Š” ์ฐจ์„ ์ฑ…์ด ์ €๋ฅผ Poetry๋กœ ์ด๋„๋Š” ๋ฐ ์ฃผ์š”์ ์ด ๋˜์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

 

 

 

๋ฐ˜์‘ํ˜•
TAGS.

Tistory Comments