Spring MVC ์›น ๊ณ„์ธต
Backend/SPRING 2021. 10. 8. 00:40

Web Layer 1. ํ”ํžˆ ์‚ฌ์šฉํ•˜๋Š” ์ปจํŠธ๋กค๋Ÿฌ์™€ ํ…œํ”Œ๋ฆฟ ์—”์ง„์˜ ์˜์—ญ 2. ํ•„ํ„ฐ, ์ธํ„ฐ์…‰ํ„ฐ, ์ปจํŠธ๋กค๋Ÿฌ ์–ด๋“œ๋ฐ”์ด์Šค ๋“ฑ ์™ธ๋ถ€ ์š”์ฒญ๊ณผ ์‘๋‹ต์— ๋Œ€ํ•œ ์ „๋ฐ˜์ ์ธ ์˜์—ญ์„ ์˜๋ฏธํ•œ๋‹ค. Service Layer 1. `@Service`์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์„œ๋น„์Šค ์˜์—ญ 2. ์ผ๋ฐ˜์ ์œผ๋กœ Controller์™€ Repository์˜ ์ค‘๊ฐ„ ์˜์—ญ์—์„œ ์‚ฌ์šฉ๋œ๋‹ค. 3. @Transactional์ด ์‚ฌ์šฉ๋˜์–ด์•ผ ํ•œ๋‹ค. Repository Layer 1. Database์™€ ๊ฐ™์€ ์ €์žฅ์†Œ์— ์ ‘๊ทผํ•˜๋Š” ์˜์—ญ 2. ์ด์ „์— ์ž์ฃผ ์‚ฌ์šฉ๋˜๋˜ Dao ์˜์—ญ์ด๋‹ค. DTOs 1. DTO๋Š” ๊ณ„์ธต ๊ฐ„ ๋ฐ์ดํ„ฐ ๊ตํ™˜์„ ์œ„ํ•œ ๊ฐ์ฒด๋ฅผ ์˜๋ฏธํ•œ๋‹ค. 2. ๋ทฐ ํ…œํ”Œ๋ฆฟ ์—”์ง„์—์„œ ์‚ฌ์šฉ๋  ๊ฐ์ฒด๋‚˜ Repository๊ฐ€ ์‘๋‹ต์œผ๋กœ ๋„˜๊ฒจ์ฃผ๋Š” ๊ฐ์ฒด ๋“ฑ์„ ๋งํ•œ๋‹ค. Domain Model 1. ๊ฐœ๋ฐœ ๋Œ€์ƒ(..

@MappedSuperClass, @Embedded, @Embeddable
Backend/SPRING 2021. 9. 15. 23:02

Spring JPA Hibernate์—์„œ Entity์˜ ์ƒ์†์— ๋Œ€ํ•ด ๊ฒ€์ƒ‰ํ•˜์—ฌ ๊ณต๋ถ€ํ•˜๋˜ ์ค‘ ์ถ”๊ฐ€์ ์œผ๋กœ ๊ถ๊ธˆํ•œ ๋ถ€๋ถ„์ด ์ƒ๊ฒจ ์ •๋ฆฌํ•ด๋ณธ๋‹ค. @MappedSuperClass ์—ฌ๋Ÿฌ ์—”ํ‹ฐํ‹ฐ์— ๊ณตํ†ต์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ํ•„๋“œ๋ฅผ ์ƒ์†๋ฐ›๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค. ์—”ํ‹ฐํ‹ฐ๋“ค์ด ์ƒ์†๋ฐ›์•„ ์‚ฌ์šฉํ•  ํด๋ž˜์Šค ์œ„์— ์„ ์–ธํ•˜๊ฒŒ ๋˜๋ฉด ํ•ด๋‹น ํด๋ž˜์Šค๋Š” Table๊ณผ ๋งคํ•‘๋˜์ง€ ์•Š๊ณ  ๋‹จ์ˆœํžˆ ํ•„๋“œ๋ฅผ ์ƒ์†๋ฐ›๊ธฐ ์œ„ํ•œ ํด๋ž˜์Šค๊ฐ€ ๋œ๋‹ค. ์ด ํด๋ž˜์Šค๋Š” ์ƒ์„ฑํ•ด์„œ ์‚ฌ์šฉํ•  ์ผ์ด ์—†์œผ๋ฏ€๋กœ ์ถ”์ƒ ํด๋ž˜์Šค ์„ ์–ธ์ด ๊ถŒ์žฅ๋œ๋‹ค. @Embeddable (์ƒ๋žต ๊ฐ€๋Šฅํ•˜๋‹ค! default ์ž„) ์˜ˆ๋ฅผ ๋“ค์–ด Wardrobe Entity ๋‚ด์— ํŠน์ • Writer ์ •๋ณด(String memberName, String memberId) ๊ฐ€ ๋‹ด๊ธด๋‹ค๊ณ  ํ•ด๋ณด์ž. ๊ทธ๋Ÿฐ๋ฐ memberName, memberId๋ฅผ ๋”ฐ๋กœ ๋‘๋ฉด..

[Spring] ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ
Backend/SPRING 2020. 1. 18. 19:41

์Šคํ”„๋ง์ด ์™œ ํƒ„์ƒํ•˜๊ฒŒ ๋˜์—ˆ์„๊นŒ? ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๋กœ๋“œ ์กด์Šจ์ด 2004๋…„์— ๋งŒ๋“  ์˜คํ”ˆ์†Œ์Šค ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ ์ด์ „์—” ์ž๋ฐ” ๊ธฐ๋ฐ˜์˜ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋Œ€๋ถ€๋ถ„ EJB(Enterprise Java Beans)๋กœ ๊ฐœ๋ฐœ๋˜์—ˆ์—ˆ์ฃ . ํ•˜์ง€๋งŒ EJB๋Š” ํ•™์Šต์— ๋งŽ์€ ์‹œ๊ฐ„์ด ํ•„์š”ํ•˜๊ณ , ๊ฐœ๋ฐœ ๋ฐ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์–ด๋ ต๋‹ค๋Š” ์ , ๊ทธ๋ฆฌ๊ณ  EJB ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ฐฐ์น˜ํ•˜๊ธฐ ์œ„ํ•œ WAS(Web Application Server)๊ฐ€ ๊ต‰์žฅํžˆ ๊ณ ๊ฐ€์˜ ์žฅ๋น„์˜€๊ธฐ์— ๋งŽ์€ ๊ฐœ๋ฐœ์ž๋“ค์˜ ์™ธ๋ฉด์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  EJB์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ์— ๊ธด ์‹œ๊ฐ„๋™์•ˆ ์‚ฌ์šฉ๋ฌ๊ฒ ์ฃ . ํ•˜์ง€๋งŒ EJB์˜ ๋ฌธ์ œ์ ์€ EJB ๋‹ต๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ต‰์žฅํžˆ ์–ด๋ ต๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค. EJB๋ฅผ ์ œ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๋ ค๋ฉด EJB์˜ ์„ฑ๋Šฅ์„ ์œ ์ง€ํ•ด์ฃผ๊ณ , ๋‹ค์–‘ํ•œ ๋””์ž์ธ ํŒจํ„ด์„ ..