728x90
๋ฐ˜์‘ํ˜•

spring 5

[Spring] Spring MVC ์™€ Spring Webflux์˜ ์ฐจ์ด์ 

Spring Framework์—๋Š” ๋Œ€ํ‘œ์ ์ธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ชจ๋ธ์ด ์žˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ๋Š” ๊ฐ€์žฅ ๋„๋ฆฌ ์•Œ๋ ค์ง€๊ณ  ๋Œ€์ค‘์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” Spring MVC ๋ชจ๋ธ์ด๊ณ , ๋‘ ๋ฒˆ์งธ๋Š” Spring WebFlux ๋ชจ๋ธ์ด๋‹ค. Spring WebFlux๋ž€? Spring WebFlux๋Š” Spring 5์—์„œ ์ƒˆ๋กญ๊ฒŒ ๋„์ž…๋œ ๋ชจ๋“ˆ์ด๋ฉฐ, ๋น„๋™๊ธฐ ๋ฐ ๋ฆฌ์•กํ‹ฐ๋ธŒ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ง€์›ํ•œ๋‹ค. Spring MVC์™€๋Š” ๋‹ค๋ฅด๊ฒŒ Servlet API๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜์ง€ ์•Š๊ณ , ๋ฆฌ์•กํ‹ฐ๋ธŒ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ชจ๋ธ์„ ์ฑ„ํƒํ•˜์—ฌ ์ž‘๋™ํ•œ๋‹ค. ์ด์ „์—๋Š” Servlet API๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ Spring MVC๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋™๊ธฐ์ ์ธ ์ฒ˜๋ฆฌ ๋ฐฉ์‹์œผ๋กœ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ–ˆ๋‹ค. ๋™๊ธฐ์ ์ธ ์ฒ˜๋ฆฌ ๋ฐฉ์‹์€ ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ, ์ด๋Š” ๋†’์€ ํŠธ๋ž˜ํ”ฝ๊ณผ ๋ฐ์ดํ„ฐ ์–‘์„ ํšจ๊ณผ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์–ด๋ ต๋‹ค. ์ตœ..

Programming/Spring 2024.03.17

[Spring] Spring Initializr๋กœ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑํ•˜๊ธฐ

Spring Initializr Spring Initializr ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด SpringBoot ๊ธฐ๋ฐ˜์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. https://start.spring.io/ ์˜ ์ฃผ์†Œ๋กœ ์ ‘๊ทผํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ์ฐฝ์ด ๋œฌ๋‹ค. Project SpringBoot๋ฅผ ๋นŒ๋“œํ•˜๊ณ  ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ์‹์„ ์„ ํƒํ•œ๋‹ค. ๊ณผ๊ฑฐ์—๋Š” Maven์„ ๋งŽ์ด ์‚ฌ์šฉํ–ˆ์ง€๋งŒ ์ตœ๊ทผ์—๋Š” Gradle์„ ์‚ฌ์šฉํ•˜๋Š” ์ถ”์„ธ์ด๋‹ค. Language ํ”„๋กœ์ ํŠธ์— ์‚ฌ์šฉํ•  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์„ ํƒํ•œ๋‹ค. SpringBoot SpringBoot ๋ฒ„์ „์„ ์„ ํƒํ•œ๋‹ค. SNAPSHOT์€ ์•„์ง ๊ฐœ๋ฐœ ์ค‘์ธ ๋ฐ๋ชจ๋ฒ„์ „์ด๋‹ค. M1์ด๋‚˜ M2 ๋“ฑ์€ ์ •์‹ ๋ฆด๋ฆฌ์ฆˆ๋˜์ง€ ์•Š์€ ๋ฒ„์ „์ด๋‹ค. ๋‹ค๋ฅธ ๊ฒƒ ์—†์ด ๋ฒ„์ „๋งŒ ๋ช…์‹œ๋˜์–ด ์žˆ๋Š” ๊ฒƒ์ด ์ •์‹ ๋ฆด๋ฆฌ์ฆˆ ๋œ ๋ฒ„์ „์ž„์œผ๋กœ ์ด๋“ค ์ค‘์—์„œ ์„ ํƒํ•˜๋ฉด ๋œ๋‹ค. ๋†’์€ ๋ฒ„์ „์€ ๋†’์€ ..

Programming/Spring 2024.03.05

[์Šคํ”„๋ง] MVC, MVP, MVVM ๋””์ž์ธ ํŒจํ„ด

MVVM์„ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” MVC -> MVP -> MVVM ์ˆœ์„œ๋Œ€๋กœ ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ํ•„์š”ํ•˜๋‹ค. MVC ํŒจํ„ด ๊ฐ์ฒด์ง€ํ–ฅํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ MVC๋ž€ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์„ฑ๊ณต์ ์ด๋ฉฐ ํšจ๊ณผ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ ๋ชจํ˜•์— ๊ด€๋ จ ์‹œํ‚ค๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•๋ก  ๋˜๋Š” ์„ค๊ณ„ ๋ฐฉ์‹์ค‘ ํ•˜๋‚˜๋กœ์จ, ๋ชฉ์  ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์— ์œ ์šฉํ•œ ๊ฒƒ์€ ๋ฌผ๋ก , ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค์™€ ์‘์šฉํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ์— ์†Œ์š”๋˜๋Š” ์‹œ๊ฐ„์„ ํ˜„์ €ํ•˜๊ฒŒ ์ค„์—ฌ์ฃผ๋Š” ํ˜•์‹์ด๋ผ๊ณ  ๋งŽ์€ ๊ฐœ๋ฐœ์ž๋“ค์ด ํ‰๊ฐ€ํ•˜๊ณ  ์žˆ๋‹ค. Model, View, Controller์˜ ์•ฝ์ž๋กœ User – View – Controller – Model – Controller – View User์˜ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. MVC ํŒจํ„ด์€ ์‘์šฉํ”„๋กœ๊ทธ๋žจ์˜ ์‹œ๊ฐ์  ๋ถ€๋ถ„๊ณผ ๊ฐ€ ์ด๋ฉด์˜ ๋™์ž‘๊ณผ ์ œ์–ด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ถ€๋ถ„(๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์ด๋ผ ํ•œ๋‹ค)์„ ๋ถ„๋ฆฌ..

Programming/Spring 2023.07.03

[์Šคํ”„๋ง] ๋””์ž์ธ ํŒจํ„ด

๋””์ž์ธ ํŒจํ„ด์˜ ๊ฐœ์š” ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ์ด ํ˜‘์—…์„ ํ•˜๋ฉฐ ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœ ํ•  ๋•Œ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋‚˜ ๊ธฐ์กด์˜ ์ฝ”๋“œ๋ฅผ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์€ ์–ด๋ ต๋‹ค. ์ด๋Ÿฐ ์ฝ”๋“œ๋“ค์€ ์œ ์ง€ ๋ณด์ˆ˜๋ฅผ ํ•จ์— ์žˆ์–ด์„œ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ตœ์ ํ™”๋ฅผ ํ•˜๊ธฐ์— ํž˜๋“  ๊ตฌ์กฐ์ ์ธ ๊ฒฐํ•จ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์ด๋ฅผ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋””์ž์ธ ํŒจํ„ด์€ ๋“ฑ์žฅํ–ˆ๋‹ค. ํŠน์ˆ˜ํ•œ ๊ฒฝ์šฐ์˜ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๋ฉด์„œ ๋งŒ๋‚˜๋Š” ๋ฌธ์ œ๊ฐ€ ์ง€๊ตฌ์ƒ์—์„œ ์œ ์ผํ•œ ๋ฌธ์ œ์ผ ๊ฒฝ์šฐ๋Š” ๊ฑฐ์˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์•ž์„œ ์ด๋ฏธ ๋งŽ์€ ์ˆ˜๋งŽ์€ ์˜ค๋ฅ˜๋“ค์„ ํ”ผํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํŒจํ„ดํ™”ํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด ์ข€๋” ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ํญ์„ ์ค„์ด๊ณ  ์ˆ˜์ •ํ•˜๋Š”๋ฐ(๋ฐœ์ƒํ•˜๋Š” ์ˆซ์ž๊ฐ€ ์•„๋‹ˆ๋ผ ์˜ˆ์™ธ๋ฅผ ์ฐพ๋Š”๋ฐ ์กฐ๊ธˆ๋” ๋œ ์‹œ๊ฐ„์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋จ) ์ตœ์†Œํ•œ์˜ ์‹œ๊ฐ„์„ ๋“ค์ผ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค. ์ฆ‰, ๋””์ž์ธ ํŒจํ„ด์€ ํ”„๋กœ๊ทธ๋žจ ๋“ฑ์„ ๊ฐœ๋ฐœํ•˜๋Š” ์ค‘์— ๋ฐœ์ƒํ–ˆ๋˜ ๋ฌธ์ œ์ ๋“ค์„ ์ •๋ฆฌ ๋ฐ ํŠน..

Programming/Spring 2023.07.02

[์Šคํ”„๋ง] ๊ด€์  ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ (AOP)

AOP์˜ ๋“ฑ์žฅ ๋ฐฐ๊ฒฝ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ (OPP, Object-oriented Programming) ๊ณตํ†ต์˜ ๋ชฉ์ ์ด ์žˆ๋Š” ๋ฐ์ดํ„ฐ์™€ ๋™์ž‘์„ ๋ฌถ์–ด์„œ ํ•˜๋‚˜์˜ ๊ฐ์ฒด๋กœ ์ •์˜ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๊ฐ์ฒด๋ฅผ ์ ๊ทน์ ์œผ๋กœ ํ™œ์šฉํ•จ์œผ๋กœ์จ ๊ธฐ๋Šฅ์„ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ํฐ ์žฅ์ ์ด๋‹ค. ์—ฌ๊ธฐ์„œ ๋งํ•˜๋Š” ๊ฐ์ฒด๋ฅผ ์ž˜ ํ™œ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ด€์‹ฌ์‚ฌ ๋ถ„๋ฆฌ(SoC, Seperation of Concerns)์˜ ๋””์ž์ธ ์›์น™์„ ์ค€์ˆ˜ํ•ด์•ผ ํ•œ๋‹ค. Spring MVC์—์„œ๋Š” @Controller, @Service, @Repository์™€ ๊ฐ™์ด ๊ด€์‹ฌ์‚ฌ๋ณ„๋กœ ๊ณ„์ธต์„ ๋‚˜๋ˆ  ๊ฐ์ฒด๋ฅผ ๊ด€๋ฆฌํ•˜๊ฒŒ ๋œ๋‹ค. ์ด ๊ด€์‹ฌ์‚ฌ์˜ ๋ถ„๋ฆฌ๋Š” ๋ชจ๋“ˆํ™”์˜ ํ•ต์‹ฌ์ด ๋œ๋‹ค. ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ํ•œ๊ณ„ ์  ํŠน์ • ๊ด€์‹ฌ์‚ฌ ์—…๋ฌด ์ฝ”๋“œ์— ํŠธ๋žœ์žญ์…˜, ๋กœ๊น…, ๋ณด์•ˆ ๋“ฑ์€ ํ•„์ˆ˜์ ์ธ ๋ถ€๊ฐ€๊ธฐ๋Šฅ์ด๊ธฐ ๋•Œ๋ฌธ์— ์—…๋ฌด ๊ธฐ๋Šฅ๊ณผ๋Š” ..

Programming/Spring 2023.06.29
728x90
๋ฐ˜์‘ํ˜•