
\-> @ResponseBody ์ด๋ ธํ ์ด์ ์ ๋ถ์ด์ง ์์์ ๋ฐ์ดํฐ๊ฐ ๋ฐํ์ด ์๋จ\-> Json ๊ฐ์ฒด๋ก Serialize๋์ด ๋ฐํ๋จ\-> @ResponseBody๋ฅผ ๋ฐ๋ก ์์ฑํ์ง ์์๋ Json ๊ฐ์ฒด๋ก ๋ฐํ๋จRestController๋ Controller์ Respons

gradle๊ณผ maven์ ์๋ฐ ์ํ๊ณ์์ ๋๋ฆฌ ์ฌ์ฉํ๋ ๋น๋ ๊ด๋ฆฌ ๋๊ตฌ์ด๋ค.์ฌ์ฉ์๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ํํ๋ก ์ฌ์ฉํ ์ ์๋ ๋ชจ์ต์ ๊ฐ์ถ๋ ค๋ฉด '๋น๋'๋ผ๋ ๊ณผ์ ์ ๊ฑฐ์ณ์ผ ํ๋ค. ์ด๋ฌํ ๋น๋ ๊ณผ์ ์์ ํ์ํ ๊ฒ๋ค์ ๊ด๋ฆฌํ๊ณ ์๋ํํ๋ ๋๊ตฌ๋ฅผ '๋น๋ ๊ด๋ฆฌ ๋๊ตฌ'๋ผ๊ณ ํ๋ค.<

ํ์ฌ ์ด์์ค์ธ ์ฑ๋ด ์๋น์ค๊ฐ ์๋๋ฐ, ์๋ฒ๋ฅผ GCP๋ก ์ฎ๊ธฐ๋ฉด์ ๋ฌด๋ฃ ๋ฒ์ ์ ์ฌ์ฉํ์ฌ ์๋๊ฐ ํ์ ํ ๋๋ ค์ก๋ค. ๋จ์ง, ์คํ๋ง ๋๋๋ก ์์ฑํ๋ ์ฝ๋๋ค์ ์ต์ ํํ๊ธฐ ์ํด TDD๊ธฐ๋ฐ ์ฝ๋ ์์ฑํ๋ฉฐ ๋ฆฌํฉํ ๋ง ํด๋ณด๋ ค๊ณ ํ๋ค. ์ฐ์ , ๊ถ๊ธํ ์ ๋ค์ ์ ๋ฆฌํด๋ณด์๋คโ 1. Repos

์ด์ ์ ํฌ์คํธ์์ ํ ์คํธ์ฉ db h2 ์ค์ ๊น์ง ๋ง์ณค๋ค.์ด์ด์ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํด๋ณด๋ ค๊ณ ํ๋ค.๋ ํฌ์งํ ๋ฆฌ ๋น์ด ๋ฑ๋ก๋์๋์ง ๋จผ์ ํ ์คํธํด๋ณด๋ ค๊ณ ํ๋ค.๋ ํฌ์งํ ๋ฆฌ ์ฝ๋๋ฅผ ์์ฑํด์ฃผ์๋ค.JpaRepository ์ธํฐํ์ด์ค๋ฅผ ์์๋ฐ์ผ๋ฉด @Repository ์ด๋ ธํ ์ด์ ์ ๋ฐ๋ก ๋ฌ์

์์ repository ์ฝ๋์ ๋ํ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑ์ค์ด๋ค.์์ ๊ฐ์ด ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ์๋ค.campusId ๊ฐ์ด 5๋ณด๋ค ์์ ๋ฐ์ดํฐ๋ง ์ฐพ์์ค๋ ๊ฒ์ด ๋ชฉ์ ์ด์๋๋ฐ, campusID ๊ฐ 5์ธ ๋ฐ์ดํฐ๋ฅผ ์๊พธ๋ง ํฌํจํ์ฌ ์์๋ฐ์ดํฐ์ ๋ฌ๋ผ ํ ์คํธ๊ฐ ์คํจํ์๋ค. ๊ฐ์ฒด๋ฅผ ๋น

User ํ ์ด๋ธ์์ user_id๋ฅผ ์ฌ์ฉํด department_id ๊ฐ์ ๊ฐ์ ธ์ค๋ ์ฝ๋๋ฅผ ์์ฑํ ๊ฒ์ด๋ค. Repository์ ๋ฉ์๋๋ฅผ ์์ฑํ๊ธฐ ์ ์ ํ ์คํธ ์ฝ๋๋ถํฐ ์์ฑํด๋ณด๋ ค๊ณ ํ๋ค. ํ ์คํธ ๋ฉ์๋ ์์ฑ ์ ์ ํ ์คํธ ๋ฐ์ดํฐ๋ฅผ ์์ฑํ๋ setUp ๋ฉ์๋๋ฅผ ์์ฑํ๋ค. @

์ด๋ฒ์๋ Service ํด๋์ค ์ฝ๋๋ฅผ ํ ์คํธํด๋ณด๋ ค๊ณ ํ๋ค.๋จผ์ Service ํด๋์ค๋ Repository ํด๋์ค์ ๋ค๋ฅด๊ฒ ํ ์คํธ๋ฅผ ํ๊ธฐ ์ํด์๋ Mock ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ค.์๋ํ๋ฉด service ํด๋์ค์ repository ์ธํฐํ์ด์ค๋ ์๋ก ์์กด๊ด๊ณ์ ์์ด, servic

๊ฐ๋ฐํ ์ฝ๋๋ฅผ ๋ฆฌํฉํ ๋ง ํ๋ ์ค ๋์ผํ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ ๋ฒ ์์ฒญํ๊ณ ์๋ค๋ ๊ฒ์ ์๊ฒ ๋์๋ค. ์ฌ์ฉ์์ ์์ฒญ์ ๋ํ ์๋ต ์๋๋ฅผ ๋์ด๋ ๊ฒ์ ๋ชฐ๋ํ๊ณ ์๋ ์ํฉ์ด๋ผ, ์ค๋ณต๋๋ ์ํฉ์ ์ต์ํํ๊ณ ์ถ์ ์๊ฐ์ด ๋จผ์ ๋ ๋ค. ์ด๋, ๋คํธ์ํฌ ์๊ฐ์ ๋ฐฐ์ ๋ ์บ์ ๊ฐ๋ ์ด ๋ ์ฌ๋๋ค.

์บ์ฑํ๊ธฐ ์ํด redis๋ฅผ ํ์ฉํ๋ค.redis๋ฅผ ๋ฐ๋ก ์ค์นํ์ง ์๊ณ redis cloud๋ฅผ ์ฌ์ฉํ์๋ค.์บ์ ์ค์ ํ์ผ์ ์์ฑํ๊ณ , ์บ์ ์๋ช ์ ์์๋ก 30๋ถ์ผ๋ก ์ค์ ํ์๋ค.redis์ ์ฐ๊ฒฐํ๊ธฐ ์ํ ์ค์ ๋ ๋ง์ณค๋ค. application.properites ํ์ผ์์ re

์คํ๋ง์ ํ์ตํ ๋ ํต์ฌ ๊ฐ๋ ์ค ํ๋๋ Bean์ด๋ค.Bean ๊ฐ๋ ์ ๋ชจ๋ฅด๋ฉด ์คํ๋ง ํ๋ก์ ํธ๊ฐ ์ด๋ป๊ฒ ๋์ํ๋์ง ์ดํดํ ์ ์์ ๊ฒ์ด๋ค.๋ด๊ฐ ๊ณต๋ถํ๊ณ ์ดํดํ ๋ฐฉ์๋๋ก ์ ๋ฆฌ๋ฅผ ํด๋ณด๋ ค ํ๋ค.์ฐ์ Bean์ด๋ ๊ฐ์ฒด๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค.Java์ ๊ฒฝ์ฐ ๊ฐ์ฒด๋ฅผ ์์ฑํ ๋,์์ ๊ฐ

๋ธ๋ก๊ทธ ์น ํ์ด์ง๋ฅผ ๊ตฌํํ๋ ์ค์ต์ ์งํํ๊ณ ์๋ค.๋ธ๋ก๊ทธ ํ๋ฉด์ ๊ตฌ์ฑํ๊ธฐ ์ํด html๊ณผ js ํ์ผ์ ์์ฑํ์๋ค.html์์์ ์ญ์ ๋ฒํผ์ ํด๋ฆญํ์ ๋, jsํ์ผ์ด ๋์ํ์ฌ ํ์ผ์ ์ญ์ ์ํค๋ ๋ฉ์๋ ์์ฒญ์ ๋ณด๋ด์ผ ํ๋๋ฐ, ๋ฒํผ์ ๋๋ ค๋ ์๋ฌด๋ฐ ๋ฐ์์ด ์์๋ค.๋ ๊ฐ์ง ์