Server๐งค
Servlet์ด๋ ๋์ ์ธ ์นํ์ด์ง๋ฅผ ๋ง๋ค๊ธฐ ์ํด WebApplication Server์ ๋ถ์ด๋ ํ๋ก๊ทธ๋จ ์ค ํ๋ web.xml -> servlet ์ค์ ํ์ผ Servlet Container Servlet์ ์๋ช
์ฃผ๊ธฐ๋ฅผ ๊ด๋ฆฌํจ ์) Tomcat.. ์์ฒญ์ด ๋ค์ด์ค๋ฉด 1. Servlet Request / Servlet Response ๊ฐ์ฒด ์์ฑ 2. ์ค์ ํ์ผ์ ์ฐธ๊ณ ํ์ฌ ๋งคํํ Servlet์ ํ์ธ 3. ํด๋น Servlet ์ธ์คํด์ค ์กด์ฌ ์ ๋ฌด๋ฅผ ํ์ธํ์ฌ ์์ผ๋ฉด ์์ฑํ๋ค(init() ๋ฉ์๋ ํธ์ถ) 4. Servlet Container์ ์ค๋ ๋๋ฅผ ์์ฑํ๊ณ , res, req๋ฅผ ์ธ์๋ก service ์คํ๋จ 5. Request, Response ๊ฐ์ฒด๋ฅผ ์๋ฉธ์ํค๊ณ ๋๋จ! Servlet๊ฐ์ฒด๋ ์๋ฉธ๋์ง ์๋๋ค! Servlet..
Server๐งค/JPA
ํ๋ก์? Member ์ํฐํฐ์ Team ์ํฐํฐ๋ @Many(Member)ToOne(Team) ๊ด๊ณ์ ์๋ค. Member๋ฅผ ์กฐํํ ๋, Team์ ํญ์ ์กฐํํ๊ฒ ๋๋ค๋ฉด? - ๋ญ๋น๊ฐ ์์ฒญ๋๊ฒ ๋ฐ์ํ๋ค. ๋น์ฆ๋์ค ๋ก์ง์์ ํ์ํ์ง ์์ ๊ฒฝ์ฐ, ํญ์ Team์ ์กฐํํด์ ๊ฐ์ ธ์ฌ ์ด์ ๋ ์๋ค! JPA๋ ์ด ๋ญ๋น๋ฅผ ํ์ง ์๊ธฐ ์ํด, ์ง์ฐ๋ก๋ฉ๊ณผ ํ๋ก์๋ผ๋ ๊ฐ๋
์ผ๋ก ํด๊ฒฐํ๋ค. ์ง์ฐ๋ก๋ฉ JPA์๋ em.find()์ em.getReference()๋ผ๋ ๋ฉ์๋๊ฐ ์กด์ฌํ๋ค. em.find() : DB๋ฅผ ํตํด์ ์ค์ ์ํฐํฐ ๊ฐ์ฒด ์กฐํ em.getReference() : DB์ ์กฐํ๋ฅผ ๋ฏธ๋ฃจ๋ ๊ฐ์ง(ํ๋ก์) ์ํฐํฐ ๊ฐ์ฒด๋ฅผ ์กฐํ Member ์ํฐํฐ @Entity @Getter @Setter public class Member exte..
Server๐งค/JPA
๊ฐ๋ฐ์ ํ๋ค๋ณด๋ฉด Team์ ์ํ Member๋ค์ ๊ฐ์ ธ์์ผํ ๋๊ฐ ์๋ค! Member ํ
์ด๋ธ์์ Team์ ์กฐํ? Team์์ Member๋ฅผ ์กฐํ? ๊ฐ์ฒด ์ค๊ณ๋ Member ์์ Team์ ๊ฐ์ง๊ณ ์๊ณ , Team์์๋ Members๋ฅผ ๊ฐ์ง๊ณ ์๋๋ก ์ค๊ณํ๋ค. ํ
์ด๋ธ ์์์๋, ๋จ๋ฐฉํฅ ๋งคํ๊ณผ ๋ฐ๋๋ ๊ฒ์ด ์๋ค. ๋์ JOIN์ ํตํด์ ๊ด๊ณ๋ฅผ ๋งบ์ ์ ์๋ค! DB๋ ๋ฐฉํฅ์ด ์๋ค. ๋ค๋์ผ ๊ด๊ณ์ค ์ผ(1)์ ์ํฐํฐ์ ์ปฌ๋ ์
์ ์ถ๊ฐํด์ค๋ค. @Entity public class Team { @Id @GeneratedValue private Long id; private String name; @OneToMany(mappedBy = "team") private List members = new ArrayList(); p..
Server๐งค/JPA
๊ฐ์ฒด ์ฐ๊ด๊ด๊ณ๋ฅผ ์ฌ์ฉํด์ ์๋์ ๊ฐ์ฒด์ฐธ์กฐ์ ํ
์ด๋ธ์ ์ธ๋ํค๋ฅผ ๋งคํํ๋ ๋ฐฉ๋ฒ ํ์ต ๋จ๋ฐฉํฅ ๋งคํ ๊ฐ์ฒด๋ฅผ ํ
์ด๋ธ์ ๋ง์ถ์ด ๋ชจ๋ธ๋ง ํ๋ฉด ๊ฐ์ฒด์งํฅ์ ์ธ ๋ฐฉ๋ฒ์ด ์๋๋ค. Member์์ ์ธ๋ ํค ์๋ณ์๋ฅผ ์ง์ ์กฐํํด์ ์กฐํํ ๋๋ Team์์ ๋ฐ๋ก ์กฐํํด์ผํ๋! ๊ฐ์ฒด๋ฅผ ํ
์ด๋ธ์ ๋ง์ถ์ด ๋ฐ์ดํฐ ์ค์ฌ์ผ๋ก ๋ชจ๋ธ๋งํ๋ฉด, ํ๋ ฅ๊ด๊ณ๋ฅผ ๋ง๋ค ์ ์๋ค. ํ
์ด๋ธ์ ์ธ๋ํค๋ก ์กฐ์ธ์ ์ฌ์ฉํด์ ์ฐ๊ด๋ ํ
์ด๋ธ์ ์ฐพ๋๋ค. ๊ฐ์ฒด๋ ์ฐธ์กฐ๋ฅผ ์ฌ์ฉํด์ ์ฐ๊ด๋ ๊ฐ์ฒด๋ฅผ ์ฐพ๋๋ค. Member @Entity(name = "USER") @SequenceGenerator( name = "MEMBER_SEQ_GENERATOR", sequenceName = "MEMBER_SEQ", //๋งคํํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ํ์ค ์ด๋ฆ initialValue = 1, allocati..