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

์์ฒญ์ ๋ํ ์ฒ๋ฆฌ
์์ธ์ฒ๋ฆฌ
View Template ์๋ต or Data ์๋ต
๋น์ง๋์ค ๋ก์ง ์ฒ๋ฆฌ
DB ์ํธ์์ฉ
Controller์์ ์์ฒญ์ ๋ํ ๋ชจ๋ ์ฒ๋ฆฌ๋ฅผ ์ํํ๋ค. ์ฆ, ์ฑ ์์ด ๋๋ฌด ๋ง๋ค.
๊ธฐ๋ฅ ์ถ๊ฐ, ์์ , ์ญ์ ๋ฑ์ ์ ์ง๋ณด์๊ฐ ํ๋ค์ด์ง๋ค.
์ฝ๋์ ์ฌ์ฌ์ฉ์ฑ์ด ๋จ์ด์ง๋ค. ๋ฉ์๋๋ก ๋ถ๋ฆฌํ์ฌ๋ ๋ฉ์๋๋ฅผ ํธ์ถํ๋ ์ค๋ณต ์ฝ๋๊ฐ ๋ฐ์ํ๋ค.

Presentation Layer
์ฌ์ฉ์์ ์์ฒญ์ ๋ฐ๊ณ ์๋ตํ๋ ์ญํ ์ ์ํํ๋ค.
ํ๋ฉด์ ์๋ตํ๊ฑฐ๋ ๋ฐ์ดํฐ๋ฅผ ์๋ตํ๋ API๋ฅผ ์ ์ํ๋ค.
Business Layer(Service Layer)
๋น์ง๋์ค ๋ก์ง์ ์ํํ๋ค.
์์ฒญ์ ํด์ํ์ฌ Repository Layer์ ์ ๋ฌํ๋ค.
์ผ๋ฐ์ ์ผ๋ก ํ๋์ ๋น์ง๋์ค ๋ก์ง์ ํ๋์ ํธ๋์ญ์ ์ผ๋ก ๋์ํ๋ค.
Data Access Layer(Repository Layer)
DTO(Data Transfer Object)
Model
Entity
DAO(Data Access Object)


ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ฐ๋ ์ญํ ์ ์ํํ๋ค.
์์ฒญ์ ๋ํ ์ฒ๋ฆฌ๋ฅผ Service Layer์ ์ ๋ฌํ๋ค.
Service์์ ์ฒ๋ฆฌ ์๋ฃ๋ ๊ฒฐ๊ณผ๋ฅผ ํด๋ผ์ด์ธํธ์ ์๋ตํ๋ค.
์ฌ์ฉํ๋ Annotation : @Controller, @RestController

์ฌ์ฉ์์ ์์ฒญ ์ฌํญ์ ์ฒ๋ฆฌํ๋ค.
DB์ ์ํธ์์ฉ์ด ํ์ํ ๊ฒฝ์ฐ, Repository Layer์๊ฒ ์์ฒญํ๋ค.
์ฌ์ฉํ๋ Annotation: @Service

DB์ ์ํธ์์ฉ์ ์ํํ๋ค.
Connection ์ฐ๊ฒฐ, ํด์
CRUD ์์ ์ฒ๋ฆฌ
์ฌ์ฉํ๋ Annotation: @Repository

๊ณ์ธต๊ฐ ๋ฐ์ดํฐ ์ ๋ฌ์ ์ํด ์ฌ์ฉ๋๋ค.
์์ฒญ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๊ฐ์ฒด๋ ์ผ๋ฐ์ ์ผ๋ก RequestDto๋ก ๋ช
๋ช
ํ๋ค.
์๋ต ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๊ฐ์ฒด๋ ์ผ๋ฐ์ ์ผ๋ก ResponseDto๋ก ๋ช
๋ช
ํ๋ค.