18. ์ปค๋ฎค๋ํฐ์ ๊ฝ, ํ์ ๊ด๋ฆฌ: ๋๋ง์ ๋น๋ฐ ๊ด๋ฆฌ์ ๋์๋ณด๋
์๋ ํ์ธ์. ํ์ด์ฌ๊ณผ FastAPI ํ๋ ์์ํฌ๋ฅผ ๋ฌด๊ธฐ ์ผ์, ํ ๋น ๋ฐฑ์ง์ํ์์๋ถํฐ ์ ๋ง์ ์ปค๋ฎค๋ํฐ ์น์ฌ์ดํธ๋ฅผ ํ๋์ฉ ๋น์ด๋ด๊ณ ์๋ ์ด๋ณด ๊ฐ๋ฐ์์ ๋๋ค.
์ฒ์ ์น์ฌ์ดํธ๋ฅผ ์ธํฐ๋ท ์ธ์์ ๊ณต๊ฐํ๊ณ , ์ง์ธ๋ค์ด๋ ๊ฒ์์ ํตํด ๋ค์ด์จ ์ฒซ ๋ฐฉ๋ฌธ์๊ฐ 'ํ์๊ฐ์ ' ๋ฒํผ์ ๋๋ฌ์ฃผ์์ ๋์ ๊ทธ ์ง๋ฆฟํ ๊ฐ๋์ ์๋ง ํ์ ์์ง ๋ชปํ ๊ฒ์ ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค(DB)์ ์ ์ด๋ฆ์ด ์๋ ๋ค๋ฅธ ์ฌ๋์ ๋๋ค์๊ณผ ์ด๋ฉ์ผ์ด ์ฒซ ์ค์ ๊ธฐ๋ก๋๋ ์๊ฐ, ๋๋์ด ์ ์ฌ์ดํธ๊ฐ ๋จ์ํ '๊ฐ์ธ ์ผ๊ธฐ์ฅ'์ ๋์ด ์ฌ๋๋ค์ด ๋ชจ์ฌ๋๋ '๊ด์ฅ'์ผ๋ก ์จ์ ์ฌ๊ธฐ ์์ํ๋ค๋ ๊ฒ์ ๋๊ผ์ฃ .
ํ์ง๋ง ๊ฐ์ ํ๋ ํ์์ด ํ ๋ช , ๋ ๋ช ๋์ด๋๊ณ ๊ทธ๋ค์ด ๋จ๊ธฐ๋ ๊ฒ์๊ธ๊ณผ ๋๊ธ์ด ์์ด๊ธฐ ์์ํ๋ฉด์, ์ด๋ณด ์น๋ง์คํฐ์ธ ์ ์๊ฒ๋ ๋ ๋ค๋ฅธ ๊ฑฐ๋ํ ์์ ๊ฐ ์ฃผ์ด์ก์ต๋๋ค. ๋ฐ๋ก ์ด ์์คํ ํ์๋ค์ ํ๋์ ํ๋์ ํ์ ํ๊ณ ๊ด๋ฆฌํ ์ ์๋ '๊ด์ ํ', ์ฆ ๊ด๋ฆฌ์ ๋์๋ณด๋(Admin Dashboard)์ ํ์์ฑ์ ๋๋ค.
๋ ๊ฒ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋๋ฌด๋๋ ๋ถ์น์ ํ๋ค
์ฒ์์๋ ์๋ก์ด ํ์์ด ๊ฐ์ ํ๊ฑฐ๋ ๊ธ์ ์ธ ๋๋ง๋ค ํฐ๋ฏธ๋ ์ฐฝ์ ์ด๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ง์ ์ ์ํด์ SQL ์ฟผ๋ฆฌ๋ฌธ์ ์ณ์ ํ์ธํ์ต๋๋ค. <code>SELECT * FROM users;</code> ๋ช ๋ น์ด๋ฅผ ์น๋ฉด ๊น๋ง ํ๋ฉด์ ํ์ ์ ๋ณด๊ฐ ์ค์ค์ด ํ๋ฌ๋์์ฃ . ๊ฐ๋ฐ์ ๋ณธ๋ฅ(?)์ผ๋ก๋ ๋ฉ์์ด ๋ณด์ผ์ง ๋ชฐ๋ผ๋, ์ฌ์ดํธ์ ๋ฉ์น๊ฐ ์ปค์ง์๋ก ์ด๊ฒ์ ์์ฒญ๋ ๋นํจ์จ์ด์์ต๋๋ค.
์ด๋ค ํ์์ด ์ต๊ทผ์ ๊ฐ์ ํ๋์ง, ์ด๋ค ์ ์ ๊ฐ ๊ฐ์ฅ ํ๋ฐํ๊ฒ ์์ง์ IT ์นผ๋ผ์ ์์ฑํ๊ณ ์๋์ง, ํน์ ๋๊ตฐ๊ฐ ๊ฒ์ํ์ ๋ถ์๊ธฐ๋ฅผ ํ๋ฆฌ๋ ์คํธ์ฑ ๋๊ธ์ ๋๋ฐฐํ๊ณ ์์ง๋ ์์์ง ํ์ ํ๋ ค๋ฉด ์ ์ ํ ์ด๋ธ, ๊ฒ์๊ธ ํ ์ด๋ธ, ๋๊ธ ํ ์ด๋ธ์ ์ด๋ฆฌ์ ๋ฆฌ ์กฐ์ธ(Join)ํ๋ฉฐ ๋ณต์กํ ๋ช ๋ น์ด๋ฅผ ๋งค๋ฒ ์ ๋ ฅํด์ผ ํ์ต๋๋ค. ํ์ด์ฌ ๋ฐฑ์๋๋ก ํ๋ฅญํ ์์คํ ์ ๋ง๋ค์ด๋๊ณ , ์ ์ ๊ด๋ฆฌ์์ธ ์ ๋ ์์์๋์ ๋๊ตฌ๋ก ๋ฐ์ดํฐ๋ฅผ ํํค์น๊ณ ์์๋ ์ ์ ๋๋ค.
๊ฒฐ๊ตญ ์ ๋ ๊ฒฐ์ฌํ์ต๋๋ค. ๊ตฌ๊ธ ๋ก๋ด์ด๋ ์ผ๋ฐ ๋ฐฉ๋ฌธ์์ ๋์๋ ์ ๋ ๋์ง ์๋, ์ค์ง ์ต๊ณ ๊ด๋ฆฌ์์ธ ์ ๊ฒฉ์(?) ์ ํผ์๋ง ์๋ฐํ๊ฒ ์ ์ํ ์ ์๋ '๋น๋ฐ ์งํ ๋ฒ์ปค' ๊ฐ์ ํตํฉ ๋์๋ณด๋ ํ์ด์ง๋ฅผ ์ง์ ๊ฐ๋ฐํ๊ธฐ๋ก ๋ง์ด์ฃ .
๊ด๋ฆฌ์ ๋์๋ณด๋ ๊ธฐํ: ํํธํ๋ ๋ฐ์ดํฐ๋ฅผ ํ๋๋ก ๋ชจ์ผ๋ค
์ ๊ฐ ๊ธฐํํ ๊ด๋ฆฌ์ ๋์๋ณด๋์ ํต์ฌ์ '์ง๊ด์ฑ'๊ณผ '์ฐ๊ฒฐ์ฑ'์ ๋๋ค. ์น์ฌ์ดํธ์ ๋ชจ๋ ์๋ช ์งํ๋ฅผ ํ ํ๋ฉด์์ ๋ชจ๋ํฐ๋งํ ์ ์๋๋ก ํผ์งํ๊ณ ์์ํ UI(์ฌ์ฉ์ ์ธํฐํ์ด์ค)๋ฅผ ๊ตฌ์ํ์ต๋๋ค.
๊ฐ์ฅ ๋จผ์ ํ๋ฉด ์ต์๋จ์๋ ์ฐ๋ฆฌ ์ปค๋ฎค๋ํฐ์ ํ์ฌ ์ฒด๊ธ์ ์๋ ค์ฃผ๋ ์งํ๋ค์ ๋ฐฐ์นํ ๊ณํ์ ๋๋ค. ์ด ๋์ ๊ฐ์ ์ ์, ์ค๋ ์๋กญ๊ฒ ๊ฐ์ ํ ์ ๊ท ํ์ ์, ์ ์ฒด ๊ฒ์๊ธ๊ณผ ๋๊ธ์ ํต๊ณ๋ฅผ ์ง๊ด์ ์ธ ์ซ์๋ก ๋์์ฃผ๋ ๊ฒ์ด์ฃ .
๊ทธ ์๋์๋ ๋ณธ๊ฒฉ์ ์ธ 'ํ์ ๋ฆฌ์คํธ์ ' ๊ณต๊ฐ์ ๋ง๋ จํฉ๋๋ค. ๋จ์ํ ๊ฐ์ ์ ๋ช ๋จ๋ง ํ ์คํธ๋ก ๋์ดํ๋ ๊ฒ์ด ์๋๋๋ค. A๋ผ๋ ํ์์ ํด๋ฆญํ๋ฉด, ๊ทธ ํ์์ด ์ง๊ธ๊น์ง ์์ฑํ ๋ชจ๋ IT ์นผ๋ผ๊ณผ ์์ ๊ฒ์ํ์ ๊ธ๋ค, ๊ทธ๋ฆฌ๊ณ ๋ค๋ฅธ ์ฌ๋์ ๊ธ์ ๋จ๊ธด ์์ญ ๊ฐ์ ๋๊ธ ๋ชฉ๋ก์ด ํ์๋ผ์ธ์ฒ๋ผ ํ ๋ฒ์ ํผ์ณ์ง๋๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ด๊ณ๋ง(Relation)์ ์ฎ์ด๋ผ ๊ฒ์ ๋๋ค.
์ปค๋ฎค๋ํฐ์ ์์ ์์ฉ์ ๋๋ ๊ฐ๋ ฅํ ์ ์ด ๊ธฐ๋ฅ
๋์๋ณด๋๋ ๋จ์ํ ๋ฐ์ดํฐ๋ฅผ '๋ณด๋' ๊ณณ์์ ๋ฉ์ถ๋ฉด ์ ๋ฉ๋๋ค. ์ปค๋ฎค๋ํฐ๋ฅผ ๊ฑด๊ฐํ๊ฒ ์ ์งํ๊ธฐ ์ํ '๊ด๋ฆฌ์ ๊ฒ' ์ญํ ๋ ์ํํด์ผ ํฉ๋๋ค.
๋ง์ฝ ์ ์ฑ ๋ด์ด๋ ๋ถ๋ ์ฌ์ฉ์๊ฐ ๊ด๊ณ ์ฑ ๊ธ์ ๋๋ฐฐํ๋ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ ๊น์? ๊ณผ๊ฑฐ์ ์ ์๋ค๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ค์ด๊ฐ์ ํด๋น ๊ธ์ ID๋ฅผ ์ฐพ์ ์ผ์ผ์ด ์ญ์ ๋ช ๋ น์ด๋ฅผ ๋ ๋ ค์ผ ํ์ ๊ฒ์ ๋๋ค. ํ์ง๋ง ์๋กญ๊ฒ ๊ธฐํํ๋ ๋์๋ณด๋์์๋, ํ์ ๋ฆฌ์คํธ์์ ํน์ ์ ์ ๋ฅผ ์ ํํ ๋ค [์์ฑ ๊ธ ์ผ๊ด ์ญ์ ] ํน์ [ํ๋ ์ ์ง] ๋ฒํผ ํด๋ฆญ ํ ๋ฒ๋ง์ผ๋ก ํ์ด์ฌ ๋ฐฑ์๋๊ฐ ๋ชจ๋ ์ฒ๋ฆฌ๋ฅผ ์๋ฒฝํ๊ฒ ์๋ ์ํํ๋๋ก ๋ก์ง์ ์งค ๊ฒ์ ๋๋ค.
๋ฐ๋๋ก, ์ ๋ง ์์ง์ ๊ธ์ ๊พธ์คํ ์ฌ๋ ค์ฃผ๋ ๊ณ ๋ง์ด ํ์์๊ฒ๋ ๊ด๋ฆฌ์ ๊ถํ์ผ๋ก '์ฐ์ ํ์' ๋ฑ์ง๋ฅผ ๋ถ์ฌํ์ฌ ์ปค๋ฎค๋ํฐ ๋ด์์ ๋ ๋๋ณด์ด๊ฒ ๋ง๋ค์ด์ฃผ๋ ๋ฐ๋ปํ ๊ธฐ๋ฅ๋ ์ถ๊ฐํ ์๊ฐ์ ๋๋ค.
๋งบ์๋ง: ์น์ฌ์ดํธ๋ ์ด์ ์จ ์ฌ๋ ์ ๊ธฐ์ฒด๋ค
๊ด๋ฆฌ์ ๋์๋ณด๋๋ฅผ ๊ผผ๊ผผํ๊ฒ ๊ธฐํํ๊ณ ์ค๊ณ๋๋ฅผ ๊ทธ๋ฆฌ๋ฉด์, ์ ๋ ์น์ฌ์ดํธ๊ฐ ๋จ์ํ ์ฝ๋ ๋ญ์น๊ฐ ์๋๋ผ ์ฌ๋๊ณผ ๋ฐ์ดํฐ๊ฐ ์ํธ์์ฉํ๋ ๊ฑฐ๋ํ ์ ๊ธฐ์ฒด๋ผ๋ ์ฌ์ค์ ๋ค์๊ธ ๊นจ๋ฌ์์ต๋๋ค.
์ด์ ๋จธ๋ฆฟ์์ ๊ทธ๋ฆฐ ์ด ์๋ฒฝํ ๊ด์ ํ์ HTML๊ณผ CSS๋ก ์์๊ฒ ๋์์ธํ๊ณ , ํ์ด์ฌ์ ๊ฐ๋ ฅํ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ฅ๋ ฅ์ ์ ํ์ ํ์ค๋ก ๋์ง์ด๋ผ ์ฐจ๋ก์ ๋๋ค. ๋ฉฐ์น ๋ค, ์๋ฌด๋ ๋ชจ๋ฅด๋ ์ ๋ง์ ๋น๋ฐ ์ฃผ์๋ก ์ ์ํด ํ๋ คํ ๋์๋ณด๋๊ฐ ์ง ! ํ๊ณ ๋ํ๋ ๊ทธ๋ ์ ๊ณ ๋ํ๋ฉฐ, ์ค๋ ๋ฐค๋ ์ฆ๊ฑฐ์ด ๋ง์์ผ๋ก ํค๋ณด๋๋ฅผ ๋๋๋ ค๋ณด๊ฒ ์ต๋๋ค. ์ด๋ณด ์น๋ง์คํฐ์ ์ฐ๋นํํ ๋์๋ณด๋ ๊ตฌ์ถ ์ค์ ์ฝ๋ฉ๊ธฐ๋ ๋ค์ ํฌ์คํ ์์ ๊ธฐ๋ํด ์ฃผ์ธ์!
๐ฌ ๋๊ธ 0๊ฐ