๋ฐฑ์—”๋“œ(Back-End) ๊ฐœ๋ฐœ/Spring
POST ๋ฐฉ์‹ ํŒŒ๋ผ๋ฏธํ„ฐ์— ๋Œ€ํ•œ ์ธ์ฝ”๋”ฉ ์ฒ˜๋ฆฌ ํ•„ํ„ฐ ์„ค์ •(UTF-8)
2025.03.06
๋ฐฑ์—”๋“œ(Back-End) ๊ฐœ๋ฐœ/Spring
[TOMCAT] ์„œ๋ฒ„ ํฌํŠธ ์ถฉ๋Œ๋กœ ์ธํ•ด ์„œ๋ฒ„ ์‹œ์ž‘์ด ์•ˆ๋  ๊ฒฝ์šฐ
2025.03.01
๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ค๋ฅ˜ ๋ฉ”์„ธ์ง€๊ฐ€ ์ดํด๋ฆฝ์Šค์— ํ‘œ์‹œ๋จ(์˜ค๋ฅ˜์ฐฝ์œผ๋กœ ๋ณ„๋„๋กœ ํ‘œ์‹œ)Port 8080 required by Tomcat v9.0 Server at localhost is already in use. The server may already be running in another process, or a system process may be using the port. To start this server you will need to stop the other process or change the port number(s). Several ports (8009, 8080) required by Tomcat v9.0 Server at localhost are already in use. The serv..
๋ฐฑ์—”๋“œ(Back-End) ๊ฐœ๋ฐœ/Spring
[Spring] Entity? DTO? VO?
2025.02.27
์Šคํ”„๋ง์œผ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐœ๋ฐœํ•˜๋ฉด์„œ VO๋งŒ ์จ์™”๋Š”๋ฐ.. ๊ฐ‘์ž๊ธฐ DTO๋Š” ์–ธ์ œ ์ผ๋”๋ผ? ํ—ท๊ฐˆ๋ฆฌ๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค..์ •ํ™•ํ•œ ๊ฐœ๋…์„ ์•Œ๊ณ  ๊ฐ€์•ผ ํ•  ๊ฒƒ ๊ฐ™๋‹ค๐Ÿ’ก Spring์˜ ๊ธฐ๋ณธ 3๊ฐ€์ง€ ๊ณ„์ธต(+๋„๋ฉ”์ธ ๋ชจ๋ธ ํด๋ž˜์Šค)ํ”„๋ ˆ์  ํ…Œ์ด์…˜ ๊ณ„์ธต(@Controller) : ์›น ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ ๋ฐ ์‘๋‹ต์„ ์ฒ˜๋ฆฌ, ์ตœ์ข… UI์—์„œ ์ž…๋ ฅํ•œ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ์„œ๋น„์Šค ๊ณ„์ธต(@Service) : ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์ฒ˜๋ฆฌ, ๋น„์ฆˆ๋‹ˆ์Šค์™€ ๊ด€๋ จ๋œ ๋„๋ฉ”์ธ ๋ชจ๋ธ์˜ ์ ํ•ฉ์„ฑ ๊ฒ€์ฆ, ์–‘์ชฝ์˜ ๊ณ„์ธต๋“ค๊ณผ ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค ์ œ๊ณต๋ฐ์ดํ„ฐ ์—‘์„ธ์Šค(=Persistence) ๊ณ„์ธต(@Repository, ORM, Mybatis ํ”„๋ ˆ์ž„์›Œํฌ..) : DB์™€ ์—ฐ๊ฒฐํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์—ญํ• , ๊ด€์‹ฌ์‚ฌ์˜ ๋ถ„๋ฆฌ๋ฅผ ์ ์šฉํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ ‘๊ทผ, CRUD ์ˆ˜ํ–‰๋„๋ฉ”์ธ ๋ชจ๋ธ ํด๋ž˜์Šค(VO, DT..
๋ฐฑ์—”๋“œ(Back-End) ๊ฐœ๋ฐœ/Spring
[Spring] DI์™€ IOC ๋ž€?
2025.02.27
ํ”ํžˆ๋“ค IoC์™€ DI(Dependency Injection: ์˜์กด์„ฑ ์ฃผ์ž…)์„ ํ—ท๊ฐˆ๋ คํ•˜๊ฑฐ๋‚˜, ๋™์ผ์‹œํ•˜๊ณ ๋Š” ํ•œ๋‹ค.ํ•˜์ง€๋งŒ ์‚ฌ์‹ค IoC์™€ DI๋Š” ๋‹ค๋ฅธ ๊ฐœ๋…์ด๋‹ค. ์ ˆ๋Œ€ IoC == DI๊ฐ€ ์•„๋‹ˆ๋‹ค! (DI ⊂ IoC ๋ผ๋ฉด ๋ชฐ๋ผ๋„)IoC๋Š” ํ”„๋กœ๊ทธ๋žจ ์ œ์–ด๊ถŒ์„ ์—ญ์ „์‹œํ‚ค๋Š” ๊ฐœ๋…์ด๊ณ , DI๋Š” ํ•ด๋‹น ๊ฐœ๋…์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๋””์ž์ธ ํŒจํ„ด ์ค‘ ํ•˜๋‚˜๋กœ, ์ด๋ฆ„ ๊ทธ๋Œ€๋กœ ๊ฐ์ฒด์˜ ์˜์กด๊ด€๊ณ„๋ฅผ ์™ธ๋ถ€์—์„œ ์ฃผ์ž…์‹œํ‚ค๋Š” ํŒจํ„ด์„ ๋งํ•œ๋‹ค.IOC (Inversion of Control) : ์ œ์–ด์˜ ์—ญ์ „ * ํ• ๋ฆฌ์šฐ๋“œ ์›์น™์˜ "Don't call usd, We'll call you." : ๋ฐฐ์šฐ๋“ค(๊ฐ์ฒด)์—๊ฒŒ ์˜ํ™”์‚ฌ์—์„œ "ํ•„์š”ํ•˜๋ฉด ์šฐ๋ฆฌ๊ฐ€ ๋จผ์ € ์—ฐ๋ฝํ• ํ…Œ๋‹ˆ, ๋จผ์ € ์—ฐ๋ฝํ•˜์ง€ ๋งˆ์„ธ์š”" ๊ฐ์ฒด์˜ ์ƒ๋ช…์ฃผ๊ธฐ(๊ฐ์ฒด์˜ ์ƒ์„ฑ, ์ดˆ๊ธฐํ™”, ์†Œ๋ฉธ, ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ ๋“ฑ..)๋ฅผ ํด๋ผ์ด์–ธ..
๋ฐฑ์—”๋“œ(Back-End) ๊ฐœ๋ฐœ/Spring
[Spring] Spring Framework(์Šคํ”„๋ง ํ”„๋ ˆ์ž„ ์›Œํฌ)์™€ STS(Spring Tool Suite)
2025.01.19
Spring Framework๋ž€, ํ”„๋ ˆ์ž„์›Œํฌ ์ค‘ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๊ณ ์žˆ๊ณ  ์ž๋ฐ” ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ์˜คํ”ˆ์†Œ์Šค ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ๊ธฐ์กด ํ”„๋ ˆ์ž„์›Œํฌ๋ณด๋‹ค ๊ฐ€๋ฒผ์šด ๊ฒฝ๋Ÿ‰์˜ ํ”„๋ ˆ์ž„์›Œํฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์ฐจ์ด?- ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ : '๋„๊ตฌ', IDE๋‚˜ ์–ธ์–ด ์ˆ˜์ค€์—์„œ ๋ฏธ๋ฆฌ ์ •์˜๋˜์–ด ๋‚ด๊ฐ€ ๋งŒ๋“  ํด๋ž˜์Šค์—์„œ ํ˜ธ์ถœํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์˜ ์œ ์šฉํ•œ ๋„๊ตฌ- ํ”„๋ ˆ์ž„์›Œํฌ : '๋ผ์ธ์ด ๊ฐ–์ถ”์–ด์ง„ ๊ณต์žฅ', ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌํ˜„ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(ํด๋ž˜์Šค) ๋ฐ ๊ฐœ๋ฐœ ๋ฐฉ์‹ ๋ชจ์Œ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์‚ฌ๋žŒ์ด ์ฃผ๋„๊ถŒ์„ ๊ฐ€์ง€๊ณ  ์ฝ”๋“œ์—์„œ ํ•ด๋‹น ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์‚ฌ์šฉํ•˜๋ฉด ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ๋‚ด ์ฝ”๋“œ๋ฅผ ํ˜ธ์ถœํ•ด์„œ ์›ํ•˜๋Š” ๋ชฉ์ ์„ ๋‹ฌ์„ฑํ•˜๋„๋ก ๋„์™€์ค€๋‹ค! ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ- 'Java Web Application ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ๊ฒฝ๋Ÿ‰ ํ”„๋ ˆ์ž„์›Œํฌ'๋กœ ์ฆ‰, Jav..