์ „์ฒด ๊ธ€

๊ฒฝํ—˜

UMC ์•„์ด๋””์–ดํ†ค ํ›„๊ธฐ ๐Ÿฅ

UMC 3๊ธฐ์— ๋“ค์–ด์˜ค๊ณ  ๋‚˜์„œ ์ฒซ ๊ณต์‹์ ์ธ..? ๋Œ€ํšŒ์ธ ์•„์ด๋””์–ดํ†ค์— ์ฐธ๊ฐ€ํ–ˆ๋‹ค! ๋‹ค๋ฅธ ํ•™๊ต ์‚ฌ๋žŒ๋“ค์ด๋ž‘ ๊ต๋ฅ˜๋„ ํ•˜๊ณ  ์–˜๊ธฐ๋„ ํ•  ๊ธฐํšŒ์ด๊ธฐ๋„ ํ•˜๊ณ  ๋Œ€ํšŒ ์ฐธ์—ฌ๋Š” ์ฒ˜์Œ์ด๋ผ ๊ธฐ๋Œ€ ๋ฐ˜ ๊ฑฑ์ • ๋ฐ˜์œผ๋กœ 1๋ฐ• 2์ผ ๋™์•ˆ ๋Œ€ํšŒ๋ฅผ ์ง„ํ–‰ํ–ˆ๋‹ค,,, ๋‚˜์ค‘์— ํ•ด์ปคํ†ค์€ ์ด๊ฑฐ์˜ ๋ช‡ ๋ฐฐ๊ฐ€ ํž˜๋“ค๊ฒ ์ง€? ํ•˜์ง€๋งŒ ๊ธฐ๋Œ€๋œ๋‹ค ใ…Žใ…Ž ์•„์ด๋””์–ด๋ฅผ ์ƒ๊ฐํ•ด๊ฐ€์•ผ ํ•  ๊ฒƒ ๊ฐ™์•„์„œ ์ „ ๋‚ ์— ๋ญ˜ ํ• ๊นŒ... ํ•˜๋‹ค๊ฐ€ ์—ฌํ–‰ ๋™ํ–‰์„ ๊ตฌํ•˜๋Š” ์–ดํ”Œ์ด ์žˆ์œผ๋ฉด ์ข‹์ง€ ์•Š์„๊นŒ๋ผ๋Š” ์ƒ๊ฐ์— ๊ตฌ์ƒ์„ ํ–ˆ๋‹ค! ํ˜ผ์ž ์ œ์ฃผ๋„ ์—ฌํ–‰์„ ๊ฐ”์„ ๋•Œ,, ๋„ˆ๋ฌด ์‹ฌ์‹ฌํ•ด์„œ ๊ฐ™์ด ์—ฌํ–‰ํ•  ์‚ฌ๋žŒ์ด ์žˆ์œผ๋ฉด ์ข‹๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋˜ ๊ฒฝํ—˜์—์„œ ํŒŒ์ƒ๋๋‹ค ๐Ÿ™ƒ ๊ทผ๋ฐ ๋ง‰ ์นดํŽ˜์—์„œ ๊ตฌํ•˜๋ ค๊ณ  ํ•˜๋ฉด ๋‚จ์ž๋“ค์€ ์—ฌ์ž๋“ค๋งŒ ๊ตฌํ•˜๊ณ  ๊ทธ๋Ÿฐ ์ด์ƒํ•œ... ์‚ฌ๋žŒ๋“ค ๋•Œ๋ฌธ์— ๊บผ๋ ค์ ธ์„œ ํ˜ผ์ž ์—ฌํ–‰์„ ๋๋งˆ์ณค์—ˆ๋Š”๋ฐ ์นดํŽ˜์ฒ˜๋Ÿผ ์‹ ์›์ด ๋ณด์žฅ๋˜์–ด์žˆ์ง€ ์•Š์€ ์ด์ƒํ•œ ์‚ฌ๋žŒ๋“ค์ด ๋งˆ์ฃผ์น ..

JAVA & OOP

JAVA :: HashMap, hashing ๊ฐœ๋… ์ •๋ฆฌ

HashMap์ด๋ž€? ์ผ๋‹จ Map์€ ํ‚ค(Key)์™€ ๊ฐ’(value)์„ ๋ฌถ์–ด์„œ ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ(entry)๋กœ ์ €์žฅํ•˜๋Š” ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๊ฐ™์€ ๋งต์— ๋‘ ๊ฐœ ์ด์ƒ์˜ ๊ฐ™์€ ํ‚ค๋Š” ์กด์žฌํ•ด์„œ๋Š” ์•ˆ๋˜๋ฉฐ, ์ค‘๋ณต๋œ ๊ฐ’์€ ์กด์žฌํ•ด๋„ ๊ดœ์ฐฎ๋‹ค. ๋งŒ์•ฝ ์ค‘๋ณต๋œ ํ‚ค ๊ฐ’์— ๊ฐ’์„ ์ €์žฅํ•˜๋ ค๊ณ  ํ•œ๋‹ค๋ฉด, ๋‚˜์ค‘์— ์ €์žฅํ•œ ๊ฐ’์ด ๊ทธ ํ‚ค์˜ ๊ฐ’์ด ๋œ๋‹ค. ํ•ด์‹ฑ์— ๋Œ€ํ•ด์„  ํ›„๋ฐ˜์— ์ •๋ฆฌํ•  ๊ฒƒ์ด๋‹ค. ๐ŸŸช HashMap โ—พ HashMap ๋ฉ”์„œ๋“œ โ—พHashMap ๊ฐ’ ์ถ”๊ฐ€ํ•˜๊ณ  ์ฝ๊ธฐ - entrySet() ์ด์šฉ HashMap map = new HashMap(); map.put("A", 100); map.put("B", 90); map.put("C", 80); Set set = map.entrySet(); Iterator it = set.iterator(); while (..

JAVA & OOP

JAVA :: Optional ํด๋ž˜์Šค ๊ฐœ๋…์ •๋ฆฌ

Optional์ด๋ž€? Optional์€ ์ง€๋„ค๋ฆญ ํด๋ž˜์Šค๋กœ 'Tํƒ€์ž… ๊ฐ์ฒด'๋ฅผ ๊ฐ์‹ธ๋Š” wrapper ํด๋ž˜์Šค์ด๋‹ค. ๋”ฐ๋ผ์„œ Optionalํƒ€์ž…์˜ ๊ฐ์ฒด์—๋Š” ๋ชจ๋“  ํƒ€์ž…์˜ ์ฐธ์กฐ๋ณ€์ˆ˜๋ฅผ ๋‹ด์„ ์ˆ˜ ์žˆ๋‹ค. ์ตœ์ข… ์—ฐ์‚ฐ์˜ ๊ฒฐ๊ณผ๋ฅผ ๊ทธ๋ƒฅ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ Optional๊ฐ์ฒด์— ๋‹ด์•„์„œ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๋ฐ˜ํ™˜๋œ ๊ฒฐ๊ณผ๊ฐ€ null์ธ์ง€ if๋ฌธ์œผ๋กœ ์ฒดํฌํ•˜์ง€ ์•Š์•„๋„ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๐ŸŸช Optional ๊ฐ์ฒด ์ƒ์„ฑ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ๋•Œ๋Š” of() ๋˜๋Š” ofNullable()์„ ์‚ฌ์šฉํ•œ๋‹ค. ์ฐธ์กฐ๋ณ€์ˆ˜๊ฐ€ null์ผ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค๋ฉด of()๋ง๊ณ  ofNullable()์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. of()๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐ’์ด null์ด๋ฉด NullPointerException์ด ๋ฐœ์ƒํ•œ๋‹ค. String str = "hi" Optiona..

Spring

SpringBoot [Bean Validation]

Bean Validation์ด๋ž€? ์œ ํšจ์„ฑ์„ ๊ฒ€์‚ฌํ•˜๋Š” JAVA์˜ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ํ‘œ์ค€ ๊ธฐ์ˆ ์ด๋‹ค. Bean Validation์€ ํŠน์ •ํ•œ ๊ตฌํ˜„์ฒด๊ฐ€ ์•„๋‹ˆ๋ผ Bean Validation 2.0์ด๋ผ๋Š” ๊ธฐ์ˆ  ํ‘œ์ค€์ด๋‹ค. ๊ฒ€์ฆ ์• ๋…ธํ…Œ์ด์…˜๊ณผ ์—ฌ๋Ÿฌ ์ธํ„ฐํŽ˜์ด์Šค์˜ ๋ชจ์Œ์ด๋‹ค. โญ ์ผ๋‹จ bean validation์„ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ์˜์กด๊ด€๊ณ„๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค! Maven org.springframework.boot spring-boot-starter-validation Gradle implementation 'org.springframework.boot:spring-boot-starter-validation' ๐ŸŸช ์–ด๋…ธํ…Œ์ด์…˜ ์ •๋ฆฌ @NotBlank : ๋นˆ ๊ฐ’ + ๊ณต๋ฐฑ๋งŒ ์žˆ๋Š” ๊ฒฝ์šฐ๋ฅผ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Œ @NotNull : null์„ ํ—ˆ์šฉํ•˜์ง€ ..

ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…

Intellij ํ•œ๊ธ€ ๊นจ์ง ๋ฌธ์ œ ํ•ด๊ฒฐ [utf-8 ์„ค์ •]

์ธํ…”๋ฆฌ์ œ์ด๋ฅผ ์˜ค๋žœ๋งŒ์— ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ํ”„๋กœ์ ํŠธ๋ฅผ ๋‹ค์šด ๋ฐ›์œผ๋ฉด ์ข…์ข… ํ•œ๊ธ€์ด ์ž์ฃผ ๊นจ์ ธ๋ณด์—ฌ์„œ ๊ทธ๋ƒฅ ๊ธ€์— ์ ์–ด๋‘๋ ค๊ณ  ํ•œ๋‹ค... ๋งค๋ฒˆ ์ฐพ๊ธฐ๋„ ๋„ˆ๋ฌด ๊ท€์ฐฎ๊ณ  ๊ธ€ ์“ฐ๋ฉด์„œ ๊นŒ๋จน์ง€๋‚˜ ๋ง์•„์•ผ์ง€...!! ์ด๋Ÿฐ์‹์œผ๋กœ ์•„์ฃผ ์•Œ ์ˆ˜๊ฐ€ ์—†๋Š” ๋ฌธ์ž๋กœ ๋ณด์ธ๋‹ค!! โญ ์ด๋Ÿด ๊ฒฝ์šฐ์—๋Š” ์„ค์ • -> ์—๋””ํ„ฐ -> ํŒŒ์ผ ์ธ์ฝ”๋”ฉ์— ๋“ค์–ด๊ฐ€์„œ ์•„๋ž˜ ์‚ฌ์ง„๊ณผ ๊ฐ™์ด utf-8๋กœ ๋ชจ๋‘ ์„ค์ •ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. ๊ทธ๋Ÿผ ์ด๋ ‡๊ฒŒ ๋ฐ”๋กœ ๋ฐ”๋€๋‹ค!!

Network

[HTTP ์™„๋ฒฝ ๊ฐ€์ด๋“œ] 1 ์›น์˜ ๊ธฐ์ดˆ : 01 HTTP ๊ฐœ๊ด€

HTTP๋ฅผ ๊ฐ•์˜๋ฅผ ๋“ค์œผ๋ฉด์„œ ๊ฐ„๋‹จํžˆ ํ›‘์–ด๋ณด์•˜๊ณ  ์ฑ…์œผ๋กœ ์ •ํ™•ํžˆ ๊ณต๋ถ€ํ•˜๊ณ  ์‹ถ์–ด์„œ HTTP ์™„๋ฒฝ ๊ฐ€์ด๋“œ ๋…์„œ๋ฅผ ์‹œ์ž‘ํ–ˆ๋‹ค! ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ๋ธ”๋กœ๊ทธ์— ์˜ฌ๋ฆฌ๋ฉด์„œ ๋‹ค์‹œํ•œ๋ฒˆ ์ •๋ฆฌํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์ง€๋ ค๊ณ  ํ•œ๋‹ค! HTTP๋ž€? HTTP๋Š” (Hypertext transfer Protocol)์˜ ์•ฝ์ž์ด๋‹ค. ์ „ ์„ธ๊ณ„์˜ ์›น๋ธŒ๋ผ์šฐ์ €, ์„œ๋ฒ„, ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋ชจ๋‘ HTTP๋ฅผ ํ†ตํ•ด ์„œ๋กœ ๋Œ€ํ™”ํ•œ๋‹ค. [ ์›น ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ] ์›น ์„œ๋ฒ„๋Š” HTTP ํ”„๋กœํ† ์ฝœ๋กœ ์˜์‚ฌ์†Œํ†ตํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณดํ†ต HTTP ์„œ๋ฒ„๋ผ๊ณ  ๋ถˆ๋ฆฐ๋‹ค. ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„์—์„œ HTTP์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ์„œ๋ฒ„๋Š” ์š”์ฒญ๋œ ๋ฐ์ดํ„ฐ๋ฅผ HTTP ์‘๋‹ต์œผ๋กœ ๋Œ๋ ค์ค€๋‹ค. "http://www.oreilly.com/index.html"์„ ์—ด์–ด๋ณด๊ณ  ์‹ถ์„ ๋•Œ, ์›น๋ธŒ๋ผ์šฐ์ €๋Š” www.oreilly.com์„ ์„œ๋ฒ„๋กœ ๋ณด๋‚ด๊ณ  ..

Spring

Thymeleaf ํƒ€์ž„๋ฆฌํ”„ ๊ธฐ๋ณธ ๊ธฐ๋Šฅ ์ •๋ฆฌ [ํ…์ŠคํŠธ/๋ณ€์ˆ˜/๋ฐ˜๋ณต/์†์„ฑ]

ํƒ€์ž„๋ฆฌํ”„๋Š” ํ…œํ”Œ๋ฆฟ ์—”์ง„์ด๋‹ค. ์Šคํ”„๋ง์„ ์‚ฌ์šฉํ•˜๋Š” ํ™˜๊ฒฝ์—์„œ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ๋œ๋‹ค! ์—ฌ๊ธฐ์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ณณ์„ ํ†ตํ•ด์„œ ํ”„๋กœ์ ํŠธ๋Š” ์ƒ์„ฑํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” Dependencies์— ํƒ€์ž„๋ฆฌํ”„๋ฅผ ์„ ํƒํ•˜๋ฉด๋œ๋‹ค. ํ˜น์‹œ ์„ ํƒํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด build.gradle์— ๋“ค์–ด๊ฐ€์„œ dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' } dependencies์•ˆ์— ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€์‹œ์ผœ ์ฃผ๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค!! ๊ทธ๋Ÿผ ํƒ€์ž„๋ฆฌํ”„ ๊ฐœ๋…์„ ์ •๋ฆฌํ•ด๋ด์•ผ๊ฒ ๋‹ค๐Ÿ™ƒ ํƒ€์ž„๋ฆฌํ”„ (Thymeleaf) ํƒ€์ž„๋ฆฌํ”„๋Š” ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ์ž๋ฐ” ํ…œํ”Œ๋ฆฟ ์—”์ง„์ด๋‹ค. โ—พ ์„œ๋ฒ„ ์‚ฌ์ด๋“œ HTML ๋ Œ๋”๋ง ๋ฐฑ์—”๋“œ ์„œ๋ฒ„์—์„œ HTML์„ ๋™์ ์œผ๋กœ ๋ Œ๋”๋ง ํ•˜๋Š” ์šฉ๋„์ด๋‹ค. โ—พ ๋‚ด์ถ”๋Ÿด ..

๊ฒฝํ—˜

[ SQLD ์ž๊ฒฉ์ฆ ] ์ผ์ฃผ์ผ ๋ฒผ๋ฝ์น˜๊ธฐ ํ•ฉ๊ฒฉ ํ›„๊ธฐ๐Ÿ”ฅ

์ž๊ฒฉ์ฆ์„ ํ•˜๋‚˜ ๋”ฐ๊ณ  ์‹ถ์–ด์„œ SQLD์ž๊ฒฉ์ฆ ์‹œํ—˜์„ ๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค. ๋‚œ ์ „๊ณต์ž์ด๊ธด ํ•˜์ง€๋งŒ ์•„์ง ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ๊ฐ•์˜๋ฅผ ๋“ค์€ ์ ์ด ์—†์–ด์„œ ๋น„์ „๊ณต์ž์™€ ๋น„์Šทํ•œ ์ˆ˜์ค€์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด ๊ธ€์ด ๋น„์ „๊ณต์žํ•œํ…Œ๋„ ๋„์›€์ด ๋  ๊ฒƒ ๊ฐ™๋‹ค!! ์‚ฌ์‹ค ์‰ฝ๋‹ค๊ณ  ๋ฏฟ๊ณ  ์ผ์ฃผ์ผ ์ „์— ์ฑ…์„ ํŽด๋ดค๋Š”๋ฐ ์ง„์งœ ์–ด๋ ค์šด ๊ฒƒ๋“ค์ด ์ˆ˜๋‘๋ฃฉํ•ด์„œ ๋ถˆํ•ฉ๊ฒฉ์ด ๊ฑฑ์ •๋˜๋Š” ์‚ฌ๋žŒ์€ 2์ฃผ ์ „๋ถ€ํ„ฐ ๊ณต๋ถ€ํ•˜๋ฉด ์ถฉ๋ถ„ํžˆ ํ•ฉ๊ฒฉํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค! ์ผ๋‹จ ์˜ค๋Š˜ ๋ฐœํ‘œ๋œ ์‹œํ—˜ ๊ฒฐ๊ณผ๋Š” ํ•ฉ๊ฒฉ์ด๋‹ค!! ํ•œ ๋ฒˆ์— ํ•ฉ๊ฒฉํ•˜๋‹ค๋‹ˆ ๋„ˆ๋ฌด ๋‹คํ–‰์ด๋‹ค....๐Ÿ˜ญ 1์‹œ๊ฐ„ ๋งŒ์— ๊ผผ๊ผผํžˆ ๋‹ค ํ’€๊ณ  ๋‚˜์™”๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์ง€๋งŒ ์˜์™ธ๋กœ ํ‹€๋ฆฐ ๊ฒŒ ๋งŽ์•„์„œ ์ข€ ๋ถ€๋„๋Ÿฝ๋‹ค ใ… ใ…  [ ์‹œํ—˜ ์ •๋ณด ] ์‹œํ—˜ ์ ‘์ˆ˜ ๋ฐ ๊ฒฐ๊ณผ ํ™•์ธ์€ ์•„๋ž˜ ๋ฐ์ดํ„ฐ ์ž๊ฒฉ์‹œํ—˜ ํ™ˆํŽ˜์ด์ง€์—์„œ ํ™•์ธํ•˜๋ฉด ๋œ๋‹ค. ๋ฐ์ดํ„ฐ์ž๊ฒฉ์‹œํ—˜ ์นด๋“œ๊ฒฐ์ œ/๊ณ„์ขŒ์ด์ฒด ํ™˜๋ถˆ ํ™˜๋ถˆ ์š”์ฒญ์‹œ ์ฆ‰์‹œํ™˜..

JAVA & OOP

JAVA :: ์ œ๋„ค๋ฆญ์Šค(Generics) ๊ฐœ๋… ์ •๋ฆฌ

์ œ๋„ค๋ฆญ์Šค(Generics)๋ž€? ๋‹ค์–‘ํ•œ ํƒ€์ž…์˜ ๊ฐ์ฒด๋“ค์„ ๋‹ค๋ฃจ๋Š” ๋ฉ”์„œ๋“œ๋‚˜ ์ปฌ๋ ‰์…˜ ํด๋ž˜์Šค์— ์ปดํŒŒ์ผ ์‹œ ํƒ€์ž…์ฒดํฌ๋ฅผ ํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. ArrayList๊ฐ™์€ ์ปฌ๋ ‰์…˜ ํด๋ž˜์Šค๋Š” ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ ๊ฐ์ฒด๋ฅผ ๋‹ด์„ ์ˆ˜ ์žˆ๋Š”๋ฐ ๋ณดํ†ต ํ•œ ์ข…๋ฅ˜์˜ ๊ฐ์ฒด๋งŒ ๋‹ด๋Š”๋‹ค. ํ•œ ์ข…๋ฅ˜์˜ ๊ฐ์ฒด๋งŒ ๋‹ด๊ธฐ๋ฅผ ์›ํ•  ๋•Œ ์ œ๋„ค๋ฆญ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ˜•๋ณ€ํ™˜์„ ์•ˆํ•ด๋„ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋” ๊ฐ„๋‹จํžˆ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๐Ÿ‘‰ ์ œ๋„ค๋ฆญ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๋•Œ ArrayList list = new ArrayList(); list.add(10); list.add("10"); String word = (String)list.get(1); ์ œ๋„ค๋ฆญ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด Object๋กœ ํƒ€์ž…์„ ์ง€์ •ํ•˜๊ณ , ์•ˆ์— ์žˆ๋Š” ๊ฐ์ฒด๋ฅผ ๊บผ๋‚ผ ๋•Œ๋งˆ๋‹ค ํ˜•๋ณ€ํ™˜์„ ํ•ด์ค˜์•ผํ•œ๋‹ค. ๐Ÿ‘‰ ์ œ๋„ค๋ฆญ์Šค๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ArrayList lis..

Spring

Spring MVC [ Model / @ModelAttribute]

spring์„ ๊ณต๋ถ€ํ•˜๋‹ค ๋ณด๋‹ˆ๊นŒ Model์ด๋ž‘ @ModelAttribute๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์ด ๋‚˜์™€์„œ ํ•œ๋ฒˆ ์ •๋ฆฌ ์ข€ ํ•˜๊ณ  ์‹ถ์–ด์„œ ๊ธ€ ์“ฐ๊ฒŒ ๋๋‹ค... Model์ด๋ž‘ @ModelAttribute๋ž‘ ๋‹ค๋ฅด์ง€๋งŒ ์ž๊พธ ํ—ท๊ฐˆ๋ ค์„œใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ… ใ…  ๐Ÿ’œ Model ๐Ÿ’œ Model์€ ๊ฐ์ฒด์ด๋‹ค. view์˜ ์ด๋ฆ„๊ณผ view๋ฅผ ๋ Œ๋”๋งํ•  ๋•Œ ํ•„์š”ํ•˜๋‹ค. map์œผ๋กœ ๋˜์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์— controller์—์„œ view์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ key, value๋กœ ๋„ฃ์–ด์ค€๋‹ค. Servlet์—์„œ request.setAttribute()์™€ ๋น„์Šทํ•œ ์—ญํ• ์„ ํ•œ๋‹ค. model๊ฐ์ฒด์— ๋‹ด์„ ๋•Œ๋Š” model.addAttribute("key", value)๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. ๐Ÿ’œ @ModelAttribute ๐Ÿ’œ ์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋ฐ›์•„์„œ ํ•„์š”ํ•œ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค๊ณ  ๊ทธ ๊ฐ์ฒด์— ๊ฐ’์„ ๋„ฃ์–ด์ฃผ์–ด..

DAHLIA CHOI
๐ŸŒผ dali's log ๐ŸŒผ