11. ํญ์ ๋ง๋ค๊ณ ๋๋ฉด ์กฐ๊ธ์ฉ ์์ฝ๋ค: ๊ณ์๋๋ ๋ค๋ฌ๊ธฐ
๋ค์ด๊ฐ๋ฉฐ: ๊ฐ๋ฐ์์ ์์ฌ์ ๋์ด ์๊ณ , ์์ ์ ๊ณ์๋๋ค
์ง๋ 10ํธ์์ Jinja2๋ฅผ ํ์ฉํด ์์ ์น์งํ ์ธ๋ค์ผ ๊ฒ์ํ์ ๋ง๋ค๊ณ , ํ์ด์ง๋ค์ด์ ๊ณผ ์ถ์ฒ์ ๊ธฐ๋ฅ๊น์ง ์๋ฒฝํ๊ฒ ์ฐ๋ํ์ต๋๋ค. ์ง์ ๋ง๋ ์น์ฌ์ดํธ์ ์ ์ํด์ ์ฌ์ง๋ค์ด ํ์ผ์ฒ๋ผ ์์๊ฒ ์ ๋ ฌ๋ ๋ชจ์ต์ ๋ณด๊ณ ์์ผ๋ ๊ทธ๋์์ ๊ณ ์์ด ์น ์ป๊ฒจ ๋ด๋ ค๊ฐ๋ ๋ฏํ์ต๋๋ค.
"๋๋์ด ์์ฑ์ด๊ตฌ๋!" ํ๊ณ ๋ ๋ค๋ฆฌ ๋ป๊ณ ์ ์ค ์์๋๋ฐ, ์ฌ๋์ ์์ฌ์ด๋ ์ฐธ ๋ฌด์ญ์ต๋๋ค. ํ๋ฃจ ์ดํ ์ฌ์ดํธ๋ฅผ ๋ค์ฌ๋ค๋ณด๊ณ ์ด๊ฒ์ ๊ฒ ํ ์คํธ๋ฅผ ํ๋ค ๋ณด๋, ์ฒ์์ ๋ณด์ด์ง ์๋ ๊ฑฐ์ฌ๋ฆฌ๋ ๋ถ๋ถ๋ค์ด ํ๋๋ ๋์ ๋ฐํ๊ธฐ ์์ํ์ต๋๋ค. ๊ธฐ๋ฅ์ด '์๋'ํ๋ ๊ฒ์ ๋์ด, ์ ์ ๋ค์ด ์ค์ ๋ก '์ฌ๋ฏธ์๊ฒ' ์ฆ๊ธธ ์ ์๋ ํ๊ฒฝ์ ๋ง๋ค๋ ค๋ฉด ๋๋์ ์ธ ๋ค๋ฌ๊ธฐ ์์ ์ด ํ์ํ์ต๋๋ค. ์ค๋ ์ด์ผ๊ธฐ๋ ๊ทธ ์์ฌ์์ ์ฑ์๋๊ฐ๋ ์น์ดํ ์ ์ง๋ณด์์ ๊ณ ๋ํ์ ๊ธฐ๋ก์ ๋๋ค.
1. ๊ณ ์ธ๋ฌผ์ ๋ง์๋ผ: ์ต๊ทผ 30์ผ ๋ฐ์ดํฐ ๊ธฐ๋ฐ ์๊ณ ๋ฆฌ์ฆ ๋ญํน ์์คํ
๊ฐ์ฅ ๋จผ์ ์ ๋์ ๋ ๋ฌธ์ ์ ์ ์ง๋๋ฒ ์ผ์ฌ ์ฐจ๊ฒ ๋ง๋ค์๋ **'์ถ์ฒ์/์กฐํ์ ๋ญํน ๋ณด๋'**์์ต๋๋ค.
์ฒ์์๋ ๋จ์ํ ๋์ ์ถ์ฒ์๊ฐ ๊ฐ์ฅ ๋ง์ ๊ฒ์๊ธ์ 1์๋ถํฐ ์์๋๋ก ๋ณด์ฌ์ฃผ๋๋ก ์ฝ๋๋ฅผ ์งฐ์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ๋ฉฐ์น ์ง๋์ง ์์ ์น๋ช ์ ์ธ ๋จ์ ์ ๋ฐ๊ฒฌํ์ต๋๋ค. ์์ ์ ์ฌ๋ผ์์ ์ด๋ฏธ ์ถ์ฒ์ ์๋ฉ ๋ฐ์ ์ด๋ฅธ๋ฐ '๊ณ ์ธ๋ฌผ' ๊ฒ์๊ธ๋ค์ด ๋ญํน ์์๊ถ์ ์์ํ ๋ ์ํด ๋ฒ๋ฆฌ๋ ํ์์ด ๋ฐ์ํ ๊ฒ์ ๋๋ค.
ํนํ ์ ๊ฐ ๊ตฌ์ํ ์ปค๋ฎค๋ํฐ๋ ์ธ์คํ๊ทธ๋จ ๋ฑ์์ ํ์ ๊ฐ ๋๋ ์ต์ ๋ฏธ๋์ด๋ ํซํ ์ฌ์ง๋ค์ด ์ค์๊ฐ์ผ๋ก ์ ๋ก๋๋์ด์ผ ํ๋ ๊ณณ์ ๋๋ค. ์ด์ ์ฌ๋ผ์จ ์์ฒญ๋ ํ์ ์ ์ ๊ท ๊ฒ์๊ธ์ด, 6๊ฐ์ ์ ์ ์ฌ๋ผ์จ ํ๋ฒํ ๊ธ์ ๋์ ์ถ์ฒ์๋ฅผ ์ด๊ธฐ์ง ๋ชปํด ๋ญํน ๋ณด๋์ ๋ ธ์ถ์กฐ์ฐจ ๋์ง ์๋๋ค๋ฉด ์ปค๋ฎค๋ํฐ์ ์ญ๋์ฑ์ ์์ ํ ์ฃฝ์ด๋ฒ๋ฆด ๊ฒ์ด ๋ปํ์ต๋๋ค.
๊ทธ๋์ SQLAlchemy ์ฝ๋๋ฅผ ๋๋์ ์ผ๋ก ๋ฏ์ด๊ณ ์ณค์ต๋๋ค. ์ ์ฒด ๋์ ๋ฐ์ดํฐ๊ฐ ์๋๋ผ, **'์ค๋์ ๊ธฐ์ค์ผ๋ก ์ ํํ ์ต๊ทผ 30์ผ ์ด๋ด์ ์์ฑ๋ ๊ฒ์๊ธ'**๋ค๋ง ํํฐ๋ง(Filter)ํ์ฌ ๊ทธ ์์์ ์ถ์ฒ์์ ์กฐํ์ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ฆฌ๋๋ก ๋ก์ง์ ๋ณ๊ฒฝํ์ต๋๋ค. ํ์ด์ฌ์ <code>datetime</code> ๋ชจ๋์ ์ด์ฉํด <code>ํ์ฌ ์๊ฐ - 30์ผ</code>์ ๊ณ์ฐํ๊ณ , ์ด ์กฐ๊ฑด์ ๋ง๋ ์ฑ์ฑํ ๋ฐ์ดํฐ๋ค๋ง ๋ญํน ๋ณด๋์ ์ฌ๋ผ์ค๋๋ก ์ค์ ํ ๊ฒ์ด์ฃ . ์ด์ ์ ์น์ฌ์ดํธ์ ๋ญํน ๋ณด๋๋ ๋งค์ผ๋งค์ผ ์๋ก์ด ํธ๋ ๋๋ฅผ ๋ฐ์ํ๋ ์ง์ง 'ํซํ'๋ก ๊ฑฐ๋ญ๋๊ฒ ๋์์ต๋๋ค.
2. ์ฌ์ฅ์ด ์ฒ ๋ : VS Code CSS ๋ฌธ๋ฒ ์ค๋ฅ(๋นจ๊ฐ์ค)์ ์ง์ค

<๋ ๊ฐ์ ์ด๋ณด๋ ์๋ฌ๋ง ๋ด๋ ์์๋์ด ํ๋ฅธ๋ค.>
๊ฒ์ํ๊ณผ ๋ญํน ๋ณด๋์ ๋์์ธ(UI)์ ์กฐ๊ธ ๋ ์ธ๋ จ๋๊ฒ ๋ค๋ฌ๊ธฐ ์ํด VS Code ์๋ํฐ์์ CSS ์ฝ๋๋ฅผ ํ์ฐธ ๋ง์ง๋ ์ค์ด์์ต๋๋ค. ์ธ๋ค์ผ ์ด๋ฏธ์ง ์์ ๋ง์ฐ์ค๋ฅผ ์ฌ๋ ธ์ ๋ ์์ฐ์ค๋ฝ๊ฒ ์ด๋์์ง๋ ํธ๋ฒ(Hover) ํจ๊ณผ๋ฅผ ๋ฃ์ผ๋ ค๊ณ ์ฝ๋๋ฅผ ์์ฑํ๋๋ฐ, ๊ฐ์๊ธฐ VS Code ํ๋ฉด์ ์ด๋ฒํ **'๋นจ๊ฐ์ค(Syntax Error)'**๋ค์ด ์ซ ๊ทธ์ด์ง๊ธฐ ์์ํ์ต๋๋ค.
"์๋ฒ๊ฐ ๋ ํฐ์ง๋ ๊ฑด๊ฐ?!" ์๊ฐ ์์๋์ด ํ ๋ฌ์ต๋๋ค. ์์ ์๋ํ๋ ์ค ์์ ์ฝ๋ ํ ์ค ์๋ชป ๋ฃ์๋ค๊ฐ ์ฌ์ดํธ๊ฐ ๋ ์๊ฐ ํธ๋ผ์ฐ๋ง๊ฐ ๋ฐ๋ํ ๊ฒ์ด์ฃ .
๋จ๋ฆฌ๋ ์์ผ๋ก ์์ธ์ ๋ถ์ํด ๋ณด๋, ์ด ๋นจ๊ฐ์ค์ ์ง์ง ์๋ฌ๊ฐ ์๋์์ต๋๋ค. ์ ๋ HTML ํ์ผ ์์ <code><style></code> ํ๊ทธ์ ํ์ด์ฌ ๋ฐฑ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ก ๊ฝ์ ๋ฃ๊ธฐ ์ํด <code>background-image: url('{{ post.image_url }}');</code> ์ฒ๋ผ Jinja2 ํ ํ๋ฆฟ ๋ฌธ๋ฒ์ ์์ด์ ์ฌ์ฉํ๊ณ ์์์ต๋๋ค. ๊ทธ๋ฐ๋ฐ VS Code์ ๋ด์ฅ๋ ๊ธฐ๋ณธ CSS ๊ฒ์ฌ๊ธฐ(Linter)๋ ์ด <code>{{ }}</code>๋ผ๋ ๋ฏ์ ๊ธฐํธ๋ฅผ ์์ํ CSS ๋ฌธ๋ฒ์ผ๋ก ์ธ์ํ์ง ๋ชปํ๊ณ "๋ฌธ๋ฒ์ด ํ๋ ธ๋ค"๋ผ๋ฉฐ ์ต์ธํ ๋นจ๊ฐ์ค์ ๊ทธ์ด๋๊ณ ์์๋ ๊ฒ์ ๋๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก, ์น ๋ธ๋ผ์ฐ์ ์์ ์ฌ์ดํธ๋ฅผ ์๋ก๊ณ ์นจ ํ์ ๋ ๋์์ธ์ด ์ฐฐ๋ก๊ฐ์ด ์ ์ ์ฉ๋์ด ๋์จ๋ค๋ฉด ์ด ๋นจ๊ฐ์ค์ ๊ณผ๊ฐํ๊ฒ ๋ฌด์ํด๋ ๋๋ ๊ฒฝ๊ณ ์์ต๋๋ค. ์๋ํฐ์ ๊ฒฝ๊ณ ์ ์ซ์ง(?) ์๊ณ ๋์ฌ ์๊ฒ ๊ฐ๋ฐ์ ์ด์ด๋๊ฐ ์ ์๋ ๊นก์ด ์กฐ๊ธ ์๊ฒผ๋ฌ๊น์?
3. ์๋ฒ ํญํ ๋ฐฉ์ง ์์ํ: Git๊ณผ .gitignore๋ฅผ ํ์ฉํ ๋ฏธ๋์ด ๋ฐฑ์ ์ ์ธํ๊ธฐ

<์ฝ๋๊ฐ ์๋์ด๋ ์ธ์ ๋ค ๋ฐฑ์ ๊ฐ๋ฅํ ๋ ๋ ํ Git>
๊ธฐ๋ฅ์ด ํ๋๋ ๊ณ ๋ํ๋ ์๋ก, ์ ๋ ธํธ๋ถ ์๋ฒ์ ๋ด๊ธด ์ด ํ์ด์ฌ ์ฝ๋๋ค์ด ๋๋ฌด๋๋ ์์คํด์ก์ต๋๋ค. ๋ง์ฝ ๋ ธํธ๋ถ ํ๋๋์คํฌ๊ฐ ๋ ์๊ฐ๋ฉด ์ด ํผ ๊ฐ์ ์ฝ๋๋ค์ ๋ค ์๋๋ค๋ ์๊ฐ์ ์์ฐํด์ก๊ณ , ๋๋์ด ๋ฏธ๋ค๋์๋ Git(๊น)๊ณผ GitHub๋ฅผ ๋์ ํ์ฌ ์๋ฒ ์ฝ๋๋ฅผ ์์ ํ๊ฒ ๋ฐฑ์ ํ๊ธฐ๋ก ๊ฒฐ์ฌํ์ต๋๋ค.
๊ทธ๋ฐ๋ฐ ์ฌ๊ธฐ์ ์์ฃผ ํฐ ๋ฌธ์ ๊ฐ ํ๋ ์์์ต๋๋ค. ์ ์น์ฌ์ดํธ๋ ์ ์ ๋ค์ด ์ง์ ์ฌ์ง์ด๋ ๋ฏธ๋์ด๋ฅผ ์ ๋ก๋ํ๊ณ ๋ค์ด๋ก๋ํ๋ ๊ธฐ๋ฅ์ด ํต์ฌ์ ๋๋ค. ๋ง์ฝ ์ ์ฒด ํด๋๋ฅผ ์๊ฐ ์์ด <code>git add .</code> ๋ช ๋ น์ด๋ก ๊นํ๋ธ์ ๋ฐฑ์ ํด ๋ฒ๋ฆฐ๋ค๋ฉด? ์ ์ ๋ค์ด ์ฌ๋ ค๋ ์๋ฐฑ ๋ฉ๊ฐ, ์ ๊ธฐ๊ฐ๋ฐ์ดํธ์ ๊ณ ํ์ง ์ด๋ฏธ์ง ํ์ผ๋ค๊น์ง ๋ชฝ๋ ๊นํ๋ธ ์๋ฒ๋ก ์ ์ก๋๋ค๊ฐ ์ฉ๋ ์ด๊ณผ๋ก ๋ฐฑ์ ์์ฒด๊ฐ ํฐ์ ธ๋ฒ๋ฆด ๊ฒ์ด ๋ถ๋ช ํ์ต๋๋ค.
์ด๋ ์ ๋ฅผ ๊ตฌ์ํด ์ค ๊ฒ์ด ๋ฐ๋ก <code>.gitignore</code> ํ์ผ์ ๋๋ค.
<ul><li>.gitignore ๋?: ๊น(Git)์๊ฒ "์ด ํด๋์ ํ์ผ๋ค์ ๋ฐฑ์ ํ์ง ๋ง๊ณ ๊ทธ๋ฅ ๋ฌด์ํด ์ค!"๋ผ๊ณ ์๋ ค์ฃผ๋ ๋ธ๋๋ฆฌ์คํธ ๋ช ๋จ์ ๋๋ค.
</li></ul>์ ๋ ํ๋ก์ ํธ ์ต์๋จ์ <code>.gitignore</code> ํ์ผ์ ๋ง๋ค๊ณ , ์ ์ ๋ค์ ์ฌ์ง์ด ์ ์ฅ๋๋ <code>/static/uploads/</code> ํด๋ ๊ฒฝ๋ก๋ฅผ ์ดํฌ์ ์ ์ด๋์์ต๋๋ค. ์, ํน์ ๋ชฐ๋ผ์ ํ์ด์ฌ ๊ฐ์ํ๊ฒฝ ํด๋(<code>venv</code>)์ ๋น๋ฐ๋ฒํธ๊ฐ ๋ด๊ธด ํ๊ฒฝ ๋ณ์ ํ์ผ(<code>.env</code>)๋ ํจ๊ป ์ ์ด ๋ฃ์์ฃ .
์ด๋ ๊ฒ ์ค์ ํ๊ณ ๊นํ๋ธ์ ๋ฐฑ์ ์ ์งํํ๋, ๋ฌด๊ฑฐ์ด ๋ฏธ๋์ด ํ์ผ๋ค์ ์ ๋น ์ง๊ณ ์ค๋ก์ง ์ ๊ฐ ๋ ํ๋ ค ์์ฑํ '๊ฐ๋ฒผ์ด ์ฝ๋ ํ์ผ'๋ค๋ง ์์ฃผ ๋น ๋ฅด๊ณ ์์ ํ๊ฒ ํด๋ผ์ฐ๋ ์ ์ฅ์์ ์์ฐฉํ์ต๋๋ค. ์ด์ ๋ ธํธ๋ถ์ด ๋ถ์์ ธ๋(?) ์ธ์ ๋ ์ฝ๋๋ฅผ ์ด๋ ค๋ผ ์ ์๋ ์๋ฒฝํ ๋ถ์ฌ์ ์๋ฒ๊ฐ ๋ ๊ฒ์ ๋๋ค.
๋ง์น๋ฉฐ: ์ด์์ ๋ฌ๋ฏธ๋ฅผ ํฅํด
๋ญํน ์์คํ ์ ํธ๋ ๋ํ๊ฒ ๋ฐ๊พธ๊ณ , UI์ ๋ํ ์ผ์ ์ก๊ณ , ์๋ฒฝํ ์ฝ๋ ๋ฐฑ์ ์ฒด๊ณ๊น์ง ๊ฐ์ถ๋ ์ด์ ์ ๋ง ๋ฒ๋ฏํ ํ๋์ ์น ์๋น์ค๊ฐ ๋์๊ฐ๊ณ ์๋ค๋ ์ค๊ฐ์ด ๋ฉ๋๋ค. "ํญ์ ๋ง๋ค๊ณ ๋๋ฉด ์์ฝ๋ค"๋ ์ ํธ๋ ์, ์ด์ฉ๋ฉด ์ฌ์ดํธ๋ฅผ ํฅํ ๊น์ ์ ์ ์ ๋ ๋ค๋ฅธ ํํ์ด์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ค์ 12ํธ์์๋ ๊ฐ๋ฐ์ ๋์ด **'๋ณธ๊ฒฉ์ ์ธ ์ฌ์ดํธ ๊ด๋ฆฌ ๋ฐ ์ด์๊ธฐ'**๋ฅผ ๋ค๋ค๋ณผ๊น ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๋จ์ ์์ด๋ ๊ฒ์ํ์ ์ค์๋ก ์ฌ๋ผ๊ฐ ์ฌ์ ์์ด๋ ์ฌ์ง์ ๊ด๋ฆฌ์ ์์ด๋๋ก ์ ์ํด ์ฌ๋ฐ๋ฅธ ๊ฒ์ํ์ผ๋ก ์ฑ์น ์ด๋์ํค๋ '๊ด๋ฆฌ์ ์ ์ฉ ์ ์ด ๊ธฐ๋ฅ', ํน์ ์ฌ์ดํธ ์ ์ง๋ณด์ ์ ๋๋ฌธ์ ๋ธ๋ก๊ทธ์ฒ๋ผ ์์๋ก ๊ฐ๋ ค๋๋ '์์ฅ๋ง(๋ธ๋ผ์ธ๋) ์ฝ๋' ์ธํ ๋ฑ ์ง์ง ์ด์์๋ง์ด ๊ฒช๋ ๋ฆฌ์ผํ ์ํผ์๋๋ค์ ์ค๋นํด ์ค๊ฒ ์ต๋๋ค. ๊ณ์ํด์ ๋ค๋ฌ์ด์ง๋ ์ ์ ์น์ฌ์ดํธ๋ฅผ ์ง์ผ๋ด ์ฃผ์ธ์!
์ง๋ํธ ๋ณด๋ฌ๊ฐ๊ธฐ: 10. ๋ฐฉ๊ตฌ์ ์๋ฒ์ ํ๊ณ๋ฅผ ๋๋ค: Render ๋ฐฑ์ ๋ถํฐ ์น์งํ ๊ฒ์ํ ๊ฐ๋ฐ๊น์ง
๋ค์ํธ ๋ณด๋ฌ๊ฐ๊ธฐ: 12. ๋ชจ๋ฐ์ผ ์ ์ ๋ฅผ ์ก์๋ผ! ๋ฐ์ํ ์น ๋์์ธ๊ณผ Jinja2 ๋ํ ์ผ์ ์์ฑ
<code><style></code> ํ๊ทธ์ ํ์ด์ฌ ๋ฐฑ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ก ๊ฝ์ ๋ฃ๊ธฐ ์ํด <code>background-image: url('{{ post.image_url }}');</code> ์ฒ๋ผ Jinja2 ํ ํ๋ฆฟ ๋ฌธ๋ฒ์ ์์ด์ ์ฌ์ฉํ๊ณ ์์์ต๋๋ค. ๊ทธ๋ฐ๋ฐ VS Code์ ๋ด์ฅ๋ ๊ธฐ๋ณธ CSS ๊ฒ์ฌ๊ธฐ(Linter)๋ ์ด <code>{{ }}</code>๋ผ๋ ๋ฏ์ ๊ธฐํธ๋ฅผ ์์ํ CSS ๋ฌธ๋ฒ์ผ๋ก ์ธ์ํ์ง ๋ชปํ๊ณ "๋ฌธ๋ฒ์ด ํ๋ ธ๋ค"๋ผ๋ฉฐ ์ต์ธํ ๋นจ๊ฐ์ค์ ๊ทธ์ด๋๊ณ ์์๋ ๊ฒ์ ๋๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก, ์น ๋ธ๋ผ์ฐ์ ์์ ์ฌ์ดํธ๋ฅผ ์๋ก๊ณ ์นจ ํ์ ๋ ๋์์ธ์ด ์ฐฐ๋ก๊ฐ์ด ์ ์ ์ฉ๋์ด ๋์จ๋ค๋ฉด ์ด ๋นจ๊ฐ์ค์ ๊ณผ๊ฐํ๊ฒ ๋ฌด์ํด๋ ๋๋ ๊ฒฝ๊ณ ์์ต๋๋ค. ์๋ํฐ์ ๊ฒฝ๊ณ ์ ์ซ์ง(?) ์๊ณ ๋์ฌ ์๊ฒ ๊ฐ๋ฐ์ ์ด์ด๋๊ฐ ์ ์๋ ๊นก์ด ์กฐ๊ธ ์๊ฒผ๋ฌ๊น์?
3. ์๋ฒ ํญํ ๋ฐฉ์ง ์์ํ: Git๊ณผ .gitignore๋ฅผ ํ์ฉํ ๋ฏธ๋์ด ๋ฐฑ์ ์ ์ธํ๊ธฐ

<์ธ์ ๋ ๋ค์ ๋๋ฆด ์ ์๋ ๋ฐฑ์ Git ๋ ๋ ํ๋ค.>
๊ธฐ๋ฅ์ด ํ๋๋ ๊ณ ๋ํ๋ ์๋ก, ์ ๋ ธํธ๋ถ ์๋ฒ์ ๋ด๊ธด ์ด ํ์ด์ฌ ์ฝ๋๋ค์ด ๋๋ฌด๋๋ ์์คํด์ก์ต๋๋ค. ๋ง์ฝ ๋ ธํธ๋ถ ํ๋๋์คํฌ๊ฐ ๋ ์๊ฐ๋ฉด ์ด ํผ ๊ฐ์ ์ฝ๋๋ค์ ๋ค ์๋๋ค๋ ์๊ฐ์ ์์ฐํด์ก๊ณ , ๋๋์ด ๋ฏธ๋ค๋์๋ Git(๊น)๊ณผ GitHub๋ฅผ ๋์ ํ์ฌ ์๋ฒ ์ฝ๋๋ฅผ ์์ ํ๊ฒ ๋ฐฑ์ ํ๊ธฐ๋ก ๊ฒฐ์ฌํ์ต๋๋ค.
๊ทธ๋ฐ๋ฐ ์ฌ๊ธฐ์ ์์ฃผ ํฐ ๋ฌธ์ ๊ฐ ํ๋ ์์์ต๋๋ค. ์ ์น์ฌ์ดํธ๋ ์ ์ ๋ค์ด ์ง์ ์ฌ์ง์ด๋ ๋ฏธ๋์ด๋ฅผ ์ ๋ก๋ํ๊ณ ๋ค์ด๋ก๋ํ๋ ๊ธฐ๋ฅ์ด ํต์ฌ์ ๋๋ค. ๋ง์ฝ ์ ์ฒด ํด๋๋ฅผ ์๊ฐ ์์ด <code>git add .</code> ๋ช ๋ น์ด๋ก ๊นํ๋ธ์ ๋ฐฑ์ ํด ๋ฒ๋ฆฐ๋ค๋ฉด? ์ ์ ๋ค์ด ์ฌ๋ ค๋ ์๋ฐฑ ๋ฉ๊ฐ, ์ ๊ธฐ๊ฐ๋ฐ์ดํธ์ ๊ณ ํ์ง ์ด๋ฏธ์ง ํ์ผ๋ค๊น์ง ๋ชฝ๋ ๊นํ๋ธ ์๋ฒ๋ก ์ ์ก๋๋ค๊ฐ ์ฉ๋ ์ด๊ณผ๋ก ๋ฐฑ์ ์์ฒด๊ฐ ํฐ์ ธ๋ฒ๋ฆด ๊ฒ์ด ๋ถ๋ช ํ์ต๋๋ค.
์ด๋ ์ ๋ฅผ ๊ตฌ์ํด ์ค ๊ฒ์ด ๋ฐ๋ก <code>.gitignore</code> ํ์ผ์ ๋๋ค.
<ul><li>.gitignore ๋?: ๊น(Git)์๊ฒ "์ด ํด๋์ ํ์ผ๋ค์ ๋ฐฑ์ ํ์ง ๋ง๊ณ ๊ทธ๋ฅ ๋ฌด์ํด ์ค!"๋ผ๊ณ ์๋ ค์ฃผ๋ ๋ธ๋๋ฆฌ์คํธ ๋ช ๋จ์ ๋๋ค.
</li></ul>์ ๋ ํ๋ก์ ํธ ์ต์๋จ์ <code>.gitignore</code> ํ์ผ์ ๋ง๋ค๊ณ , ์ ์ ๋ค์ ์ฌ์ง์ด ์ ์ฅ๋๋ <code>/static/uploads/</code> ํด๋ ๊ฒฝ๋ก๋ฅผ ์ดํฌ์ ์ ์ด๋์์ต๋๋ค. ์, ํน์ ๋ชฐ๋ผ์ ํ์ด์ฌ ๊ฐ์ํ๊ฒฝ ํด๋(<code>venv</code>)์ ๋น๋ฐ๋ฒํธ๊ฐ ๋ด๊ธด ํ๊ฒฝ ๋ณ์ ํ์ผ(<code>.env</code>)๋ ํจ๊ป ์ ์ด ๋ฃ์์ฃ .
์ด๋ ๊ฒ ์ค์ ํ๊ณ ๊นํ๋ธ์ ๋ฐฑ์ ์ ์งํํ๋, ๋ฌด๊ฑฐ์ด ๋ฏธ๋์ด ํ์ผ๋ค์ ์ ๋น ์ง๊ณ ์ค๋ก์ง ์ ๊ฐ ๋ ํ๋ ค ์์ฑํ '๊ฐ๋ฒผ์ด ์ฝ๋ ํ์ผ'๋ค๋ง ์์ฃผ ๋น ๋ฅด๊ณ ์์ ํ๊ฒ ํด๋ผ์ฐ๋ ์ ์ฅ์์ ์์ฐฉํ์ต๋๋ค. ์ด์ ๋ ธํธ๋ถ์ด ๋ถ์์ ธ๋(?) ์ธ์ ๋ ์ฝ๋๋ฅผ ์ด๋ ค๋ผ ์ ์๋ ์๋ฒฝํ ๋ถ์ฌ์ ์๋ฒ๊ฐ ๋ ๊ฒ์ ๋๋ค.
๋ง์น๋ฉฐ: ์ด์์ ๋ฌ๋ฏธ๋ฅผ ํฅํด
๋ญํน ์์คํ ์ ํธ๋ ๋ํ๊ฒ ๋ฐ๊พธ๊ณ , UI์ ๋ํ ์ผ์ ์ก๊ณ , ์๋ฒฝํ ์ฝ๋ ๋ฐฑ์ ์ฒด๊ณ๊น์ง ๊ฐ์ถ๋ ์ด์ ์ ๋ง ๋ฒ๋ฏํ ํ๋์ ์น ์๋น์ค๊ฐ ๋์๊ฐ๊ณ ์๋ค๋ ์ค๊ฐ์ด ๋ฉ๋๋ค. "ํญ์ ๋ง๋ค๊ณ ๋๋ฉด ์์ฝ๋ค"๋ ์ ํธ๋ ์, ์ด์ฉ๋ฉด ์ฌ์ดํธ๋ฅผ ํฅํ ๊น์ ์ ์ ์ ๋ ๋ค๋ฅธ ํํ์ด์๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ง๋ํธ ๋ณด๋ฌ๊ฐ๊ธฐ: 9. ๊ธฐ๋ณธ๋ถํฐ ๋ค์ ํ๊ธฐ: ๋ง์์ ๋น์ฐ๊ณ FastAPI ์๋ฒ์ Cloudflare ํฐ๋์ ๋ซ๋ค
๋ค์ํธ ๋ณด๋ฌ๊ฐ๊ธฐ:
๐ฌ ๋๊ธ 0๊ฐ