๋ณธ ๋
ผ๋ฌธ์์๋ Django๋ฅผ ์ฌ์ฉํ์ฌ ์ค์ํ์์ ์ฐ์ผ ๋งํ ์์คํ
์ ๋ง๋ค๋ฉด์ ์ง์์ฒ๋ฆฌ ๋ฅ๋ ฅ๊ณผ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ถ์ํ๋ฅผ ์คํํด๋ณธ๋ค. ์์ ๊ด๋ฆฌ์์คํ
์ ์์ ๊ด๋ฆฌ๊ฐ ํ์ํ ์ํ์ ํ์
ํ๊ณ , ์ํ์ด ๋ฐ์ํ๋ ๊ฒฝ์ฐ ์ฌ์ฉํ ์ ์๋ ๋์ฒ๋ฐฉ์์ ์ค์ ํ๋ค. ๊ทธ๋ ๊ฒ ํจ์ผ๋ก์จ ์ํํ ์ํฉ์ด ๋ฐ์ํ์ง ์๋๋ก ํ๊ณ , ์ค์ ๋ก ์ํํ ์ํฉ์ด ๋ฐ์ํ์ ๋ ์ ์ฑ
์ ๋ฐ๋ผ ์ ์ ํ ๋ฐฉ๋ฒ์ผ๋ก ๋์ฒํ์ฌ ํฐ ์ฌ๊ณ ๋ก ์ด์ด์ง์ง ์๋๋ก ๋๋๋ค.
์๋ฅผ ๋ค์ด "๋๊ตฌ๋ฆฌ" ์ ์กฐํ์ฌ์์ ์์ ๊ด๋ฆฌ์์คํ ์ ์ฌ์ฉํ์ฌ "ํ์ฌ"๋ผ๋ ์ํ์ ๊ด๋ฆฌํ๋ค๊ณ ์๊ฐํ์. "ํ์ฌ"๊ฐ ๋ฐ์ํ๋ฉด ๊ฐ์ฐ์ฑ ๋ฌผ์ง์ธ "๋๊ตฌ๋ฆฌ ๊ผฌ๋ฆฌ"์ ๋ถ์ด ์ฎ๊ฒจ ๋ถ์ด ๋ํ ์ฌ๊ณ ๋ก ์ด์ด์ง ์ ์๋ค. ๋ฐ๋ผ์ "๋๊ตฌ๋ฆฌ" ์ฌ๋ "๋ฌผ๋ฟ๋ฆฌ๊ฐ"๋ฅผ ์ง์๋ค์๊ฒ ์ง๊ธํ์ฌ "๋๊ตฌ๋ฆฌ ๊ผฌ๋ฆฌ"์ ๋ถ์ด ์ฎ๊ฒจ ๋ถ๊ธฐ ์ ์ "ํ์ฌ"๋ฅผ ์ง์ํ๊ธฐ๋ก ๊ฒฐ์ ํ๋ค. ๋ํ "๋๊ตฌ๋ฆฌ" ์ฌ๋ "ํ์ฌ"๊ฐ 5๋ถ ์์ ์ง์๋์ง ์๋ ๊ฒฝ์ฐ "์ผ์ผ๊ตฌ" ์๋น์ค๋ฅผ ์ด์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ๋ค. ๋ฐ๋ผ์ "๋๊ตฌ๋ฆฌ"์ฌ ์ง์๋ค์ ๋ถ์ด ๋ฌ์ ๊ฒฝ์ฐ "๋ฌผ๋ฟ๋ฆฌ๊ฐ"๋ก ์ผ๋จ ๋ถ์ ๋๊ณ , 5๋ถ์ด ์ง๋๋ฉด "์ผ์ผ๊ตฌ" ์๋น์ค๋ฅผ ๋ถ๋ฅผ ๊ฒ์ด๋ค.
๋ํ "๋๊ตฌ๋ฆฌ" ์ฌ๋ "๋๋"์ด๋ผ๋ ์ํ๋ ๊ด๋ฆฌํ๋ค. "๋๊ตฌ๋ฆฌ ๊ผฌ๋ฆฌ"๊ฐ "๋๋"์ ๋นํ๋ฉด "๋๊ตฌ๋ฆฌ" ์ฌ๋ ๋ง์ ์ํด๋ฅผ ์ ๋๋ค. ํ์ง๋ง "๋ค์ก์"๋ผ๋ ๋ฌด์ธ ๊ฒฝ๋น์์คํ ์ ์ค์นํ๊ธฐ์๋ ๋๋ฌด ๋ง์ ๋์ด ํ์ํด์, "๋๊ตฌ๋ฆฌ" ์ฌ๋ "์ข ์์ฅ" ๋ณดํ๋ง ์ด์ฉํ์ฌ "๋๋"์ ๊ด๋ฆฌํ๋ค. "์ข ์์ฅ" ๋ณดํ์ "๋๋" ๋ฟ ์๋๋ผ "ํ์ฌ"์ ๋ํด์๋ ๋ณดํ๊ธ์ ์ง๊ธํ๊ธฐ ๋๋ฌธ์ด๋ค. ๋ํ "๋๋"์ด ๋ฐ์ํ์ง ์๋๋ก ์ง์๋ค์๊ฒ ์ ๊ธฐ์ ์ผ๋ก ๊ต์ก์ ์ค์ํ๋ค.
"ํ์ฌ"๊ฐ ๋ฐ์ํ ๋ค์๋ ์ํ์ด ๋ฐ์ํ๊ณ ์ด์ ๋์ฒํ ๊ธฐ๋ก์ ๋จ๊ธด๋ค. "๋๋"์ด ๋ฐ์ํ ๋ค์๋ ์์ธ์ ๋ถ์ํ๊ณ ์ด์ ๋์ฒํ ๊ธฐ๋ก์ ๋จ๊ธด๋ค. ์ด๋ฌํ ์ํ ๋ฐ์ ๊ธฐ๋ก์ ๋ํ์ฌ "๋๊ตฌ๋ฆฌ"์ฌ๋ ์ ํจ์ ์ ํ ๋์ฑ ์ ์ํํ๋์ง ํ์ธํ๋ค. ๋ง์ผ ์ ํจ ์ ์ ํ ๋์ฑ ์ ์ํํ๋ค๋ฉด ์ด๋ฅผ ํ์ธํ๋ค.
๋ค์ ERD๋ฅผ ๋ฐํ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง๋ฅผ ์์ฑํ๋ค.

django/Model
django/ModifyingObject
django/RetrievingObject
django/AggregateFunction
----
django
์๋ฅผ ๋ค์ด "๋๊ตฌ๋ฆฌ" ์ ์กฐํ์ฌ์์ ์์ ๊ด๋ฆฌ์์คํ ์ ์ฌ์ฉํ์ฌ "ํ์ฌ"๋ผ๋ ์ํ์ ๊ด๋ฆฌํ๋ค๊ณ ์๊ฐํ์. "ํ์ฌ"๊ฐ ๋ฐ์ํ๋ฉด ๊ฐ์ฐ์ฑ ๋ฌผ์ง์ธ "๋๊ตฌ๋ฆฌ ๊ผฌ๋ฆฌ"์ ๋ถ์ด ์ฎ๊ฒจ ๋ถ์ด ๋ํ ์ฌ๊ณ ๋ก ์ด์ด์ง ์ ์๋ค. ๋ฐ๋ผ์ "๋๊ตฌ๋ฆฌ" ์ฌ๋ "๋ฌผ๋ฟ๋ฆฌ๊ฐ"๋ฅผ ์ง์๋ค์๊ฒ ์ง๊ธํ์ฌ "๋๊ตฌ๋ฆฌ ๊ผฌ๋ฆฌ"์ ๋ถ์ด ์ฎ๊ฒจ ๋ถ๊ธฐ ์ ์ "ํ์ฌ"๋ฅผ ์ง์ํ๊ธฐ๋ก ๊ฒฐ์ ํ๋ค. ๋ํ "๋๊ตฌ๋ฆฌ" ์ฌ๋ "ํ์ฌ"๊ฐ 5๋ถ ์์ ์ง์๋์ง ์๋ ๊ฒฝ์ฐ "์ผ์ผ๊ตฌ" ์๋น์ค๋ฅผ ์ด์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ๋ค. ๋ฐ๋ผ์ "๋๊ตฌ๋ฆฌ"์ฌ ์ง์๋ค์ ๋ถ์ด ๋ฌ์ ๊ฒฝ์ฐ "๋ฌผ๋ฟ๋ฆฌ๊ฐ"๋ก ์ผ๋จ ๋ถ์ ๋๊ณ , 5๋ถ์ด ์ง๋๋ฉด "์ผ์ผ๊ตฌ" ์๋น์ค๋ฅผ ๋ถ๋ฅผ ๊ฒ์ด๋ค.
๋ํ "๋๊ตฌ๋ฆฌ" ์ฌ๋ "๋๋"์ด๋ผ๋ ์ํ๋ ๊ด๋ฆฌํ๋ค. "๋๊ตฌ๋ฆฌ ๊ผฌ๋ฆฌ"๊ฐ "๋๋"์ ๋นํ๋ฉด "๋๊ตฌ๋ฆฌ" ์ฌ๋ ๋ง์ ์ํด๋ฅผ ์ ๋๋ค. ํ์ง๋ง "๋ค์ก์"๋ผ๋ ๋ฌด์ธ ๊ฒฝ๋น์์คํ ์ ์ค์นํ๊ธฐ์๋ ๋๋ฌด ๋ง์ ๋์ด ํ์ํด์, "๋๊ตฌ๋ฆฌ" ์ฌ๋ "์ข ์์ฅ" ๋ณดํ๋ง ์ด์ฉํ์ฌ "๋๋"์ ๊ด๋ฆฌํ๋ค. "์ข ์์ฅ" ๋ณดํ์ "๋๋" ๋ฟ ์๋๋ผ "ํ์ฌ"์ ๋ํด์๋ ๋ณดํ๊ธ์ ์ง๊ธํ๊ธฐ ๋๋ฌธ์ด๋ค. ๋ํ "๋๋"์ด ๋ฐ์ํ์ง ์๋๋ก ์ง์๋ค์๊ฒ ์ ๊ธฐ์ ์ผ๋ก ๊ต์ก์ ์ค์ํ๋ค.
"ํ์ฌ"๊ฐ ๋ฐ์ํ ๋ค์๋ ์ํ์ด ๋ฐ์ํ๊ณ ์ด์ ๋์ฒํ ๊ธฐ๋ก์ ๋จ๊ธด๋ค. "๋๋"์ด ๋ฐ์ํ ๋ค์๋ ์์ธ์ ๋ถ์ํ๊ณ ์ด์ ๋์ฒํ ๊ธฐ๋ก์ ๋จ๊ธด๋ค. ์ด๋ฌํ ์ํ ๋ฐ์ ๊ธฐ๋ก์ ๋ํ์ฌ "๋๊ตฌ๋ฆฌ"์ฌ๋ ์ ํจ์ ์ ํ ๋์ฑ ์ ์ํํ๋์ง ํ์ธํ๋ค. ๋ง์ผ ์ ํจ ์ ์ ํ ๋์ฑ ์ ์ํํ๋ค๋ฉด ์ด๋ฅผ ํ์ธํ๋ค.
๋ค์ ERD๋ฅผ ๋ฐํ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง๋ฅผ ์์ฑํ๋ค.

django/ModifyingObject
django/RetrievingObject
django/AggregateFunction
----
django