
ํ๊ตญ๊ณตํ๋ํ๊ต์ ๋๋์ (24.09.11~24.09.13) ๊ธฐ๊ฐ์ ๋ง์ถฐ, 6์ 2์ผ๋ถํฐ ๋ ๋ฌ ๋ฐ๋์ ์งํํ ํ๋ก์ ํธ Festino : ํ์คํฐ๋ ธ๊ฐ ๋ฌด์ฌํ ์ข ๋ฃ๋์๋ค!โจ
Festino๋ ํ Dev-Tino๋ก์ ์งํํ ๋ ๋ฒ์งธ ํ๋ก์ ํธ์๋๋ฐ, ๊ท๋ชจ๊ฐ ์ปค์ง์ ๋ฐ๋ผ ๊ณ ์๋ ํ์ง๋ง ์ ์ ์ผ๋ก ๋์ด์๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ๋ง์กฑ์ผ๋ฌ์ด ์ฑ๊ณผ๋ฅผ ๋ฌ์ฑํด ๋ฟ๋ฏํจ๋ ๊ทธ๋งํผ ์ปธ๋ค. ๋ฐฐ์ด ๊ฒ ๋ง์๊ธฐ์ ๋ ๋ฌ ๋ฐ์ ์์๋ธ Festino! ์ด์ ๋ํ ์ฌ์ ์ ๊ธฐ๋กํด ๋ณด๊ณ ์ ํ๋ค :D
ํ๊ตญ๊ณตํ๋ํ๊ต ๊ฐ๋ฐ ์๋ชจ์ Dev-Tino์ ํ๋ก ํธ 4๋ช , ๋ฐฑ 5๋ช , ์ถ๊ฐ์ ์ผ๋ก ์ด๋ฒ ์ถ์ ํ๋ก์ ํธ์์ ํจ๊ปํ ๋ชฉ์ ์ผ๋ก ๋ชจ์งํ ๋์์ธ 3๋ช ๊น์ง ์ด 12๋ช ์ด ํจ๊ปํ๋ค.
ํ๊ต ์ถ์ ์น์ฌ์ดํธ๋ฅผ ์ ์ํ์๊ณ ๊ฒฐ์ ํ ๊ณ๊ธฐ๊ฐ ๋, ํต์ฌ์ ์ธ ๋ฌธ์ ์ ์ ๋ค์๊ณผ ๊ฐ์๋ค.
โ โ์น์ฌ์ดํธ ํ๋๋ก ๋ชจ๋ ์ ๋ณด๋ฅผ ์ฝ๊ฒ ํ์ธํ ์ ์๋๋ก ํ์!โ
๋ชจ๋ ์ ๋ณด๋ฅผ ํ ๋์ ํ์ธํ ์ ์๋ ์น์ฌ์ดํธ ์ ์์ ๋ชฉํ๋ก ์ก์๊ณ , ์ถ์ ์ Festival๊ณผ ํ๊ตญ๊ณต๋ ๋ง์ค์ฝํธ์ธ Tino๋ฅผ ํฉํด Festino๋ผ๋ ์ด๋ฆ์ผ๋ก ํ๋ก์ ํธ๊ฐ ์์๋์๋ค!๐
์ถ์ ์น์ฌ์ดํธ๋ก ๋ฐฉํฅ์ ์ ํ ํ, ์๋๋ ๊ด๋ จ ํ๋ก์ ํธ๋ฅผ ์งํํ ์ ์ด ์์๊ธฐ์ ํ ๋ํ์ ์ ๋ก๊ฐ ์๋์ง ์ฐพ์๋ดค๋ค. ๋๊ตญ๋ ๋ฉ์์ด์ฌ์์ฒ๋ผ์์ ์ ์ํ ๋๊ตญ๋ ์ถ์ ์น์ฌ์ดํธ๊ฐ ์์๋ค. ์ด๋ฏธ ์ถ์ ๊ฐ ์ข ๋ฃ๋์ด ์ฌ์ดํธ๋ฅผ ์ง์ ์ ์ผ๋ก ์ฐธ๊ณ ํ์ง ๋ชปํ์ผ๋, ํ๋ณด์ฉ์ผ๋ก ์ฐ์๋ ์๋ฃ๊ฐ ์ด์ฅ์ ๊ธฐํ์ ํ์ ์ก๋ ๋ฐ ๋์์ด ๋ง์ด ๋์๋ค :)

โ ๊ณต์ง / ๋ถ์ค / ํ / ๊ณต์ฐ / ํ๋ณด ํญ์ผ๋ก ๋๋์ด ์๋ ๊ฒ์ ํ์ธํ ์ ์๋ค. ์ง๋์์ ๋ถ์ค ์์น๋ฅผ ํ์ธํ๊ณ , ๊ณต์ฐ์ ํ์ํ ์ด๋ธ๋ก ๋ํ๋ด๊ณ , ๊ณต์ง๋ฅผ ๋ชจ์ ํ์ธํ ์ ์๋ ๊ธฐ๋ฅ์ด Festino ๊ธฐํ ๋จ๊ณ์ ๋ฐ์๋์๋ค.
Festino ํ๋ก์ ํธ๋ ํ๋ก ํธ / ๋ฐฑ / ๋์์ธ ์ด 3๊ฐ์ ํ, 12๋ช ์ ์ธ์์ผ๋ก ์งํํ๊ธฐ์ ์ํํ ํ๋ก์ ํธ์ ์งํ์ ์ํด์ ๋ฌด์๋ณด๋ค๋ ํ์ ์ด ์ ์ด๋ฃจ์ด์ ธ์ผ ํ๋ค.
ํ ๊ฐ ํ์ ์ ์ํด์๋ ์ ๊ธฐ ํ์, ํ ๋ด ํ์ ์ ์ํด์๋ Convention ์ ์ฉ์ ํ๊ธฐ๋ก ํ๋ค.
ํ๋ก์ ํธ๊ฐ ์งํ๋๋ ์ ๊ธฐ๊ฐ์ ๊ฑธ์ณ, ๋งค์ฃผ ์ผ์์ผ ์คํ 3์์ ์ ๊ธฐ ํ์๋ฅผ ์งํํ๋ค. ๋ชจ๋๊ฐ ์๊ฒฌ์ ๊ณต์ ํด ๊ฒฐ์ ํด์ผ ํ ์ฌ์๋ค์ ๋ํด ๋ ผ์ํ๊ณ , ํ ๊ฐ ์งํ ์ ๋๋ฅผ ํ์ ํ๊ณ ์๋ก ์กฐ์จํด๋๊ฐ์ผ๋ก์จ ํ๋ก ํธ, ๋ฐฑ, ๋์์ธ์ ํ ๊ฐ ํ์ ์ด ์์ํ ์ด๋ฃจ์ด์ง๋๋ก ํ๋ค.
์ ๊ธฐ ํ์๋ ์ด๊ธฐ์๋ ํญํฌ์ ๋ฐฉ๋ฒ๋ก ์ ๋ง๊ฒ ์งํ๋๋ค๊ฐ ๋์ค ํ์์ ๋ฐ๋ผ ์ ์์ผ ๋ฐฉ๋ฒ๋ก ์ ํํ๋ก ๋ณํ๋์๋๋ฐ, ์์ธํ ๋ด์ฉ์ ๋ค์๊ณผ ๊ฐ๋ค.
์ ๋ฐ - ํญํฌ์ ๋ฐฉ๋ฒ๋ก
: ์ฃผ์ ๋ฅผ ์ ํ ํ๋ก ์ ๋ฐ์๋ ํญํฌ์ ๋ฐฉ๋ฒ๋ก ์ ๋ฐ๋ผ ์๊ตฌ์ฌํญ ๋ถ์, ์ค๊ณ, ... ๊ฐ ์์ฐจ์ ์ผ๋ก ์งํ๋์๋ค. ํ์ํ ๊ธฐ๋ฅ์ ์ ์ํ๊ณ , ์์ด์ดํ๋ ์์ ์์ฑํ๊ณ , API์ DB๋ฅผ ์ค๊ณํ๊ณ , ๊ทธ ํ ๊ฐ๋ฐ์ ์์ํ๋ค. ๊ฐ์ ๋งก์ ๋ฐ๋ฅผ ํ ๋ค ์ ๊ธฐ ํ์ ์๊ฐ์ ๋ฐฑ์๋์ ํ๋ก ํธ ํ์ด ์ด์ ๋ํ ์๊ฒฌ์ ๊ณต์ ํ๋ฉฐ ํ๋๋ก ํต์ผํด๊ฐ๋ ๋ฐฉ์์ผ๋ก ์งํํ๋ค.
ํ๋ฐ - ์ ์์ผ ๋ฐฉ๋ฒ๋ก
: ๊ธฐํ์ ๋ง์น๊ณ ๊ฐ๋ฐ์ ์์ํ ๋ค, ์ดํ์ํ์ ํ๊ณผ ๋ฏธํ
์ ํตํด ํผ๋๋ฐฑ์ ๊ณ์ ๋ฐ์๋ค. ์ด์ ๋ฐ๋ผ ๋งค์ฃผ ๊ธฐ๋ฅ์ ์์ ๋๋ ์ถ๊ฐ๊ฐ ์ง์์ ์ผ๋ก ๋ฐ์ํ๋ฉฐ ์ ์์ผ ๋ฐฉ๋ฒ๋ก ์ผ๋ก ๋ณ๊ฒฝ๋์๋ค. ์ฆ, ์ผ์ฃผ์ผ์ ์ฃผ๊ธฐ๋ก ๊ฐ์์ ๋ชฉํ๋ฅผ ์ ํ๊ณ ์ ํด์ง ์์ ์ผ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ผ๋ก ์งํํ๋ค. ์ ๊ธฐ ํ์ ๋ ํ๋ณ ์งํ์ํฉ์ ๊ณต์ ํ์ผ๋ฉฐ, ํ๋ณ ์ผ์ ์ ๊ณต์ ํด ์ ํ๊ด๊ณ๊ฐ ์๋ ์์
์ ๋ํ ์ผ์ ์ ์กฐ์จํด์ ์๊ตฌ์ฌํญ์ด ๊ณ์ํด์ ๋ณํํ๋๋ผ๋ ๊พธ์คํ ์ํต์ผ๋ก ํ ๊ฐ ํ์
์ ์์ํ ์ด๋ฃจ์๋ค.
ํ ๋ด ํ์ ์ ์ํด์๋ ์ฝ๋ ์ปจ๋ฒค์ ์ ์ ํด ๋๊ณ ์ด์ ๋ฐ๋ผ ๊ฐ๋ฐํ๋ ๊ฒ์ด ํจ์จ์ ์ธ ํ์ ์ ์ค์ํ ๊ฒ์ด๋ผ ํ๋จํ๋ค. ๋ฐ๋ผ์ ๋ฐฑ์๋ ํ ๋ด๋ถ์์ Code Convention์ ์ง์ ํ๊ณ ๋ฌธ์ํ๋์ด ์ด์ ๋ง์ถฐ ์์ ํ๋ค.
Naming Convention
๋ณ์ ๋ฐ ํจ์๋ camelCase, ํด๋์ค๋ PascalCase, url์ kebab-case๋ฅผ ์ฌ์ฉํ๋ค.
Git commit Convention
์ปค๋ฐ ์ ๋ณ๊ฒฝ ๋ด์ฉ์ ๋ฐ๋ผ ๋ค์๊ณผ ๊ฐ์ ํ์
์ ์ปค๋ฐ ๋ฉ์์ง์ ๊ธฐ๋กํ๋ค.
a. feat : ์๋ก์ด ๊ธฐ๋ฅ ์ถ๊ฐ
b. fix : ๋ฒ๊ทธ ์์
c. docs : ๋ฌธ์ ์์
d. style : ๋ฌธ๋ฒ ๋ฐ ๋ณ๊ฒฝ์ฌํญ ์์
e. refactor : ์ฝ๋ ๋ฆฌํฉํ ๋ง
f. rename : ํ์ผ๋ช
๋ฐ ํด๋๋ช
์์
g. remove : ํ์ผ ์ญ์
h. comment : ์ฃผ์ ์์ ๋ฐ ์ถ๊ฐ
i. test : ํ
์คํธ์ฝ๋ ์ถ๊ฐ ๋ฐ ๋ณ๊ฒฝ
Github Pull Request Convention
a. ๋ชจ๋ ์์
์ ๋ธ๋์น๋ฅผ ์์ฑํด ์์
ํ๊ณ pull request๋ฅผ ํตํด BE ํ์ฅ์ด ๋ฆฌ๋ทฐํ๋ค.
b. PR ์์ฑ ์ ์ ํด์ง ์์์ ๋ฐ๋ฅธ๋ค.
c. PR ๋ฆฌ๋ทฐ ์ ์ด์๊ฐ ์๋ค๋ฉด ๋๋ฒ๋ง์ ์ฌ์ฉํด ๋ฌธ์ ์ํฉ์ ๊ฐ๊ฒฐํ ์ ๋ฌํ๋ค.
( 1. Commit Convention Issue / 2. Indentation Issue / 3. Comment Issue / 4. Class Naming Issue / 5. Variable Naming Issue / 6. Code Separation Issue )
Method Naming Conventions for Controller and Service
Controller์ Service์์ ๋ฉ์๋ ๋ช
์ CRUD-based์ ๋์ฌ๋ก ์์ํ๋ค.
: check, get, save, update, delete
DAO and DTO Naming Conventions
a. ์ํฐํฐ ๋ช
์ ๋ชจ๋ DAO๋ฅผ ๋ถ์ธ๋ค.
b. DTO๋ ๋ ๊ฐ์ง ์นดํ
๊ณ ๋ฆฌ๋ก ๋๋๋ค : RequestDTO / ResponseDTO
Bean Method Naming Conventions
Bean ๋ด๋ถ์ ๋ฉ์๋ ๋ช
์ ๋ชจ๋ exec๋ก ํต์ผํ๋ค.
Repository Naming Conventions
์ํฐํฐ ๋ช
๋ฐ๋ก ๋ค์ RepositoryJPA๋ฅผ ๋ถ์ธ๋ค.
โ์ถ์ ์ ๋ณด ํ์ธ ์น์ฌ์ดํธโ๋ก ์์ํ๋๋ฐ ๊ธฐํ์ ์งํํ๋ค ๋ณด๋ ์ฌ๋ฌ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์ด ๊ท๋ชจ๊ฐ ๋ถ์ด๋ฌ๋ค. ๊ฒฐ๋ก ์ ์ผ๋ก Main์ ๊ณต์ง์ฌํญ, ๊ณต์ฐ ํ์ํ ์ด๋ธ, ๋ถ์ค, ์์ฝ, ์ฃผ๋ฌธ์ ๊ธฐ๋ฅ์ด ํ์ ๋์๋ค! :)

1. ๊ณต์ง์ฌํญ
์ถ์ ๊ด๋ จ ๊ณต์ง๋ฅผ ํ ๋ฒ์ ํ์ธํ ์ ์๋ ํ์ด์ง์ด๋ค.
(์ถ์ ๊ด๋ จ ๊ณต์ง๋ ์ดํ ์ธ์คํ๊ทธ๋จ ๊ณ์ ๋ง ์
๋ก๋ํ๋๋ก ํ๊ฒ ๋ค๋ ์ดํ์ ์๊ฒฌ์ ๋ฐ๋ผ, ์นํ์ด์ง Festino ๊ด๋ จ ๊ณต์ง๋ง ์ฌ๋ฆฌ๋ ์ฉ๋๋ก ์ฌ์ฉ๋์๋ค.)

2. ๊ณต์ฐ ํ์ํ
์ด๋ธ
์ถ์ ๋ ์ง๋ณ๋ก ๋์๋ฆฌ, ์ฐ์์ธ ๊ณต์ฐ ์ ๋ณด๋ฅผ ์๊ฐ์ ๋ฐ๋ผ ํ์ธํ ์ ์๋ค.

3. ๋ถ์ค
์ฃผ๊ฐ๋ถ์ค, ์ผ๊ฐ๋ถ์ค[์ฃผ์ ], ํธ๋ํธ๋ญ, ํธ์์์ค์ ์ ๋ณด๋ฅผ ํ์ธํ ์ ์๋ ํ์ด์ง์ด๋ค.
์ง๋์ ๋ง์ปค๋ก ์์น ์ ๋ณด๋ฅผ ํ์ธํ ์ ์๊ณ , ๋ถ์ค๋ณ ์ปจ์
๊ณผ ๋จน๊ฑฐ๋ฆฌ ๋ฑ ๋ชจ๋ ์ ๋ณด๋ฅผ ํ์ธํ ์ ์๋ค.

4. ์์ฝ
ํ๊ณผ์ ์ฃผ์ ์ ์ ํ๋ฒํธ๋ฅผ ์ ์ด๋๊ฑฐ๋ ์ง์ ์ค์ ์์ ๊ธฐ๋ค๋ ค์ผ ํ๋ ๊ธฐ์กด์ ๋ถํธํจ์ ํด๊ฒฐํ๊ณ ์ ๋์
ํ ํ
์ด๋ธ๋ง(์์ฝ) ์์คํ
์ด๋ค.
์ด๋ฆ๊ณผ ์ ํ๋ฒํธ๋ฅผ ๊ธฐ์
ํด ์ฃผ์ ์ ์์ฝ์ ๊ฑธ์ด๋ ์ ์๊ณ , ํ๊ณผ๋ Admin ํ์ด์ง์์ ์์ฝ์ ๊ด๋ฆฌํ ์ ์๋ค.

5. ์ฃผ๋ฌธ
ํ๊ณผ์ ์์ฒญ์ ๋ฐ๋ผ ์ถ๊ฐํ ๊ฒ์ผ๋ก, QR์ฝ๋๋ก ์ ์ํ ์นํ์ด์ง์์ ํ๊ณผ์ ๋ฉ๋ด๋ฅผ ํ์ธํ๊ณ ์ฃผ๋ฌธํ๋ ๊ธฐ๋ฅ ๋ฐ ํ๊ณผ์ ๊ณ์ข ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ํ์ด์ง์ด๋ค.
์์ฝ ๊ธฐ๋ฅ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก, ํ๊ณผ๋ Admin ํ์ด์ง์์ ์ฃผ๋ฌธ์ ๊ด๋ฆฌํ ์ ์๋ค.

๐ก ํ๊ณผ์์ ์์ฝ ๋ฐ ์ฃผ๋ฌธ์ ๊ด๋ฆฌํ ์ ์๋ Admin ํ์ด์ง๋ ํ๊ณผ๋ณ๋ก ์ง์ ๋ ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธํ๋ฉด ๊ฐ ํ๊ณผ์ ๋ถ์ค ์ ๋ณด, ์์ฝ, ์ฃผ๋ฌธ์ ๋ค๋ฃฐ ์ ์๋๋ก ๊ธฐํํ๋ค.
1. ๋ถ์ค ์ ๋ณด ๊ด๋ฆฌ
ํ๊ณผ์์ ์ง์ ๋ถ์ค ์ด๋ฏธ์ง, ์ค๋ช
, ๋ฉ๋ด ๋ฑ์ ์ ๋ณด๋ฅผ ๋ฑ๋กํ๊ณ ์์ ํ ์ ์๋ ๊ธฐ๋ฅ์ด๋ค.

2. ์์ฝ ๊ด๋ฆฌ

3. ์ฃผ๋ฌธ ๊ด๋ฆฌ

์ฐ์ ํ์ ํ ๊ธฐ๋ฅ์ ๋ํด ์์ด์ดํ๋ ์์ ์์ฑํ ํ API ์ค๊ณ๋ฅผ ์งํํ๋ค.

์ถ์ ๋ ์ดํ์ํ๊ฐ ์ฃผ๊ดํ๋ ํ์ฌ์ด๋ค ๋ณด๋, ์ดํ์ํ์ ํ์ ์ด ์ด๋ฃจ์ด์ง๋ฉด ์ ๋ณด ์ ๊ณต ๋ฑ์ด ์ฝ๊ฒ ์ด๋ฃจ์ด์ง ๊ฒ ๊ฐ์ ์ปจํ์ ์๋ํ๋ค. ๊ทธ๋ฌ๋ ์ดํ ์ธก์ ํ์ ์ ํ๊ฒ ๋๋ฉด ์น์ฌ์ดํธ์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์ดํ์ ์๋ชป์ผ๋ก ๋์๊ฐ ๊ฒ์ ์ฐ๋ คํด ๊ฑฐ์ ํ๋ค.
(์ฐ๋ฆฌ ํ๊ต ๋ด์์๋ ์ ๋ก๊ฐ ์์ ๋ฟ๋๋ฌ, ๋ฏธํ ๋น์์๋ ์์ ํ ๊ฒฐ๊ณผ๋ฌผ์ด ์์๊ธฐ์ ์ ๋ขฐํ๊ธฐ ํ๋ค์์ ๊ฒ์ด๋ค. ์์ฝ์ง๋ง ์ด์ฉ ์ ์๋ ๊ฒ์ด ์ฌ์ค์ด๋ค.)
์ดํ๊ณผ ํ์ ์ ์ฑ์ฌ์ํค์ง ๋ชปํ์ง๋ง, ์ ๋ณด ์ ๊ณต์ด๋ ์๋ฒ๋น ์ง์ ๋ฑ์ ๋์์ ๋ฐ์ง ๋ชปํ๋ ๊ฒ์ผ ๋ฟ์ด๊ธฐ์ ์ ํ์ ์์์ ๊ธฐ์กด์ ๊ณํ๋๋ก ํ๋ก์ ํธ๋ฅผ ์งํํ๋ค :)
์ถ์ ํ๋ก์ ํธ๋ ๊ฐ๋ฐํ์ด ์ํ๋ ๊ธฐ๋ฅ๋ง ๋ฃ์ด์ ๋๋ ๊ฒ์ด ์๋๋ผ, ์ถ์ ๋ฅผ ์ฆ๊ธฐ๊ณ ์ ํ๋ ํ์ฐ๋ถ๋ค์ ๋์ฆ์ ๋ง์ถฐ๊ฐ์ผ ํ๋ค. ์ด์ ๋ฐ๋ผ ๊ธฐํ์ ์งํํ๋ฉด์๋ ์ด๊ธฐ์ ์ค์ ๋ ๋ชฉํ(๋จ์ ์ ๋ณด ์ ๊ณต)์ ๋ํด ์ธ๋ถ์ ์๊ฒฌ์ด ์ฌ๋ฌ ๋ฒ ๋ํด์ก๋ค.
๊น๋ค๋กญ๊ณ ๊ท๋ชจ๊ฐ ํฐ ๊ธฐ๋ฅ ์ค ํ๋์ธ ์ฃผ๋ฌธ ๊ธฐ๋ฅ๋ ๊ณผํ์ํ์ ์์ฒญ์ผ๋ก ์ถ๊ฐ๋์๋ค. ์ฃผ๋ฌธ์ ํฌํจํ ์ฌ๋ฌ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋ ๊ธฐํ ํ๋ฐ๋ถํฐ๋ ์ด๊ธฐ ๋ชฉํ์๋ "์ ๋ณด ์ ๊ณต"์์ ํ ๋จ๊ณ ๋ฐ์ด ์ถ์ ์ ํ์ํ ์ข ํฉ์ ์ธ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ๋ฐฉํฅ์ผ๋ก ์งํ๋์๋ค.
(๋ฌผ๋ก ์ฌ์ฉ์์ ์์คํ ์๊ฒฌ ๋์ ํญ๋์ ๊ธฐ๋ฅ์ ๊ฐ์ถ๊ฒ ๋ ๊ฒ์ ๊ฐ์ฌํ๊ฒ ์๊ฐํ๋ค! :>)
ํ๋ก ํธ์๋ Vue.js, ๋ฐฑ์๋๋ SpringBoot๋ฅผ ์ฌ์ฉํด ๊ฐ๋ฐํ๋ค.
ํ์๋ ๋ฐฑ์๋ ํ์์ผ๋ก์ Admin ๊ณต์ง์ฌํญ / ๊ณต์ฐ ํ์ํ ์ด๋ธ / ์ฃผ๋ฌธ ํํธ๋ฅผ ๋ด๋นํ๋ค.
๊ฐ๋ฐ ๊ด๋ จ ๋ด์ฉ์ ๋ฐ์ํ๋ ๋ฌธ์ ๋ฅผ ์์ฃผ๋ก ์ ๋ฆฌํด ๋ณด๊ฒ ๋ค. (ํ์๊ฐ BE ํ์์ผ๋ก์ ๊ฐ๋ฐ์ ์งํํ์ผ๋ฏ๋ก BE์์ ๋ฐ์ํ ๋ฌธ์ ์ ์น์คํ๊ฒ ๋๋ ์ ์ํด ๋ฐ๋๋ค)
admin์ ํ์ํ ์ด๋ธ(์ฐ์์ธ/๋์๋ฆฌ ๊ณต์ฐ) ํํธ๋ฅผ ๋ด๋นํ๋ค. ๊ทธ๋ฐ๋ฐ ์์ด์ดํ๋ ์์์ admin ์ฐ์์ธ/๋์๋ฆฌ ๊ณต์ฐ ๊ด๋ฆฌ ํ์ด์ง๊ฐ ์์๊ณ , ๋์์ธ ์ต์ข ๋ณธ์ด ๋์ค๊ณ ํ์ฐธ ํ๊น์ง๋ (์ฌ์ง์ด API ๊ตฌํ์ด ์๋ฃ๋ ํ์๋) ์ธ์งํ์ง ๋ชปํ๋ค.
โ admin์์ ๊ด๋ฆฌํ ์ ์๋ ๊ธฐ๋ฅ ์์ด ์ง์ DB์ ์ ๋ณด๋ฅผ ๋ฃ๊ธฐ๋ก ๊ฒฐ์ ํ๋ค.
ํ์ํ ์ด๋ธ ์ฐ์์ธ/๋์๋ฆฌ ๊ณต์ฐ์ ๊ธฐํํ์ ๋ ๋์จ ๊ฐ๋ตํ DB ๊ตฌ์กฐ์ API๋ฅผ ๋ชจ๋ ๋ค๋ฌ๊ณ ์์ ํ 10๊ฐ์ API๋ฅผ ๊ตฌํํ๋ ๋ฐ ์ผ์ฃผ์ผ์ด ๊ฑธ๋ ธ๋ค. ์ด๋ ต์ง ์์ง๋ง ์๊ฐ์ ์ํ๋ ์์ ์ด์๊ธฐ์ ์ผ์ฃผ์ผ์ ์๊ฐ์ ๋ญ๋นํ ๊ฒ์ด ๋์ด๋ฒ๋ ธ๋ค.
๊ฐ๋ฐ์ ์ ์ฒด์ ์ธ ํ์ ํ์ธํ์ง ์๊ณ โ๋ด๊ฐ ํ ์ผโ๋ก ์์ผ๋ฅผ ์ขํ๋๋ ๋ฐ๋์ ๋ฐ์ํ ๋ฌธ์ ๋ผ๊ณ ์๊ฐํ๋ค. ๋ ์ฑ ์๊ฐ์ ๊ฐ์ง๊ณ ๊ผผ๊ผผํ ํ์ธํด์ผ ํ๋ค.
์ง๋ PLAY-TINO ํ๋ก์ ํธ๋ โ๊ธฐํ์์ ์๋ต๋๋ฉด ์์ ์๊ฐ์ด ๊ธธ์ด์งโ์ ๋ฐฐ์ ๋ค๋ฉด, ์ด๋ฒ Festino ํ๋ก์ ํธ๋ โ๊ธฐํ์์ ์๋ต๋๋ฉด ๊ฐ๋ฐ ๊ฒฐ๊ณผ๋ฌผ์ด ๋ฌดํจํ๋ ์ ์์โ์ ๋ฐฐ์ ๋ค.
โ ์์ด์ดํ๋ ์ ์์ฑ ์, ํนํ ๋ด๊ฐ ๋ด๋นํ ํํธ๋ ๋์ ์์ผ๋ก ๋ถ์กฑํ ๊ฒ์ด ์๋์ง ๊ผผ๊ผผํ ์ดํด ๋ณด๋๋ก ํ์.
์ ๊ธ ํ์ธ ์ ์กฐ๋ฆฌ(Cook)์ ์์ฑํ๋ ๋ฉ์๋์์ ๋ฌธ์ ๋ฐ์ ๊ฐ๋ฅ์ฑ์ด ์๋ ๋ถ๋ถ์ ๋ฐ๊ฒฌํ๋ค.
๋ค์์ ์ฃผ๋ฌธ(Order)์ ํฌํจ๋ ๋ฉ๋ด ์ ๋ณด๋ฅผ ์ฌ์ฉํด ์กฐ๋ฆฌ(Cook) ๋ฆฌ์คํธ๋ฅผ ์์ฑํ๊ณ ์ ์ฅํ๋ ์ฝ๋์ด๋ค.
// Before
public void exec(OrderDAO orderDAO){
List<Map<String, Object>> menuList = orderDAO.getMenuInfo();
for (Map<String, Object> menu : menuList){
CookDAO cookDAO = createCookDAOBean.exec(menu, orderDAO);
saveCookDAOBean.exec(cookDAO);
}
}
์ ๋ฉ์๋๋ for ๋ฐ๋ณต๋ฌธ ๋ด๋ถ์์ save ๋ฅผ ํธ์ถํ๊ณ ์๋ค. ์ด ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ ๋จ์ ์ด ์๋ค.
menuList์ size๊ฐ 5๋ผ๊ณ ๊ฐ์ ํ๊ณ , ์ฒซ ๋ฒ์งธ Cook์ ์์ฑ ๋ฐ ์ ์ฅ์ ์๋ฃํ๋ค๊ณ ๊ฐ์ ํ์. ์ด๋ ๋ ๋ฒ์งธ Cook์ ์์ฑํ๋ ๋์ค ์ค๋ฅ๊ฐ ๋ฐ์ํด ํ๋ก์ธ์ค๊ฐ ์ข
๋ฃ๋ ๊ฒฝ์ฐ, ํ ๊ฐ์ Cook๋ง DB์ ๋ฐ์๋ ๊ฒ์ด๋ฏ๋ก ์์์ฑ์ ๊นจ์ง ์ํ๊ฐ ๋๋ค.save ๋ฉ์๋์ ๋ฐ๋ณต ํธ์ถ์ด saveAll ๋ฉ์๋์ ํธ์ถ๋ณด๋ค ๋นํจ์จ์ ์ด๋ค.@Transactional ์ด๋
ธํ
์ด์
์ด ์์@Transactional ์ REQUIRED ๋ฅผ ๊ธฐ๋ณธ ์์ฑ์ผ๋ก ๊ฐ์ง : ํธ๋์ญ์
์ํ ์ค ํธ๋์ญ์
๋ ๋ฉ์๋๊ฐ ํธ์ถ๋๋ฉด ์๋ก์ด ํธ๋์ญ์
์ด ์์ฑ๋๋ ๊ฒ์ด ์๋๋ผ ์์(๊ธฐ์กด) ํธ๋์ญ์
์ ํฉ๋ฅ๋จ// After
public void exec(OrderDAO orderDAO){
List<Map<String, Object>> menuList = orderDAO.getMenuInfo();
// Cook DAO ๋ฆฌ์คํธ ์์ฑ
List<CookDAO> cookDAOList = new ArrayList<>();
// menuList์์ ํ๋์ฉ ๊บผ๋ด์
for (Map<String, Object> menu : menuList){
// ๋ฉ๋ด ์ ๋ณด๋ก Cook DAO ์์ฑ
CookDAO cookDAO = createCookDAOBean.exec(menu, orderDAO);
// ์์ฑํ Cook DAO ๋ฆฌ์คํธ์ ์ ์ฌ
cookDAOList.add(cookDAO);
}
// Cook DAO ๋ฆฌ์คํธ ์ ์ฅ
saveCookDAOBean.exec(cookDAOList);
}
โ for ๋ฐ๋ณต๋ฌธ ๋ด์์๋ ์ฃผ ๋ชฉ์ ์ธ DAO ์์ฑ๋ง ํ๊ณ , ์ ์ฅํ DAO๋ List์ ์ ์ฌํด ๋์๋ค๊ฐ saveAll ํ๋ ๋ฐฉ์์ผ๋ก ๋ณ๊ฒฝํ๋ค.
์กฐ๋ฆฌ์ค ์ฃผ๋ฌธ ์กฐํ API ํธ์ถ ์ ์ฒ๋ฆฌ ์๊ฐ์ด ๊ฝค ์ค๋ ๊ฑธ๋ฆฌ๋ ๊ฒ์ ๋ฐ๊ฒฌํ๋ค.
์กฐ๋ฆฌ์ค ์ฃผ๋ฌธ ์กฐํ๋ ๊ฐ ๋ฉ๋ด๋ณ๋ก ์กฐ๋ฆฌ(Cook)์ ์กฐํํด ๋ณด์ฌ์ฃผ๋ ๋ฐฉ์์ธ๋ฐ, ์ด๋ ํ ์ด๋ธ๋ฒํธ(tableNum)์ ํจ๊ป ์๋ต์ผ๋ก ๋ณด๋ด์ค์ผ ํ๊ธฐ์ ์ฃผ๋ฌธ ํ ์ด๋ธ์์ ํ ์ด๋ธ๋ฒํธ๋ฅผ ์กฐํํด์ ๋ณด๋ด๋ ๋ก์ง์ด์๋ค. ์ด๊ฒ์ด ์ฒ๋ฆฌ์๊ฐ์ ์ํฅ์ ๋ง์ด ๋ฏธ์ณค์ ๊ฒ์ด๋ผ ํ๋จ, ์์ ํ๊ธฐ๋ก ํ๋ค.
์ ์ด์ ์กฐ๋ฆฌ(Cook) ์์ฑ ์์ tableNum ํ๋์ ํ
์ด๋ธ ๋ฒํธ๋ฅผ ์ ์ฅํด๋๋ ๋ฐฉ์์ผ๋ก ๋ณ๊ฒฝํ๋ค.
๊ธฐ์กด์๋ ์กด์ฌํ๋ ๋ชจ๋ ์กฐ๋ฆฌ(Cook)์์ ๊ฐ๊ฐ ํ ์ด๋ธ ๋ฒํธ๋ฅผ ์กฐํํด์ผ ํ๋๋ฐ, ๊ทธ ์์ ์ด ์ฌ๋ผ์ง๋ ํจ์ฌ ํจ์จ์ ์ด๋ค. Entity์ ํ์ํ ์ ๋ณด๋ง ๋จ๊ธฐ๋ ๊ฒ๋ ์ค์ํ๋, ์ฒ๋ฆฌ ์๋๋ฅผ ์ํด ๋ถํ์ํ ์กฐํ ์์ ์ ์ค์ด๋ ๊ฒ๋ ๋งค์ฐ ์ค์ํจ์ ๋ค์ ํ ๋ฒ ๋๊ผ๋ค.
์ฃผ๋ฌธ(Order)๋ก๋ถํฐ ์กฐ๋ฆฌ(Cook)์ด ๋ง๋ค์ด์ง๋ค. ํ์ ๊ฐ ์๊ฒฌ ์กฐ์จ ๊ฒฐ๊ณผ์ ๋ฐ๋ผ, ์ฃผ๋ฌธ๊ณผ ์กฐ๋ฆฌ ๋ชจ๋ ๋ฉ๋ด๋ ์์ด๋ ์์ด ์ด๋ฆ์ผ๋ก๋ง ๋ค๋ฃจ๊ณ , ์กฐํํ ๋์๋ ๋ฉ๋ด ์ด๋ฆ์ ๊ธฐ์ค์ผ๋ก ์กฐํํ๋ค. ์ฆ, ๊ตณ์ด menuId๋ฅผ ์ ์ฅํด๋๊ณ ๋ฉ๋ด๋ฅผ ์กฐํํ๋ ๋ฐฉ์์ผ๋ก ๋ฉ๋ด-์ฃผ๋ฌธ, ๋ฉ๋ด-์กฐ๋ฆฌ ๊ฐ์ ๊ด๊ณ๋ฅผ ๋ง๋ค์ง ์๊ณ menuName์ ์ ์ฅํด ์ฌ์ฉํ๋ค.
โ ๊ทธ๋ฌ๋ ์ด ๋ฐฉ์์ ๋ฌธ์ ์ ์ด ๋ง์ด ๋ฐ๊ฒฌ๋์ด ์์ ํ๊ฒ ๋์๋ค.
๋ฌธ์ 1. ํต๊ณ
๋ฉ๋ด ์ด๋ฆ์ด ๋ณ๊ฒฝ๋๋ฉด ๊ธฐ์กด์ ์ด๋ฆ์ผ๋ก ์ ์ฅ๋ ์กฐ๋ฆฌ(Cook)์ ํต๊ณ์ ํฌํจ์ด ์ ๋๋ค.
๋ฉ๋ด ์ด๋ฆ์ด ๋์ผํ๋ฉด ํด๋น ํ๊ณผ์ ์กฐ๋ฆฌ(Cook)์ด ์๋๋ฐ๋ ํต๊ณ์ ํฌํจ๋๋ค. โ ์๋ ํ๊ณผ๋ณ DB ๋ถ๋ฆฌ๊ฐ ์ ๋์ด ์์ด์ ๊ทธ๋ฐ ๊ฒ์ด๊ธฐ๋ ํ์ง๋ง, ๋์ผ ํ๊ณผ์์ ๊ฐ์ ์ด๋ฆ์ ๋ค๋ฅธ ๋ฉ๋ด๋ฅผ ๋๋ ๊ฒฝ์ฐ๋ ์๊ฐํ๋ค๋ฉด ๋ฌธ์ ๊ฐ ๋ง๋ค!
๋ฌธ์ 2. ์กฐ๋ฆฌ์ค ์ฃผ๋ฌธ ์กฐํ
๋ฉ๋ด ์ด๋ฆ์ด ๋ณ๊ฒฝ๋๋ฉด ๊ธฐ์กด์ ์ด๋ฆ์ผ๋ก ์ ์ฅ๋ ์กฐ๋ฆฌ(Cook)์ ์กฐ๋ฆฌ์ค ์ฃผ๋ฌธ ์กฐํ ์ ์กฐํ๋์ง ์๋๋ค.
(+) ๋ฉ๋ด๊ฐ ์ญ์ ๋๋ ๊ฒฝ์ฐ๋ ๊ณ ๋ คํด soft-delete๋ ๋ฉ๋ด์ ๋ํด์๋ ํ๋ ค๊ณ ํ์ผ๋ ์ด๋ ํ์ ์ด๋ผ๋ ์ต์
์ด ์๊ธฐ์ ๋ถํ์ํ๋ค ํ๋จํ๋ค.
ํด๊ฒฐ
์ฃผ๋ฌธ ์์ฒด์ ๋ฉ๋ด ์ ๋ณด๋ฅผ ๋ณด๊ธฐ ์ํ API์ ๋ก์ง์ ๊ทธ๋๋ก ๋จ๊ฒจ, ์ฆ menuName์ ๊ฐ์ง๊ณ ์๋ค๊ฐ ๊ทธ๋๋ก ๋ณด์ฌ์ค๋ค. ๋ฌธ์ ๊ฐ ๋ฐ์ํ ํต๊ณ&์กฐ๋ฆฌ์ค ์ฃผ๋ฌธ ์กฐํ API๋ Cook์ ์กฐ๋ฆฌํ ๋ menuName์ด ์๋ menuId๋ก ์กฐํํ๋ค.
์ด ๋ฐฉ์์ ์ ์ฉํ๊ธฐ ์ํด ๋ค์๊ณผ ๊ฐ์ด ์์ ์ด ํ์ํ๋ค.
Order ์์ฑ ์ ๋ฉ๋ด ์ ๋ณด๋ฅผ ๋ด๋ Map์ menuId๋ ํจ๊ป ์ ์ฅํ๋๋ก, Cook ์์ฑ ์์๋ Order์ ๋ฉ๋ด์์ด๋๋ฅผ ๋ฐ์์ ํ๋์ ํ๋๋ก ์ ์ฅํ๋๋ก. ๋์ Cook์์๋ ๊ธฐ์กด์ menuName ํ๋๋ฅผ ์ ๊ฑฐ.
๊ณ ์ฐฐ
์ฌ์ค ๋ฌธ์ 1 : ํต๊ณ ์๊ธฐ๊น์ง๋ง ๋์์ ๋์๋ ๊ธฐ์กด ๋ก์ง์ ์ ์งํ๋ ค๊ณ ํ์๋ค. ๋ฐ์ํ๋ ๋ฌธ์ ์ ๋นํด ์์ ์ฌํญ์ด ๋น๋ํ๋ค๋ BEํ์ฅ๋์ ํ๋จ ํ์ ๊ทธ๋ฌํ๋ค. ๊ทธ๋ฌ๋ ์กฐ๋ฆฌ์ค ์ฃผ๋ฌธ ์กฐํ API์ ๋ฌธ์ ๋ ๊ทธ๋ฅ ๋ ์ ์์ด์ ์์ ํ๊ฒ ๋์๊ณ , ๋ง์ ์์ ์ฌํญ์ ์ ๋ฆฌํ๋ ๊ณ ์น ๊ฑด ๊ทธ๋ ๊ฒ๋ ๋ง์ง๋ ์์๋ค.
๋ถํ์ํ ๊ด๊ณ๋ฅผ ๋์ง ์์๋ ์๋์ ๋ฐ๋ผ ๊ฒฐ์ ํ ๋ฐฉ๋ฒ์ด์ง๋ง ์ฌ๋ฌ ๋ฌธ์ ๊ฐ ๋ฐ์ํจ์ ๋ฐ๋ผ ์์ ๋์๋ค. ์์ผ๋ก๋ โ๊ด๊ณ๋ฅผ ๋์ง ์๋๋ค.โ, โ๋ฐ์ํ ๋ฌธ์ ์ ์ ๋โ, โํด๊ฒฐ์ ๋๋ ์๊ฐ์ ๋น์ฉโ์ ์ ์ ํ ๊ณ ๋ คํด ์ต์ ์ ๋ฐฉ์์ ์ ํํ ํ์๊ฐ ์๊ฒ ๋ค๊ณ ์๊ฐํ๋ค.

์ธ์คํ๊ทธ๋จ, ๋ํ์ ์ปค๋ฎค๋ํฐ ์๋ธ๋ฆฌํ์ ์ผ๋ก ์น์ฌ์ดํธ ํ๋ณด๋ฅผ ์์ํ๋ค.
์ค์ ๋ก ์น์ฌ์ดํธ๋ฅผ ๊ณต๊ฐํ๊ธฐ ์ , ์ธ์คํ๊ทธ๋จ๊ณผ ์๋ธ๋ฆฌํ์์ผ๋ก ํฐ์ ๋ฅผ ์ฌ๋ ธ๋๋ฐ ๋ฐ์์ด ๋งค์ฐ ๋จ๊ฑฐ์ ๋ค!!โค๏ธโ๐ฅ
24๋ ํ๋ฐ๊ธฐ์ 3๋ฒ์งธ BEST ๊ฒ์๊ธ์ด ๋๋ ์๊ด์ค๋ฌ์ด ์ผ๋ ์์๋ค :)

์คํ๋ผ์ธ ํ๋ณด๋ ํฌ์คํฐ๋ฅผ ์ ์ํด ๊ต๋ด ๊ณณ๊ณณ์ ๋ถ์ฐฉํ๋ค!
์ต๋ํ ๋ง์ ํ์ฐ๋ถ๋ค์ด ํฌ์คํฐ๋ก ์น์ฌ์ดํธ๋ฅผ ์ ํ์ค ์ ์๋๋ก ๋์ ์ ๋๋ ๊ฒ์ํ๋ง๋ค ๊ผผ๊ผผํ ๋ถ์ฌ ๋์๋ค :)
์ถ์ ๋น์ผ์ด ๋๊ธฐ ์ ๊น์ง๋ ์ฝ 2~3์ฃผ ๊ฐ ์๋ ์์ด ๋ง์ ํ ์คํธ๋ฅผ ๊ฑฐ์ณ ๋ฒ๊ทธํฝ์ค๋ฅผ ํ์ง๋ง ๊ฒฐ๊ตญ ๋น์ผ์๋ ๋ฌธ์ ๋ ๋ฐ๊ฒฌ๋์๋ค. ์ ๋ ์๋ฒฝํ๋ค๊ณ ํ์ ํ ์ ์๋ ๊ฒ์ด ์ํํธ์จ์ด์ด๊ธฐ์ ๋น์ฐํ ์ผ์ด์ง๋ง, ์ฌ์ ์ธ ์๋ฐ๊ฐ์ ์ด์ฉ ์ ์์ด ๋ฐ๋ผ์๋ค...๐ฅฒ
ํ๋๋ง ์์ฑ๋์ด์ผ ํ๋ ์ฃผ๋ฌธ์ด ๋์์ 3๊ฐ์ฉ ์์ฑ๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
ํ์ธํด ๋ณด๋ '์
๊ธ ์๋ฃ' ๋ฒํผ์ ๋๋ฅด๊ณ API ์์ฒญ์ด ์๋ฃ๋๊ธฐ๊น์ง ์๊ฐ์ด ๊ฑธ๋ฆฌ๋๋ฐ, ์์ฒญ์ ์ฒ๋ฆฌํ๋ ๋์ ๋ฒํผ์ ์ฌ๋ฌ ๋ฒ ๋๋ฅด๋ฉด ๋๋ฅธ๋งํผ ์์ฒญ์ด ๋ณด๋ด์ง ๊ฒ์ด์๋ค.
์ด๋ ํ๋์ ์์ฒญ์ ์ฒ๋ฆฌํ๋ ๋์ ๋ฒํผ์ด ๋๋ฆฌ์ง ์๋๋ก ์์ ํด ํด๊ฒฐํ๋ค.
Main์์ ๋ถ์ค ์์ฝ ์ ํ์๋๋ ์์ฝ ๋๊ธฐ ํ ์์ Admin์์ ํ์๋๋ ์ค์ ์์ฝ ๋๊ธฐ ํ ์๊ฐ ์ผ์นํ์ง ์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
์ด๋ ์ถ์ ๋ ๋ฒ์งธ ๋ ์ ๋ฐ๊ฒฌ๋์๋๋ฐ, ํ์ธํด ๋ณด๋ ์ ๋ ์ ์ฒ๋ฆฌ๊ฐ ์๋ฃ๋์ง ์์ (์์ฝ ๋๊ธฐ ์ํ์ธ) ์์ฝ๋ค์ด ๋จ์ ์์ด ๋ฐ์ํ๋ ๋ฌธ์ ์์ ํ์ธํ๋ค.
๋ฌธ์ ํ์ ์์ ์๋ ์ด๋ฏธ ๋ถ์ค๊ฐ ์ด์๋๊ณ ์๋ ์ํฉ์ด๋ผ ๋ก์ง์ ์์ ํ๊ธฐ์ ์ ์ ํ์ง ์์๊ธฐ์, ์์ง ์ฒ๋ฆฌ๋์ง ์์ ์์ฝ๋ค์ ์ง์ ์๋ฃ ์ํ๋ก ๋ณ๊ฒฝํจ์ผ๋ก์จ ์์๋ก ํด๊ฒฐํ๋ค.
โ ์์ ๊ฐ์ ์ด์๋ค์ด ์์์ง๋ง, ์ฌ๊ณ ๋ผ ํ ๋งํผ์ ํฐ ๋ฌธ์ ๋ ํฐ์ง์ง ์์ ๊ฐ์ธ์ ์ผ๋ก๋ ๋คํ์ด๋ผ๊ณ ์๊ฐํ๋ค!๐ (๋ฌผ๋ก ์ด๋ ์ง์์ ์ธ ํ ์คํธ์ ์ฌ๋ฌ ์ํฉ์ ๋ํ ๋๋น์ ํ์จ์ค ๋ชจ๋ ํ์๋ค ๋์ด๋ค)

์๋ ์ถ์ ์ฒซ๋ ์ธ 9์ 11์ผ์ ํต๊ณ์ด๋ฉฐ, ์๋น์ค๊ฐ ์ด๋ฃจ์ด์ง 5์ผ(9/9 ~ 9/13) ๊ฐ์ ์ต์ข ์ ์ธ ํต๊ณ๋ ๋ค์๊ณผ ๊ฐ๋ค.
๐
๋์ ์ฌ์ฉ์์ 3091๋ช
๋์ ์ ์ฒด ์กฐํ์ 80357ํ
๋์ ์ ์ฒด ์์ฝ ๊ฑด์ 72๊ฑด
๋์ ์ ์ฒด ์ฃผ๋ฌธ ๊ฑด์ 1308๊ฑด
๐ฅ๊ฒฐ๋ก ์ ์ผ๋ก ์ฝ 3์ฒ ๋ช
์ ์ฌ์ฉ์ ์, 8๋ง ํ์ ์กฐํ ์๋ฅผ ๋ฌ์ฑํ๊ณ , ์ฝ 1,300 ๊ฑด์ ์ฃผ๋ฌธ์ ๋ฐ์๋ค!!๐ฅ
์ฝ 7์ฒ ๋ช
์ ์ฌํ์ ์ ๋๋น 10๋ฐฐ๊ฐ ๋๋ ์กฐํ ์๋ฅผ ๋ฌ์ฑํ ๊ฒ์ด ๋ฟ๋ฏํ๊ณ , ๊ฐ์ง ๊ฒฝํ์ ์ป์ ๊ฒ ๊ฐ์ ๊ต์ฅํ ๋ง์กฑ์ค๋ฝ๋ค! ๐
โ ์ฌ์ค์ ์ฒ์์ ์๊ฐํ๋ "ํ๋์ ์น์ฌ์ดํธ์์ ๋ชจ๋ ์ ๋ณด๋ฅผ ์ฝ๊ณ ํธ๋ฆฌํ๊ฒ ๋ณด์!" ๋ผ๋ ๋ชฉํ๋ฅผ ์จ์ ํ๊ฒ ๋ฌ์ฑํ์ง๋ ๋ชปํ๋ค. ์ดํ์ํ์ ํ์ ์ด ์ด๋ฃจ์ด์ง์ง ์์ ๊ทธ๋ ๊ฒ ๋ ์ ์์ ์์ฌ์์ด ๋ง์ด ๋จ๋๋ค.
์ด๋ ๊ฒ ๋ ๋ฌ ๋ฐ์ด๋ผ๋, ๊ธธ์ง๋ง ์ด๋ฐํ๋ ์๊ฐ์ด ๋ชจ๋ ์ง๋๊ฐ๋ค :>
์์ ์ง์ ๊ฒ์ฒ๋ผ ์์ฌ์ด ์ ๋ ์์์ง๋ง, ๊ฒฐ๊ณผ๋ ๋ง์กฑ์ค๋ฝ๊ณ , ๋ถ๋ช
ํ ๊ฐ์ง ๊ฒฝํ์ ๋ง๋ค์ด์ค ํ๋ก์ ํธ์๋ค.
์ด๋ฒ์ ์์ฌ์ ๋ ์ ๋ค์ ๊ธฐํ๊ฐ ๋๋ค๋ฉด ๋ค์ ํด ๋๋์ ์์ ๋ฆฌํฉํ ๋ง์ ์งํํ๋ฉฐ ๋ฐ์ํด ๋ฐ์ ์ํจ๋ค๋ฉด ๋์ฑ ์ข์ ๊ฒ ๊ฐ๋ค!๐
์๋ ํ์ธ์! ๋ธ๋ก๊ทธ ๋๋ฌด ์ ๋ณด๊ณ ์์ต๋๋คใ ใ
์ ๋ ์ฌํด ์ ํฌ ํ๊ต ์ถ์ ์ฑ ๊ฐ๋ฐ์ ๋ชฉํ์ค์ธ๋ฐ ๋ธ๋ก๊ทธ๋ฅผ ๋ณด๊ณ ๋๋ ๋๋ฌด ์ ์ฝํ์ ๊นํ๋ธ๋ erd ๊ตฌ์ฑ๋ ๊ถ๊ธํด์ก์ต๋๋ค..! ํน์ ๋ณด์ฌ์ฃผ์ค ์ ์์ผ์ ์ง ์ฌ์ญค๋ด ๋๋คโบ๏ธ