Server๐Ÿงค

Server๐Ÿงค

DispatcherServlet

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

[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

[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

[JPA] ์—ฐ๊ด€๊ด€๊ณ„ ๋งคํ•‘ (๋‹จ๋ฐฉํ–ฅ ๋งคํ•‘)

๊ฐ์ฒด ์—ฐ๊ด€๊ด€๊ณ„๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์•„๋ž˜์˜ ๊ฐ์ฒด์ฐธ์กฐ์™€ ํ…Œ์ด๋ธ”์˜ ์™ธ๋ž˜ํ‚ค๋ฅผ ๋งคํ•‘ํ•˜๋Š” ๋ฐฉ๋ฒ• ํ•™์Šต ๋‹จ๋ฐฉํ–ฅ ๋งคํ•‘ ๊ฐ์ฒด๋ฅผ ํ…Œ์ด๋ธ”์— ๋งž์ถ”์–ด ๋ชจ๋ธ๋ง ํ•˜๋ฉด ๊ฐ์ฒด์ง€ํ–ฅ์ ์ธ ๋ฐฉ๋ฒ•์ด ์•„๋‹ˆ๋‹ค. Member์—์„œ ์™ธ๋ž˜ ํ‚ค ์‹๋ณ„์ž๋ฅผ ์ง์ ‘ ์กฐํšŒํ•ด์„œ ์กฐํšŒํ• ๋•Œ๋„ Team์—์„œ ๋”ฐ๋กœ ์กฐํšŒํ•ด์•ผํ•˜๋Š”! ๊ฐ์ฒด๋ฅผ ํ…Œ์ด๋ธ”์— ๋งž์ถ”์–ด ๋ฐ์ดํ„ฐ ์ค‘์‹ฌ์œผ๋กœ ๋ชจ๋ธ๋งํ•˜๋ฉด, ํ˜‘๋ ฅ๊ด€๊ณ„๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์—†๋‹ค. ํ…Œ์ด๋ธ”์€ ์™ธ๋ž˜ํ‚ค๋กœ ์กฐ์ธ์„ ์‚ฌ์šฉํ•ด์„œ ์—ฐ๊ด€๋œ ํ…Œ์ด๋ธ”์„ ์ฐพ๋Š”๋‹ค. ๊ฐ์ฒด๋Š” ์ฐธ์กฐ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์—ฐ๊ด€๋œ ๊ฐ์ฒด๋ฅผ ์ฐพ๋Š”๋‹ค. Member @Entity(name = "USER") @SequenceGenerator( name = "MEMBER_SEQ_GENERATOR", sequenceName = "MEMBER_SEQ", //๋งคํ•‘ํ•  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œํ€€์Šค ์ด๋ฆ„ initialValue = 1, allocati..

yujindonut
'Server๐Ÿงค' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (6 Page)