Entity / DTO / VO
Entity
์ค์ DB ํ
์ด๋ธ๊ณผ ๋งค์นญ๋ ํด๋์ค๋ก @Entity
,@Column
,@Id
๋ฑ์ ์ด๋
ธํ
์ด์
์ ์ด์ฉํ๋ค.
DBํ ์ด๋ธ๊ณผ 1:1๋ก ๋งคํ ๋๋ ํด๋์ค๋ก DB ํ ์ด๋ธ์ ์ปฌ๋ผ๋ง ํ๋๋ก ๊ฐ์ง๋ ํด๋์ค์ด๋ค. (@Entity ์ด๋ ธํ ์ด์ ์ผ๋ก ๋ช ์ํด ์ํฐํฐ ํด๋์ค์์ ์ง์ ํด์ ํ ์ด๋ธ๊ณผ 1:1๋งคํ)
์ฃผ๋ก DB์ ํต์ ์ ์ํด ์ฌ์ฉ
๊ฐ์ฒด์ ์ผ๊ด์ฑ์ ์ํด ๋ฌด๋ถ๋ณํ setter์ ๊ธ์ง
@Table : Entityํด๋์ค์ ์ด๋ฆ๊ณผ ํ ์ด๋ธ ๋ช ๊ณผ ์ผ์นํ๋ ๊ฒ์ ๋งคํํ๋ฉฐ, ์ด๋ฆ์ด ๋ค๋ฅผ ๊ฒฝ์ฐ @Table(name="")์ผ๋ก ๋งคํ์ด ๊ฐ๋ฅํ๋ค.
@Id : pimary key๋ฅผ ๊ฐ๋ ๋ณ์ ์ ์ธ
@GeneratedValue : ํด๋น Id๊ฐ์ ์ด๋ป๊ฒ ์๋์ผ๋ก ์์ฑํ ์ง ์ ๋ต์ ์ ํํ ์ ์๋ค.
@Column : ๊ผญ ์ ์ธ์ด ํ์ํ ๊ฒ์ ์๋์ง๋ง ์ง์ ํ ๋ณ์๋ช ๊ณผ DB์ ์ปฌ๋ผ๋ช ์ ๋ค๋ฅด๊ฒ ํด์ฃผ๊ณ ์ถ๋ค๋ฉด @Column(name="")์ผ๋ก ์์ฑํ๋ฉด ๋๋ค.
ํฐ ๊ทธ๋ฆผ์ผ๋ก ๋ณด๊ฒ ๋๋ค๋ฉด Entity์ ๊ธฐ๋ฅ์ด ๊ฐ๋ค๊ณ ํ ์ ์๋ค. (D)
Enum ๊ฐ ๋งคํ์ @Enumerated(EnumType.STRING)์ ํตํด enum ๋ด๋ถ ์์๊ฐ ๋ฐ๋์์ ๋ ๋ฌธ์ ๊ฐ ์๊ธฐ๋ ๊ฒ์ ๋ฐฉ์ง
DTO
๋ฐ์ดํฐ ์ ์ก ๊ฐ์ฒด๋ก ์ฃผ๋ก ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฅผ ํ ๋ ์ฌ์ฉ๋๋ค.
Spring Boot๊ฐ์ ๊ฒฝ์ฐ ๊ธฐ๋ณธ์ผ๋ก JackSon ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ๊ณตํด ObjectMapper๋ฅผ ์ฌ์ฉํด์ ๊ฐ์ฒด๋ฅผ JSON์ผ๋ก ๋ณํ ์์ผ์ฃผ์ง๋ง, Spring์์๋ ์์กด์ฑ์ ์ฃผ์ ์์ผ์ฃผ์ด์ผ ํ๊ณ , ๋ด๊ฐ ์ํ๋ ํ๋๋ง ๊ณจ๋ผ๋ด์ JSONํ์์ผ๋ก ํ์ฑํ ์ ์กํ๊ธฐ ์ํด ๋ฐ์ดํฐ ๊ฐ๊ณต์ ์ํด์ DTO๋ฅผ ์์ฑ
๋น์ฆ๋์ค ๋ก์ง์ ๊ฐ์ง๊ณ ์์ง ์์ ์์ํ ๋ฐ์ดํฐ ๊ฐ์ฒด๋ก getter์ setter๋ง ์กด์ฌํ๋ค.
View์์ ํต์ ์ ์ํด ์ฌ์ฉ
VO
๋๋ฉ์ธ ์ฃผ๋ ์ค๊ณ ์ฒ ์ ์
๋ฌธ
์ด๋ผ๋ ์ฑ
์ ๋ค์๊ณผ ๊ฐ์ด ์ค๋ช
ํ๊ณ ์๋ค.
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์๋ ์์ ๋ฐ์ดํฐ ํ์ ์ด ์๋ค. ์ด ์์ ๋ฐ์ดํฐ ํ์ ๋ง ์ฌ์ฉํด ์์คํ ์ ๊ฐ๋ฐํ ์๋ ์์ง๋ง ๋๋ก๋ ์์คํ ํน์ ์ ๊ฐ์ ์ ์ํด์ผ ํ ๋๊ฐ ์๋ค. ์ด๋ฌํ ์์คํ ํน์ ์ ๊ฐ์ ํํํ๋ ๊ฐ์ฒด๋ฅผ ๊ฐ ๊ฐ์ฒด๋ผ๊ณ ํ๋ค.
๊ฐ ๊ฐ์ฒด๋ ์ฌ๋ฌ๊ฐ์ ์์ฑ์ผ๋ก ํ๋์ ์๋ฏธ๋ฅผ ํํํ๋ ๊ฐ์ฑ๋ก์ ์ํ ๋ณ๊ฒฝ์ ํ์ฉํ์ง ์๋ ๋ถ๋ณ ๊ฐ์ฒด๋ฅผ ์๋ฏธํ๋ค.
Last updated