Sam Baek, The Dev's Corner

๐Ÿงพ Python poetry๋กœ ๊ฐ€์ƒํ™˜๊ฒฝ์„ ๋งŒ๋“ค์–ด๋ณด์ž

22 Oct 2023

์ข…์‚ฌ์ž๊ฐ€ ๋˜๋ฉด์„œ
์—ฌ๊ฐ„ ํ•ด๋ณด์ง€ ์•Š์•˜๋˜ ์ž๋ฐ”๋ฅผ ๊ณต๋ถ€ํ•˜๋А๋ผ
๋ธ”๋กœ๊ทธ์— ์ •๋ฆฌํ•  ์‹œ๊ฐ„์ด ์—ฌ๊ฐ„ ์‰ฝ์ง€ ์•Š์•˜๋‹ค.

์—ฌ์ „ํžˆ ์ƒˆ๋กœ์šด ๊ฒƒ์„ ์ตํžˆ๊ณ  ํ’€์–ด๊ฐ„๋‹ค๋Š” ๊ฒƒ์€
์—ฌ๋А ๋•Œ๋ณด๋‹ค ์„ค๋ ˆ๋Š” ์ผ์ด๊ธฐ์—
Python์˜ poetry๋ฅผ ์ •๋ฆฌํ•˜๊ณ ์ž ํ•œ๋‹ค.

Poetry๋ž€ ๋ฌด์—‡์ธ๊ฐ€?


ํฌํŠธ๋ฆฌ๋Š” ๊ฐ€์ƒํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.
์ž๋ฐ”๋ฅผ ์ฒ˜์Œ ๋ฐฐ์šธ ๋•Œ ๊ธฐ์–ต์ด ์ƒ์ƒํ•œ๋ฐ
๊ทธ ์ด์œ ๋Š” ํ™˜๊ฒฝ์„ค์ • ๋•Œ๋ฌธ์ด๋‹ค.

ํ†ฐ์บฃ ์„œ๋ฒ„๋ฅผ ์„ค์น˜ํ•˜๋ฉด์„œ๋ถ€ํ„ฐ
๋ฒ„์ „์„ ์„ ํƒํ•˜๊ณ , ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜๋Š” ๊ณผ์ •์ด
๋ฆฌ์•กํŠธ๋ฅผ ๊ณต๋ถ€ํ•˜๋‹ค ๋„˜์–ด๊ฐ”์„ ๋•Œ ์ƒ๋‹นํžˆ ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ค์› ๋‹ค.

ํ˜ธํ™˜์„ฑ์˜ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒƒ์ธ์ง€
๋ฒ„์ „์ด ๋‹ค๋ฅด๋‹ค๋Š” ์ด์œ ๋กœ ์™œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์ธ์ง€
๊ทธ๋ ‡๋‹ค๋ฉด, ๋ฒ„์ „์ด ๋‹ค๋ฅผ ๋•Œ๋Š” ์–ด๋–ป๊ฒŒ ์„ค์ •์„ ํ•ด์ค˜์•ผํ•˜๊ณ 
์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์œผ๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ•˜๋Š” ๊ฒƒ์ธ์ง€
์ดํ•ดํ•˜๊ณ  ์ƒ๊ฐํ•  ๊ฒƒ์ด ๋„ˆ๋ฌด๋‚˜๋„ ๋งŽ์•˜์—ˆ๋‹ค.

๊ทผ๋ฐ ์ด๊ฒŒ ์•Œ๊ณ ๋ณด๋‹ˆ ์ž๋ฐ”์— ๊ตญํ•œ๋œ ๊ฒƒ์ด ์•„๋‹ˆ๋”๋ผ
์–ด๋””์„œ๋‚˜ ๊ณ ๋ คํ•ด์•ผํ•  ๋ถ€๋ถ„์ด์—ˆ๋‹ค.
์žฅ๊ณ ๋„ ์—ฌ๋Ÿฌ ๋ฒ„์ „์„ ์ „์—ญ์œผ๋กœ ์„ค์น˜ํ•  ํ•„์š” ์—†์ด
ํฌํŠธ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ€์ƒํ™˜๊ฒฝ์„ ์ œ๊ณต๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.

ํฌํŠธ๋ฆฌ ์„ค์น˜ํ•˜๊ธฐ


Mac์€ Home brew ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์„ค์น˜ํ•˜๋Š”๊ฒŒ
ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ •์ด๋ผ๋“ ์ง€, ์„ค์น˜ ๊ณผ์ •์˜ ์˜ค๋ฅ˜๋ผ๋“ ์ง€
๋ณต์žกํ•˜์ง€ ์•Š๊ฒŒ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์–ด ๊ถŒ์žฅํ•œ๋‹ค.

brew intall poetry

Window๋Š” ํŒŒ์ด์ฌ ์„ค์น˜๊ฐ€ ๋˜์—ˆ๋‹ค๋ฉด,
ํŒŒ์ด์ฌ ๋ช…๋ น์–ด๋กœ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค.

pip install poetry
pip3 install poetry

์ด ์™ธ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ์„ค์น˜ํ•˜๋ ค๋ฉด
ํฌํŠธ๋ฆฌ ์‚ฌ์ดํŠธ์— ์ ‘์†ํ•˜์—ฌ ๋ช…๋ น์–ด๋ฅผ ์ฐธ๊ณ ํ•ด
ํ„ฐ๋ฏธ๋„์—์„œ ์„ค์น˜ํ•˜๋„๋ก ํ•œ๋‹ค.

๊ฐ€์ƒํ™˜๊ฒฝ์— ์„ค์น˜ํ•˜๊ธฐ


ํฌํŠธ๋ฆฌ๋ฅผ ์‹œ์ž‘ํ•˜๋ฉด ๊ฐ€์ƒํ™˜๊ฒฝ์„ ์„ค์ •ํ•ด์•ผํ•œ๋‹ค.

์šฐ์„  ํ”„๋กœ์ ํŠธ์˜ ํ„ฐ๋ฏธ๋„์—์„œ ์ž…๋ ฅํ•œ๋‹ค.

poetry init

licence๋Š” MIT๋กœ ์„ค์ •ํ•˜๊ณ ,
main dependencies = no
develop dependencise = no
confirm = yes
๋ฅผ ์ฐจ๋ก€๋กœ ์ž…๋ ฅํ•ด์ค€๋‹ค.
์ด๋Ÿฌ๋ฉด ๋‚˜์˜ ๊ฐ€์ƒํ™˜๊ฒฝ์ด ์ƒ์„ฑ๋œ๋‹ค.

๊ฐ€์ƒํ™˜๊ฒฝ์ด ์ƒ์„ฑ๋˜์—ˆ๋‹ค๋ฉด
django๋ฅผ ์„ค์น˜ํ•ด์ฃผ์ž

poetry add django

์ด๋ ‡๊ฒŒ ๊ฐ€์ƒํ™˜๊ฒฝ์— ์ถ”๊ฐ€ ๋œ ๊ฒƒ๋“ค์€
์ „๋ถ€ pyproject์— ๊ธฐ์ž…๋œ๋‹ค.
๋งˆ์น˜ npm์ด๋‚˜ yarn๊ณผ ๋น„์Šทํ•˜๋‹ค.

ํฌํŠธ๋ฆฌ ์‹คํ–‰ํ•˜๊ธฐ


์ด์ œ ํฌํŠธ๋ฆฌ๋กœ ๋งŒ๋“  ๊ฐ€์ƒํ™˜๊ฒฝ์„ ์‹คํ–‰ํ•ด๋ณด์ž.
๊ทธ๋Ÿฌ๊ธฐ ์œ„ํ•ด์„œ๋Š” ์šฐ์„ , ๊ฐ€์ƒํ™˜๊ฒฝ์— ์ง„์ž…ํ•ด์•ผํ•œ๋‹ค.

poetry shell

๊ฐ€์ƒํ™˜๊ฒฝ์— ์ง„์ž…ํ•˜์˜€๋‹ค๋ฉด,
์„ค์น˜ํ•œ ๊ฒƒ๋“ค์„ ์‹คํ–‰ํ•ด๋ณด์ž

์šฐ๋ฆฌ๋Š” django๋ฅผ ์„ค์น˜ํ•˜์˜€์œผ๋‹ˆ ์•„๋ž˜์ฒ˜๋Ÿผ ์ž…๋ ฅํ•ด๋ณด์ž

django-admin

์ด๋Ÿฌ๋ฉด ํ„ฐ๋ฏธ๋„์— ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ช…๋ น์–ด๋ฅผ ๋ณด์—ฌ์ค„ ๊ฒƒ์ด๋‹ค.
์—ฌ๊ธฐ์„œ project๋ฅผ ์‹œ์ž‘ํ•ด๋ณด์ž.

django-admin startproject config .

config๋Š” ํด๋”๋ช…์ด๊ณ , ๋‹ท์€ ํ˜„์žฌ ์œ„์น˜๋ฅผ ์ง€์นญํ•œ๋‹ค.
๊ทธ๋Ÿฌ๋ฉด ํ˜„์žฌ ํ”„๋กœ์ ํŠธ์— config๋ผ๋Š” ํด๋”์™€
manage.py๋ผ๋Š” ํŒŒ์ผ์ด ์ƒ์„ฑ๋  ๊ฒƒ์ด๋‹ค.

ํฌํŠธ๋ฆฌ ์ข…๋ฃŒํ•˜๊ธฐ


๊ฐ€์ƒํ™˜๊ฒฝ์„ ์‹คํ–‰ํ•˜๊ณ  ์‚ฌ์šฉ์„ ๋‹ค ํ•˜์˜€๋‹ค๋ฉด,
๊ฐ€์ƒํ™˜๊ฒฝ์„ ์ข…๋ฃŒ๋„ ํ•ด์ค˜์•ผํ•œ๋‹ค.

exit

์‹ฌํ”Œํ•˜์ง€๋งŒ, ์ด๋Ÿฌ๋ฉด ๊ฐ€์ƒํ™˜๊ฒฝ์„ ํƒˆ์ถœํ•จ์œผ๋กœ์จ
์‚ฌ์šฉ์„ ๋๋งˆ์น  ์ˆ˜ ์žˆ๋‹ค.