์ฒ์ ์์ฌ ์๋ฃจ์ ์น์ ๊ธฐํ์ ์์ฒด ๊ฐ๋ฐํ API๋ฅผ ์ด๋ค์์ผ๋ก ์ฌ์ฉํ๋์ง์ ๋ํ ์์ ํ์ด์ง์๋ค. ๋๋ฌธ์ ํ์ฅ์ฑ์ ๊ณ ๋ คํ์ง ์์ ์ํ๋ก ๊ฐ๋ฐ์ ์์ํ๋๋ฐ, ์น ์๋น์ค๋ฅผ ์ํํ ํ๊ฒ ๋๋ฉด์ ๊ท๋ชจ๊ฐ ์ปค์ง๊ฒ ๋์๋ค. ๊ทธ ์์ค์ ๊ธํ๊ฒ ๋ค์ด์ค๋ ๊ธฐ๋ฅ๋ค์ด ๋ง์ ๊ณ์ ๋ง๋ถ์ด๊ณ ๋ง๋ถ์ด๊ณ ํ๋ค๋ณด๋ ์ฝ๋๊ฐ ๋๋ฌด ์ง์ ๋ถํด์ก๊ณ ... ๊ทธ๋ฌ๋ค ์ด๋๋ก ๋ ์๋ ์๋ค! ํ๊ณ ๋๋์ ์ธ ๊ฐํธ์ ๋ค์ด๊ฐ๋ค.
1. ์คํฌ๋ฆฝํธ classํ
๊ฐ์ฅ ๋จผ์ ์ด ์ค๊ตฌ๋๋ฐฉํ ์ฝ๋๋ค์ ๋ฌถ์ด์ ๊ด๋ฆฌํ ํ์๊ฐ ์๋ค๊ณ ์๊ฐ๋์ด, ๋์ผํ ๊ธฐ๋ฅ๋ผ๋ฆฌ (์. ํ ์คํธ/์ํฐ๋งํฌ/์๋ช ) ๊ทธ๋ฃนํํ์ฌ classํ๋ฅผ ์์ผฐ๋ค.
๋์ผํ ๊ธฐ๋ฅ์ด ์ฌ๋ฌ๊ณณ์์ ์กฐ๊ธ์ฉ ๋ค๋ฅด๊ฒ ์ฌ์ฉ๋๊ณ ์์ด, ๋์ผํ ๋ถ๋ถ์ ๋ฌถ๊ณ ๋ค๋ฅธ ๋ถ๋ถ์ ์ต์ ๊ฐ์ ์ฃผ์ด ์ ์ดํ ์ ์๋๋ก ๊ฐ์ ํ๋ค.
App.js์์ ์ ์ฒด Class๋ฅผ ๊ด๋ฆฌํ ์ ์๋๋ก ํ์๊ณ , ๊ทธ ์์์ ์ต์ ์ ๋ฐ๋ผ ๊ฐ๊ฐ์ ๊ธฐ๋ฅ๋ค์ ๋ด๊ณ ์๋ Class๋ฅผ ํธ์ถํ๋๋ก ํ์๋ค. ๊ฐ ๊ธฐ๋ฅ์ ๋ฐ์ดํฐ ์ ์ถ๋ ฅ ๊ด๋ฆฌ๋ Vo์์ ํ๊ณ ์๋ค.
2. ๋ชจ๋ํ
1๋ฒ์ ์ฐ์ฅ์ ์ผ๋ก, script ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ถ๋ฌ์ค๋ js ํ์ผ๋ค์ ๋ชจ๋ํํ์ฌ import ๋ฐฉ์์ผ๋ก ๋ถ๋ฌ์ฌ ์ ์๋๋ก ํ๋ค. ๋ํ ๊ธฐ๋ฅ๋ค์ ์ฌ์ฉ ์ฌ๋ถ๋ฅผ ์ต์ ํ ํ์ฌ, ์ฌ์ฉํ๋ ๊ธฐ๋ฅ๋ค๋ง import ๋ ์ ์๋๋ก ํ์๋ค.
3. ๋ฐ์ดํฐ ์ ์ฅ ๋ฐฉ์ ๋ณ๊ฒฝ
๊ธฐ์กด์๋ input hidden์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๊ณ ์์๋๋ฐ, ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ ๋๋ง๋ค input์ ์ถ๊ฐํด์ผ ํ๊ณ , ์์๋ฅผ ๋ฐ๊พธ๊ฑฐ๋ ์ค๊ฐ ๋ฐ์ดํฐ๊ฐ ์ญ์ ๋ ๊ฒฝ์ฐ ๊ด๋ จ๋ input์ ๋ชจ๋ ์์ ํด์ผํ๋ค.
๊ทธ๋์ object๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ ์ ์๋๋ก ๋ณ๊ฒฝํ์๊ณ , Vo ํ์ผ์์ ๋ฐ์ดํฐ ์ ์ถ๋ ฅ์ ๊ด๋ฆฌํ ์ ์๋๋ก ๊ฐ์ ํ์๋ค.
back๋จ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ผ๋๋ ajax๋ก object ํํ๋ก ์ ์กํ๊ฒ๋ ํ์๋ค.
4. ES6 ๋์
ES6๋ฅผ ๋์ ํ ๊ฐ์ฅ ํฐ ์ด์ ๋ ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด์ด๋ค. ๋์ ์ผ๋ก ์ถ๊ฐ๋๋ dom์ด ๋ง์ ๊ด๋ฆฌ๊ฐ ๋ถํธํ๋๋ฐ ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด์ ์ฌ์ฉํ์ฌ ๋ณ์๋ฑ์ ์ฌ์ฉํ๋๋ฐ์ ์ฉ์ดํด์ก๊ณ , ์์ค๋ ํ์ธต ๊น๋ํด์ก๋ค.
const/let, Arrow functions๋ฑ ES6์ ์ถ๊ฐ๋ ๋ฌธ๋ฒ๋ค์ ์ต๋ํ ํ์ฉํ ์ ์๋๋ก ํ์๋ค.
5. UI ๊ฐ์
์ต์ ํ ์ํจ ๊ธฐ๋ฅ๋ค์ ์ฉ์ดํ๊ฒ ์ ์ฉํ ์ ์๋๋ก UI๋ฅผ ์ต์ ์ ๋ฐ๋ผ ๋ธ๋ก์ฒ๋ผ ์กฐ๋ฆฝํ์ฌ ์ฌ์ฉํ ์ ์๋๋ก ๋ณ๊ฒฝํ๋ค.
ํญ์ ๋ง๊ฐ์ ์ซ๊ธฐ๋ฉฐ ์์ ์ ํ๋ค๋ณด๋ ์ ๋๋ก ๋ ๋ฆฌํฉํ ๋ง์ ํด๋ณธ์ ์ด ์์๋๋ฐ, ์์ ํ ๋ถ๋ถ์ด ์์ฒญ ๋ง์๊ณ ๊ธฐ๋ํ๋ ๊ฒ ๋ณด๋ค ํจ์ฌ ๋ง์ด ๊ฐ์ ๋ ๊ฒ ๊ฐ์ ๋ง์กฑ์ค๋ฌ์ ๋ค.
Class ๊ตฌ์กฐ๋ฅผ ์ฒ์๋ถํฐ ์ค๊ณํ์ฌ ์ฌ์ฉํด๋ณธ ๊ฒ์ ์ฒ์์ด์๋๋ฐ, ์ง์ ์ฌ์ฉํด๋ณด๋ ๊ทธ๋์ ๋ง๋งํ๊ฒ ์๊ฐํ๋ class๋ผ๋ ๊ฐ๋ ์ด ์กฐ๊ธ์ฉ ์๋ฆฌ์กํ ๊ฒ ๊ฐ๋ค.
front ๋ฆฌํฉํ ๋ง์ ์ผ์ถ ๋ง๋ฌด๋ฆฌํ๊ณ ์์๋๋ฐ ๊ธฐํ์ด ๋ณ๊ฒฝ๋๋ฉด์ back๋จ๊น์ง ๊ทธ๋ฌ๋๊น ์ง๊ธ๊น์ง ๊ฐ๋ฐํ๋ ๊ฒ๋ค์ ์น ๋ค ๊ฐ์ ์์ด์ผ ๋๊ฒ ์๊ฒผ๋ค... (์ด๊ฒ ๋ฌด์จ ๋ ๋ฒผ๋ฝ์ด์ค๐ฏ)
๋๋ฌผ๋์ง๋ง... ์ฌํ์ง๋ง... ์ง๊ธ๊น์ง ๋ฆฌํฉํ ๋ง ํ๋ฉด์ ๋ฐฐ์ด๊ฒ๋ค์ ์ฌ๋ผ์ง์ง ์์ํ ๋ ์ฒ์๋ถํฐ ๋ค์ํ๋ฉด ์ง๊ธ๋ณด๋ค ๋ ์ข์ ์ฝ๋๊ฐ ๋์ฌ ์ ์๊ฒ ์ง? ๐ฅฒ
๊ฐ๋ฐ์ ์๊ณ ๋ ์๊ณ ๋ ๋ค์ํ๊ณ ์ ์ฐ์์ธ ๊ฒ ๊ฐ๋ค. ์ต๊ทผ ์ฝ์ ์ฑ ์์ ์๊ณ ์์ ํ๊ณ ๋ ์์ ํ๋ค๊ฐ ์ต์ด์ ๊ฒ์ด ์์ด์ ธ์ผ ์์ฑ์ด๋ผ๋ ๊ธ์ ๋ณธ ๊ฒ ๊ฐ์๋ฐ ๊ทธ๊ฒ ๋ง๋ ๊ฒ ๊ฐ๋ค. ์์ข์์ข๊ฐ๋ฐ์..!
๋ ๊ธ๋ก ์ ๋ฆฌํด๋ด์ผ์ง ํ๊ณ ์๊ฐ๋ง ํ๋ค๊ฐ, ๋ง์ ์ฐ๋ ค๊ณ ํ๋ฉด ๋ง๋งํด์ ธ์ ๋ช์ ์ฐ๊ณ ํฌ๊ธฐํด ๋ฒ๋ ธ์๋๋ฐ ๊น๊ฒ ๊ณ ๋ฏผํ์ง ์๊ณ ์๊ฐ๋๋๋ฐ๋ก ์ญ ์จ๋ด๋ ค๊ฐ๋๊น ์ฐ๋ฉด์ ์ ๋ฆฌ๋ ๋๊ณ ์๊ฐ๋ณด๋ค ์ฌ๋ฐ๋ ๊ฒ ๊ฐ๋ค. ์์ผ๋ก๋ ์ข ์ข ์จ๋ณผ ์ ์๋๋ก ํด๋ด์ผ์ง!