๋ฐฑ์๋์์ ๊ธฐ์ด์ ์ผ๋ก ์ฌ์ฉํ๋ MVC ํจํด์ ๋ํด ๊ณต๋ถํด๋ณด๊ณ ์ ํ๋ค. MVCํจํด์ด๋ Model, View, Controller์ ํจํด์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ก์ ํธ๋ฅผ ๊ตฌํํด์ผ ํ๋ค๋ ์ผ์ข ์ ๊ท์น์ด๋ค. Model์ DB, View๋ ํ๋ก ํธ ํ๋ฉด, Controller๋ API๊ฐ์
๋ค์ ์ง๋๋ฅผ ๋๊ฐ๊ธฐ์ ์ github์ ์ฝ๋๋ฅผ ์ ๋ฐ์ดํธํ๊ธฐ ์ํด git์ ์ธํ ํด๋ณด์๋ค. ๊ทธ๋ฐ๋ฐ inteliJ๋ VSCode์ ๋ฌ๋ฆฌ ์ฝ๊ฒ ์ฐ๋๋์ง ์์๋ค...git ์ ์ ์ ํ ๋ github desktop์ ์ฌ์ฉํ์ฌ ์๊ฒฉ Repository์ ํด๋ก ํ๋ค. ํด๋ก ํ์ฌ ์๊ธด ํด๋
์๋ฒ ๊ฐ๋ฐ์ NodeJS์ Express๋ก ํ๊ณ ์์๋๋ฐ ์ต๊ทผ์ Java๋ก ๊ฐ๋ฐ์ ๊ผญ ํด์ผ๊ฒ ๋ค๊ณ ๋๊ผ๋ค.์ฒ์ ์๊ฐ์ผ๋ก๋ NodeJS -> TypeScript -> NestJS ์์ผ๋ก ๋ฐฐ์ฐ๊ณ ๊ฒฝ๋ ฅ์ ์์ ๋ค์์ Java ์คํ์ ์์๋ณด์๋ ์๊ฐ์ ํ์๋ค. ๊ทธ๋ฐ๋ฐ ์ต๊ทผ ๋ฉด์
์ค๋์ MVC์ค์์ Models๋ฅผ ๊ณต๋ถํด๋ณด๊ณ ์ ํ๋ค.๋ฐฑ์๋ ์๋ฒ์ DB๋ฅผ ์ฐ๋ํ๋ ๊ฒ์ ์๋ฒ์ ๊ธฐ์ด๋ผ๊ณ ํ ์ ์๋ค.๊ธฐ์กด์ ์ฌ์ฉํ๋ nodeJS๋ mySQL DB๋ฅผ ์ฐ๋ํ์ฌ ์๋ฒ๋ฅผ ๊ตฌํํ์๋ค. ์ธํ ์ npm์์ mysql์ ๋ฐ์ ์ค์ ์ ํ์๋๋ฐ, ์ง์ ์ฌ์ฉํ๋ ค๋ฉด ORM
์ง๋๋ฒ์ DB์ ๋ฐ์ดํฐ๋ฅผ ๋ฃ๋ ๊ฒ ๊น์ง ๊ตฌํํ์๋ค. DB๋ฅผ ๋ค๋ฃฐ ์ ์๊ฒ ๋์ด ๊ฒ์๋ฌผ ์กฐํ/์ถ๊ฐ/์์ /์ญ์ ๋ฅผ ํด๋ณด์๋ค. ์ด ๊ณผ์ ์์ ์ง๊ณ ๋์ด๊ฐ์ผํ ๋ถ๋ถ์ ์ค๋ช ํด๋ณด๊ณ ์ ํ๋ค. ์ฐ์ ์์ ์ ์ ์ด์ ์ ํ๋ ์ธํ ์ ๋ชจ๋ ๋ฐ๋ผํด์ฃผ๋๋ก ํ์. Entity, Repositor
๋๋ ์ฒ์ ๋ฐฐ์ด ๋ฐฉ์๋๋ก Java ์ฝ๋๋ฅผ ์์ฑํด์๋ค. for๋ฌธ์ผ๋ก ๋ฐ๋ณต๋ฌธ์ ๋๋ฆฌ๋ฉด์ ํ์์์ if๋ฌธ์ผ๋ก ํํฐ๋งํ๋ ์ฝ๋๋ฅผ ๋ง์ด ์์ฑํด์๋ค. ๋ฌธ์ ๋ ์ด๋ ๊ฒ ์์ฑํ๋ฉด ์ฝ๋ ๊ธธ์ด๊ฐ ์ธ๋ฐ์์ด ๊ธธ์ด์ง๊ณ ๊ฐ๋ ์ฑ์ด ๋จ์ด์ง๋ค๋ ๊ฒ์ด๋ค. ๊ฐ๋ฐ์๋ค์ ํญ์ ๊ฐ๊ฒฐํ๊ณ ์์ฑํ๊ธฐ ์ฌ์ด ์ฝ๋๋ฅผ
์ฑ ์ ๋ณด๋ค๊ฐ ์๋ชป๋ ์ฝ๋๋ฅผ ์ง๊ณ ์๋ ๊ฒ์ ๋ฐ๊ฒฌํด์ ๊ณต๋ถํด๋ณด๊ณ ์ ํ๋ค.์์ฉ ํ๋ก๊ทธ๋จ์ ์ค๊ณํ ๋ ๋ฐ์ํ๋ ์ผ๋ฐ์ ์ธ ๋ฌธ์ ๋๋ ์ํฉ์ ์ํ ์ฌ์ฌ์ฉํ๊ธฐ ์ข์ ์ฝ๋ ํจํด์ ๋ชจ์๋์ ๊ฒ์ ๋์์ธ ํจํด์ด๋ผ ๋ถ๋ฅด๋๋ฐ, ์ด๋ฅผ ์๋ชป ์ฌ์ฉํ๋ค๋ฉด ์คํ๋ ค ๋นํจ์จ์ ์ด๊ฑฐ๋ ์ฌ๊ฐํ ์ฅ์ ๋ฅผ ์ผ์ผ
Spring์ Kotlin์ผ๋ก ์ฐ๋ ๊ณต๋ถ๋ฅผ ํ๋ค๊ฐ Spring์ ๊ทผ๋ณธ์ ์ธ ์ดํด๊ฐ ๋ถ์กฑํ ๊ฒ ๊ฐ์ ๊ณต๋ถํ๋ ๋ด์ฉ์ ํฌ์คํ ํ๋ค. ํด๋น ๋ด์ฉ์ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ DI(์์กด์ฑ ์ฃผ์ )์ ๋ํ ์ดํด๋ฅผ ์ ํํ๋ค.Spring์ ๊ธฐ๋ณธ์ ์ผ๋ก OOP(๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ)์ ํจ๋ฌ๋ค์์