์คํ๋ง ๊ธฐ์ด๋ถํฐ ๋ค์ ๊ณต๋ถํ๋ฉฐ ์ด์ ์ ์ ๋ฆฌํ์ง ์์ ๋ด์ฉ์ ์ ๋ฆฌํฉ๋๋ค...!HttpMessageConverters๋ ์คํ๋ง ํ๋ ์์ํฌ์์ ์ ๊ณตํ๋ ์ธํฐํ์ด์ค ์ ๋๋ค.HttpMessageConverters๋ ์์ฒญ๋ณธ๋ฌธ(Request body)์์ ๋์ด์จ json,xmlํ์
ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ Lombok์ ๋์์ ๋ฐ์ Getter, Setter ์ด๋ ธํ ์ด์ ์ ์ฌ์ฉํ์ต๋๋ค. ํ์ง๋ง ์ค๋ฌด์์๋ Setter๋ฅผ ๋จ๋ฐํ๋ฉฐ ์ฌ์ฉํ๋ฉด ์๋๋ค๊ณ ํฉ๋๋ค. setter๋ฅผ ์ฌ์ฉํ๋ฉด ์๋๋ ์ด์ ๋ฅผ ๊ณต๋ถํ๋ฉฐ ์ ๋ฆฌํ๋ ค ํฉ๋๋ค.Setter ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ์
OneToOne์ด๋ ManyToOne ์ ๊ฒฝ์ฐ๋ ํจ์น์กฐ์ธ์ด๋ ํ๋ฐฉ์ฟผ๋ฆฌ๋ก ๋ฐ์ดํฐ๋ฅผ ํ๋ฒ์ ๊ฐ์ ธ์๋ ํฌ๊ฒ ์ฑ๋ฅ์ ๋ฌด๋ฆฌ๋ฅผ ์ฃผ์ง ์์ง๋ง ์ปฌ๋ ์ ์กฐํ์ ๊ฒฝ์ฐ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๋ ์๊ฐ ๋ฐ์ดํฐ๊ฐ ๋์ด๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ๋๋ฌธ์ OneToOne์ด๋ ManyToOne ์ ๋ฌ๋ฆฌ ํด๋น
Optional์ NPE ๋ฐ์์ ๋ฐฉ์งํ๊ธฐ ์ํด ์ฌ์ฉํฉ๋๋ค. ๋ฉ์๋๊ฐ ๋ฐํํ ๊ฒฐ๊ณผ๊ฐ์ด โ์์โ์ ๋ช ๋ฐฑํ๊ฒ ํํํ ํ์๊ฐ ์๊ณ , null์ ๋ฐํํ๋ฉด ์๋ฌ๋ฅผ ์ ๋ฐํ ๊ฐ๋ฅ์ฑ์ด ๋์ ์ํฉ์์ ๋ฉ์๋์ ๋ฐํ ํ์ ์ผ๋ก Optional์ ์ฌ์ฉํ์๋ ๊ฒ์ด Optional์ ๋ง๋ ์ฃผ๋
์ฐธ๊ณ ์ง์ฐ๋ก๋ฉ ์ฆ์๋ก๋ฉn+1์ํฐํฐ๋ฅผ ์กฐํํ ๋ ์ฐ๊ด๊ด๊ณ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ํ๋ฒ์ ๋ชจ๋ ๋ก๋ฉํ๊ฒ ๋ค๋ ์๋ฏธ์ ๋๋ค.์ฆ์๋ก๋ฉ( EAGER )์ ์์ธก์ด ์ด๋ ต๊ณ , ์ด๋ค SQL์ด ์คํ๋ ์ง ์ถ์ ํ๊ธฐ ์ด๋ ต์ต๋๋ค. ํนํ JPQL์ ์คํํ ๋ N+1๋ฌธ์ (์ ์ด๋ค SQL์ด ์คํ๋ ์ง ์ถ์ ์ด ์ด๋ ต๋
์ํฐํฐ๋ฅผ DTO๋ก ๋ณํํ๋ ์ผ๋ฐ์ ์ธ ๋ฐฉ๋ฒ์ด์ง๋ง N+1๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.์ ์ฝ๋๋ฅผ ์คํํ์๋ ์ฝ๋๋ก๋ง ๋ณด๋ฉด order์ member, Delivery์ฟผ๋ฆฌ๋ฅผ ํ๋ฒ์ฉ ๋ ๋ฆฌ๋ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง ์ค์ ๋ก ์คํํด๋ณด๋ฉด ๊ทธ๋ ์ง ์์ ๋ฌธ์ ๋ฐ์ํฉ๋๋ค.์ ์ฝ๋๋ฅผ ์คํ์์ผฐ์์ ๋ค์๊ณผ ๊ฐ์
@RestController๋ @Controller์ @ResponseBody๊ฐ ์ถ๊ฐ๋ ๊ฒ์ ๋๋ค. ๋น๋๊ธฐํต์ ์ ํ๊ธฐ์ํด์๋ ํด๋ผ์ด์ธํธ์์ ์๋ฒ๋ก ์์ฒญ ๋ฉ์ธ์ง๋ฅผ ๋ณด๋ผ ๋, ๋ณธ๋ฌธ์ ๋ฐ์ดํฐ๋ฅผ ๋ด์์ ๋ณด๋ด์ผ ํ๊ณ , ์๋ฒ์์ ํด๋ผ์ด์ธํธ๋ก ์๋ต์ ๋ณด๋ผ๋์๋ ๋ณธ๋ฌธ์ ๋ฐ์ดํฐ๋ฅผ ๋ด์์
๋ณ๊ฒฝ๊ฐ์ง์ ๋ณํฉ์ ์ดํดํ๊ธฐ ์ํด์๋ ๋จผ์ ์ค์์ ์ํฐํฐ์ ๋ํ ์ดํด๊ฐ ํ์ํฉ๋๋ค.JAP๋ ์ํฐํฐ๋ฅผ ์์์ฑ ์ปจํ ์คํธ์ ์ ์ฅํ๊ณ ์์์ํ๋ก ๊ด๋ฆฌํฉ๋๋ค. ๋๋ฌธ์ ์์์ฑ ์ปจํ ์คํธ์ ์กด์ฌํ๋ ์ํฐํฐ์ ๊ฐ์ ๋ณ๊ฒฝํ๋ฉด JPA๊ฐ ํธ๋์ ์ ์ปค๋ฐ ์์ ์ ๋ณ๊ฒฝ๋ ๋ด์ฉ์ DB์ ๋ฐ์ํ๋ ์
ํ์๊ฐ์ ์ ํ ๋ ํ์๊ฐ ๋ฏธ์ ๋ ฅ์ ํ์ฌํ์ด์ง์์ ์๋ฌ๋ฉ์ธ์ง๊ฐ ์๋์ ๊ฐ์ด ๋ํ๋๊ฒ ํ๋ ค๋ฉด @NotEmpty@ValidBindingResult result ์ ์ด์ฉํด์ผ ํฉ๋๋ค.๋จผ์ Member Form์ @NotEmpty๋ฅผ ํตํด ํด๋น ๋ณ์๊ฐ ๋ null ๊ณผ "" ์ด๋ผ๋ฉด ํ
์ค์ ์คํ๋ง๋ถํฐ jpaํ์ฉ Order ๋ผ๋ ์ฃผ๋ฌธํ ์ํ์ ๋ด๊ณ ์๋ ์ํฐํฐ๊ฐ ์กด์ฌํ๊ณ ์ํ์ ์ํ์ ์ํ์ ์ฃผ๋ฌธํ ํ์์ด๋ฆ์ผ๋ก ์ํ์ ๊ฒ์ํ๋ ์ฟผ๋ฆฌ๋ฅผ ๋ง๋ ๋ค๊ณ ๊ฐ์ ํ๊ฒ ์ต๋๋ค. ํด๋น ์กฐ๊ฑด์ ๋ชจ๋ ๋ง์กฑ์ํค๋ ๋ก์ง์ ์์ฑํ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๋์ฌ ๊ฒ์ ๋๋ค.select 0 fro
์คํ๋ง์ ๊ณต๋ถํ๋ฉฐ Setter๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ์ ์ ํฉํ ๋ฆฌ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๊ฐ ๋ฌด์์ผ์ง ๊ถ๊ธํด ์ฐพ์๋ณด์์ต๋๋ค.ํด๋น์ฌ์ดํธ ๋ด์ฉ์ ๊ฐ์ ธ์์ต๋๋ค.https://johngrib.github.io/wiki/pattern/static-factory-method/ht