spring framework 6.2๋Š” spring boot ์–ด๋–ค ๋ฒ„์ „๋ถ€ํ„ฐ ์ ์šฉ๋˜๋Š”๊ฐ€?
ยท
Framework/spring
Spring Boot์™€ Spring Framework ๋ฒ„์ „ ์ƒํ˜ธ ํ˜ธํ™˜์„ฑ ๋ถ„์„Spring Framework 6.2๋Š” 2023๋…„ 11์›” ๊ณต์‹ ์ถœ์‹œ๋œ ์ฃผ์š” ๋ฒ„์ „์œผ๋กœ, Spring Boot 3.2.0๋ถ€ํ„ฐ ๊ธฐ๋ณธ ์ง€์›๋ฉ๋‹ˆ๋‹ค. ์ด ํ˜ธํ™˜์„ฑ ๊ด€๊ณ„๋Š” Spring ์ƒํƒœ๊ณ„์˜ ๋ฒ„์ „ ์ •์ฑ…๊ณผ ์˜์กด์„ฑ ๊ด€๋ฆฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜์— ๊ธฐ๋ฐ˜ํ•ฉ๋‹ˆ๋‹ค.Spring Framework 6.2์˜ Spring Boot ์ง€์› ๋ฒ”์œ„1. ๊ณต์‹ ์ง€์› ๋ฒ„์ „ ๋งคํŠธ๋ฆญ์ŠคSpring Boot 3.2.0(2023๋…„ 11์›” ์ถœ์‹œ)๋ถ€ํ„ฐ Spring Framework 6.2.x๊ฐ€ ๊ธฐ๋ณธ ์ž„๋ฒ ๋”ฉ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” Spring Boot์˜ ๋ฒ„์ „ ๊ด€๋ฆฌ ์ •์ฑ…์— ๋”ฐ๋ผ ์ƒ์œ„ ํ”„๋ ˆ์ž„์›Œํฌ ๋ฒ„์ „์ด ์ž๋™์œผ๋กœ ์—…๋ฐ์ดํŠธ๋˜๋Š” ๊ตฌ์กฐ์—์„œ ๋น„๋กฏ๋ฉ๋‹ˆ๋‹ค.// Spring Boot 3.2.0์˜ ๊ธฐ๋ณธ ์˜์กด์„ฑplugins { ..
Spring Framework 6.2 ๋ฆด๋ฆฌ์Šค ๋…ธํŠธ
ยท
Framework/spring
Spring Framework 6.2 ๋ฆด๋ฆฌ์Šค ๋…ธํŠธ ๋ฐ ๊ด€๋ จ ๊ธฐ์ˆ  ๋™ํ–ฅ ์ข…ํ•ฉ ๋ถ„์„Spring Framework 6.2๋Š” 2024๋…„ 11์›” 14์ผ ์ •์‹ ์ถœ์‹œ๋œ ์ฃผ์š” ๋ฒ„์ „์œผ๋กœ, ๊ธฐ์กด 6.1 ๋Œ€๋น„ 49๊ฐœ ์ด์ƒ์˜ ๊ฐœ์„ ์‚ฌํ•ญ๊ณผ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ๋„์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ณธ ๋ณด๊ณ ์„œ๋Š” ๊ณต์‹ ๋ฆด๋ฆฌ์Šค ๋…ธํŠธ์™€ VMware Tanzu์˜ ์ƒ์šฉ ์—…๊ทธ๋ ˆ์ด๋“œ ๊ฐ€์ด๋“œ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ๊ธฐ์ˆ ์  ๋ณ€ํ™”๋ฅผ ์‹ฌ์ธต ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค.ํ•ต์‹ฌ ์ปจํ…Œ์ด๋„ˆ ๊ฐœ์„  ์‚ฌํ•ญ1. ์ž๋™ ์ฃผ์ž… ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ์„ 6.2 ๋ฒ„์ „์—์„œ๋Š” @Qualifier ์–ด๋…ธํ…Œ์ด์…˜๊ณผ ํŒŒ๋ผ๋ฏธํ„ฐ ์ด๋ฆ„ ๋งค์นญ์ด @Priority๋ณด๋‹ค ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฐ–๋„๋ก ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค[1][2]. ์ด๋Š” ํŠน์ • ๋นˆ์„ ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •ํ•  ๋•Œ ๋” ์ง๊ด€์ ์ธ ๋™์ž‘์„ ๋ณด์žฅํ•˜๋ฉฐ, ์ฃผ์ž… ๋Œ€์ƒ ํ›„๋ณด ๊ฐ„ ์ถฉ๋Œ ๊ฐ€๋Šฅ์„ฑ์„ ์ค„์ž…๋‹ˆ๋‹ค.@Configurationpublic class..
Spring Boot 3.4 ๋ฆด๋ฆฌ์Šค ๋…ธํŠธ
ยท
Framework/spring
Spring Boot 3.4 ๋ฆด๋ฆฌ์Šค ๋…ธํŠธ ์ข…ํ•ฉ ๋ถ„์„Spring Boot 3.4๋Š” 2024๋…„ 11์›” 21์ผ ์ถœ์‹œ๋œ ์ฃผ์š” ๋ฒ„์ „์œผ๋กœ, ์„ฑ๋Šฅ ๊ฐœ์„ , ๋ณด์•ˆ ๊ฐ•ํ™”, ํด๋ผ์šฐ๋“œ ๋„ค์ดํ‹ฐ๋ธŒ ์ง€์› ํ™•์žฅ ๋“ฑ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ๋„์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ๋ฆด๋ฆฌ์Šค๋Š” ๊ฐœ๋ฐœ์ž ๊ฒฝํ—˜ ํ–ฅ์ƒ๊ณผ ์šด์˜ ํ™˜๊ฒฝ์—์„œ์˜ ์•ˆ์ •์„ฑ์„ ๊ทน๋Œ€ํ™”ํ•˜๋Š” ๋ฐ ์ค‘์ ์„ ๋‘์—ˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ, ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ๊ด€์ธก ๊ฐ€๋Šฅ์„ฑ(Observability), ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€ ์ตœ์ ํ™”, ๋ณด์•ˆ ์ •์ฑ… ๊ฐœ์„ ์ด ๋‘๋“œ๋Ÿฌ์ง‘๋‹ˆ๋‹ค.์ฃผ์š” ์—…๊ทธ๋ ˆ์ด๋“œ ๋ฐ ๋ณ€๊ฒฝ ์‚ฌํ•ญ1. ๊ธฐ์กด ๋ฒ„์ „(3.3)์—์„œ์˜ ์—…๊ทธ๋ ˆ์ด๋“œSpring Boot 3.4๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ์‹œ ์ฃผ์˜ํ•ด์•ผ ํ•  ์ฃผ์š” ๋ณ€๊ฒฝ์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:HTTP ํด๋ผ์ด์–ธํŠธ ์ž๋™ ๊ตฌ์„ฑ ์šฐ์„ ์ˆœ์œ„ ๋ณ€๊ฒฝ: RestClient ๋ฐ RestTemplate์˜ ๊ธฐ๋ณธ HTTP ํด๋ผ์ด์–ธํŠธ๊ฐ€ JDK Ht..
Spring One 2023 ์„ธ์…˜ ๋ชจ์Œ
ยท
Framework/spring
Spring One 2023 ์„ธ์…˜ ๋ชจ์Œ Spring One 2023 ์˜์ƒ์ด ์œ ํŠœ๋ธŒ์— ๊ณต๊ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. (๋ชจ๋“  ์žฌ์ƒ ๋ชฉ๋ก ๋ณด๊ธฐ) ํ•œ ๋ˆˆ์— ํ™•์ธํ•˜๊ธฐ ์ข‹๊ฒŒ ์ œ๋ชฉ ๋ฒˆ์—ญ ํ›„ ํƒ€์ดํ‹€๊ณผ ์žฌ์ƒ ์‹œ๊ฐ„๋งŒ ๋ฝ‘์•„์„œ ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„๋กœ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค. (w/ChatGPT) Spring Boot 1. ์Šคํ”„๋ง์› ๊ธฐ์กฐ์—ฐ์„ค: ์Šคํ”„๋ง์œผ๋กœ ํ˜์‹  ๊ฐ€์†ํ™”ํ•˜๊ธฐ (1:39:46) 2. ๋„ทํ”Œ๋ฆญ์Šค๊ฐ€ Spring Boot 3๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๋ฐฉ๋ฒ• (50:01:00) 13. Spring์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”? (37:43:00) 14. ์•„ํŒŒ์น˜ ํŽ„์„œ์šฉ ์Šคํ”„๋ง ์†Œ๊ฐœ (38:56:00) 16. Beautiful Spring Boot 3.x (45:23:00) 26. ์ž‘์€ ๋ณด๋ฌผ๋“ค: ์—ฌ๋Ÿฌ๋ถ„์ด ๋ชฐ๋ž์„์ง€๋„ ๋ชจ๋ฅด๋Š” ์œ ์šฉํ•œ Spring ์ˆ˜์—… (43:40:00) 39. Spring Bo..
[spring boot] ์Šคํ”„๋ง๋ถ€ํŠธ 3.1.0 M2 ๋ฆด๋ฆฌ์ฆˆ ๋…ธํŠธ
ยท
Framework/spring
Spring Boot 3.1.0 ๋ฒ„์ „์ด ๋ฆด๋ฆฌ์ฆˆ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฌด์—‡์ด ๋ฐ”๋€Œ์—ˆ์„๊ผฌ? v3.1.0-M2 Pre-release โญ New Features ํ…Œ์ŠคํŠธ ์ปจํ…Œ์ด๋„ˆ ์— ๋Œ€ํ•œ ์ข…์†์„ฑ ๊ด€๋ฆฌ ์ œ๊ณต #34712 GraphQL ํŽ˜์ด์ง€ ๋งค๊น€ ๋ฐ ์ •๋ ฌ ์— ๋Œ€ํ•œ ์ง€์› ๊ตฌ์„ฑ #34677 Testcontainers ๊ด€๋ฆฌ ์ปจํ…Œ์ด๋„ˆ ์—์„œ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ…Œ์ŠคํŠธ์— ํ•„์š”ํ•œ ์ƒ์šฉ๊ตฌ ์ค„์ด๊ธฐ #34658 ์ž๋™ ๊ตฌ์„ฑ์ด ๊ตฌ์„ฑ ์†์„ฑ ์ด์™ธ์˜ ์†Œ์Šค์—์„œ ์„œ๋น„์Šค ์—ฐ๊ฒฐ ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ํ—ˆ์šฉ #34657 ์‚ด๊ท  ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€์‚ด๊ท ๊ฐ’ #34615 @GraphQlExceptionHandler ๋ฉ”์„œ๋“œ ์— ๋Œ€ํ•œ ์˜ˆ์™ธ ํ™•์ธ์ž ๊ตฌ์„ฑ #34526 Spring Kafka ์žฌ์‹œ๋„ ๊ตฌ์„ฑ์—์„œ ๊ณ ์ • ์ง€์—ฐ์— ๋Œ€ํ•œ ๋‹จ์ผ ํ•ญ๋ชฉ์—์„œ ๋™์ผํ•œ ๊ฐ„๊ฒฉ์— ๋Œ€ํ•œ ๋‹จ์ผ ํ•ญ๋ชฉ์œผ๋กœ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค..
[Spring] Web on Reactive Stack(๋ฐ˜์‘ํ˜• ์Šคํƒ์˜ ์›น)
ยท
Framework/spring
1. Spring WebFlux ์Šคํ”„๋ง ํ”„๋ ˆ์ž„ ์›Œํฌ์— ํฌํ•จ ๋œ ์›๋ž˜ ์›น ํ”„๋ ˆ์ž„ ์›Œํฌ ์ธ ์Šคํ”„๋ง ์›น MVC๋Š” ์„œ๋ธ”๋ฆฟ API ๋ฐ ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ ์šฉ์œผ๋กœ ํŠน๋ณ„ํžˆ ์ œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ˜์‘ํ˜• ์Šคํƒ ์›น ํ”„๋ ˆ์ž„์›Œํฌ์ธ Spring WebFlux๋Š” ๋ฒ„์ „ 5.0 ํ›„๋ฐ˜์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์™„์ „ํžˆ ์ฐจ๋‹จ๋˜์ง€ ์•Š๊ณ  ๋ฐ˜์‘ํ˜• ์ŠคํŠธ๋ฆผ ์—ญ ์••๋ ฅ์„ ์ง€์› ํ•˜๋ฉฐ Netty, Undertow ๋ฐ ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ์™€ ๊ฐ™์€ ์„œ๋ฒ„์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ๋‘ ์›น ํ”„๋ ˆ์ž„ ์›Œํฌ๋Š” ์†Œ์Šค ๋ชจ๋“ˆ (spring-webmvc ๋ฐ spring-webflux)์˜ ์ด๋ฆ„์„ ๋ฏธ๋Ÿฌ๋งํ•˜๊ณ  Spring ํ”„๋ ˆ์ž„ ์›Œํฌ์—์„œ ๋‚˜๋ž€ํžˆ ๊ณต์กดํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๋ชจ๋“ˆ์€ ์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ํ•˜๋‚˜ ๋˜๋Š” ๋‹ค๋ฅธ ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ๋‘˜ ๋‹ค ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (์˜ˆ : ๋ฐ˜์‘ํ˜• WebClient๊ฐ€์žˆ๋Š”..
Spring Boot 3.0 Release Notes
ยท
Framework/spring
Upgrading from Spring Boot 2.7 ์ด๊ฒƒ์€ Spring Boot์˜ ์ฃผ์š” ๋ฆด๋ฆฌ์Šค์ด๋ฏ€๋กœ ๊ธฐ์กด ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒƒ์ด ํ‰์†Œ๋ณด๋‹ค ์กฐ๊ธˆ ๋” ๋ณต์žก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์กด Spring Boot 2.7 ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ์ „์šฉ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๊ฐ€์ด๋“œ๋ฅผ ๋งˆ๋ จ ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ์ด์ „ ๋ฒ„์ „์˜ Spring Boot๋ฅผ ์‚ฌ์šฉ ์ค‘์ธ ๊ฒฝ์šฐ Spring Boot 2.7์œผ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํ•˜๊ธฐ ์ „์— Spring Boot 3.0๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. New and Noteworthy Tip. ๊ตฌ์„ฑ ๋ณ€๊ฒฝ ๋กœ๊ทธ์—์„œ ๊ตฌ์„ฑ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ์ „์ฒด ๊ฐœ์š”๋ฅผ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. Java 17 Baseline and Java 19 Support ์Šคํ”„๋ง ๋ถ€ํŠธ 3.0์—๋Š” ์ตœ์†Œ ๋ฒ„์ „์œผ๋กœ Java 17์ด..
[angular] ngx-json-viewer JSON formatter and viewer
ยท
Framework/angular
์„ค์น˜ npm install ngx-json-viewer or yarn add ngx-json-viewer For older Angular: # For Angular 4/5/6/7: npm install ngx-json-viewer@2 # For Angular 2: npm install ngx-json-viewer@1 ์ง์ ‘ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด package.json์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. "dependencies": { "ngx-json-viewer": "^3.0.2" } ์‚ฌ์šฉํ•˜๊ธฐ app.module.ts ์— NgxJsonViewerModule์„ import ํ•ฉ๋‹ˆ๋‹ค. import { NgxJsonViewerModule } from 'ngx-json-viewer'; @NgModule({ ..., imports: [ ....
[angular] ngx-spinner ๋กœ๋”ฉ๋ฐ”(๋กœ๋”ฉ ์Šคํ”ผ๋„ˆ)
ยท
Framework/angular
angular์—์„œ ๋กœ๋”ฉ๋ฐ” ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ• 2022.02.23 ๊ธฐ์ค€์œผ๋กœ angular 13์„ ์ง€์›ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. gif๋ฅผ ์ด์šฉํ•œ ์ปค์Šคํ…€๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. Multiple Sprinners๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ „์ฒด ํ™”๋ฉด ๊ธฐ๋Šฅ๋„ enable/disable ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. z-index๋ฅผ ์ง€์›ํ•ด์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ ˆ์ด์–ด์˜ ์œ„์น˜๋ฅผ ์ง€์ • ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋ฌด์—‡๋ณด๋‹ค ์ง์ ‘ ๋งŒ๋“œ๋Š”๊ฒƒ ๋ณด๋‹ค ๋น ๋ฅด๊ฒŒ ์ ์šฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์„ค์น˜ Using npm: $ npm install ngx-spinner --save Using yarn: $ yarn add ngx-spinner Using angular-cli: $ ng add ngx-spinner ์„ค์น˜ ๋ฐฉ๋ฒ•์€ ์„ธ๊ฐ€์ง€๋ฅผ ์ง€์›ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์ง์ ‘ ๋“ฑ๋กํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด package.json์— ๋“ฑ๋กํ•ด์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. "depend..
[jstl] String to date ๋Œ€์†Œ๋น„๊ต
ยท
Framework/jstl
dateFom1 dateFom2 dateFom1==dateFom2 parseDate ์— ํŒจํ„ด์ด string dateํƒ€์ž…๊ณผ ๋‹ค๋ฅผ ๊ฒฝ์šฐ ๋ณ€ํ™˜ ์‹œ ์—๋Ÿฌ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. date pattern์„ ๊ฐ™๊ฒŒ ํ•ด์ฃผ์‹œ๊ณ  ๋น„๊ตํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฒ”์œ„๊นŒ์ง€ formatDate ์„ ์–ธ ์‹œ ์„ค์ • ํ•ด์ฃผ์‹œ๋ฉด๋ฉ๋‹ˆ๋‹ค.