Notice
Recent Posts
Link
Today
Total
07-07 13:42
๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก๐ŸSpring (9)

dingdong coding

Bean Scope - ProtoType Scope

Bean Scope ๋Š” ๋ง๊ทธ๋Œ€๋กœ ๋นˆ์ด ์กด์žฌํ•˜๋Š” ๋ฒ”์œ„๋ฅผ ๋œปํ•ฉ๋‹ˆ๋‹ค. Bean Life Cycle ์—์„œ ์‚ดํŽด๋ดค๋“ฏ์ด ๋นˆ์€ ์ปจํ…Œ์ด๋„ˆ์˜ ์‹œ์ž‘๊ณผ ํ•จ๊ป˜ ์ƒ์„ฑ๋˜์–ด์„œ Container๊ฐ€ ์ข…๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ Spring Container๋Š” ๋นˆ์„ ๋“ฑ๋กํ•  ๋•Œ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ฐ์ฒด ์ธ์Šคํ„ด์Šค(Bean)๋ฅผ ์‹ฑ๊ธ€ํ†ค์œผ๋กœ ๋“ฑ๋กํ•˜๊ณ  ์‹ฑ๊ธ€ํ†ค ์Šค์ฝ”ํ”„๋กœ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ( ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ชจ๋“  ๋นˆ์€ ์Šค์ฝ”ํ”„๊ฐ€ ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •๋˜์ง€ ์•Š์œผ๋ฉด ์‹ฑ๊ธ€ํ†ค์ด๋‹ค ) ๋Œ€์ƒ ํด๋ž˜์Šค์— @Scope( ) ์–ด๋…ธํ…Œ์ด์…˜์„ ํ†ตํ•ด ์Šค์ฝ”ํ”„ ์ง€์ • //์ปดํฌ๋„ŒํŠธ ์Šค์บ” ์ž๋™ ๋“ฑ๋ก @Scope("prototype") // @Scope(”singletone”) @Component public class HelloBean {} //์ˆ˜๋™๋“ฑ๋ก @Scope("prototype") // @Scope(..

๐ŸSpring/Basic 2022. 6. 23. 23:00
Bean Life Cycle

Spring Container๋Š” ์ž๋ฐ” ๊ฐ์ฒด(Bean)์˜ ์ƒ์„ฑ๊ณผ ์†Œ๋ฉธ ๊ฐ™์€ ์ƒ๋ช…์ฃผ๊ธฐ(Life Cycle)๋ฅผ ๊ด€๋ฆฌํ•˜๋ฉฐ, ์ƒ์„ฑ๋œ ์ž๋ฐ” ๊ฐ์ฒด๋“ค์—๊ฒŒ ์ถ”๊ฐ€์ ์ธ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. Bean Life Cycle • Spring์˜ Bean์€ Java ๋˜๋Š” XML bean ์ •์˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹œ์ž‘๋  ๋•Œ ์ธ์Šคํ„ด์Šคํ™” ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. • Bean์„ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์‚ฌ์ „, ์‚ฌํ›„ ์ดˆ๊ธฐํ™” ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. • ๊ทธ ํ›„ Bean์ด ๋” ์ด์ƒ ํ•„์š”ํ•˜์ง€ ์•Š์œผ๋ฉด Ioc Container์—์„œ ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค. • ๋‹ค๋ฅธ ์‹œ์Šคํ…œ ๋ฆฌ์†Œ์Šค๋ฅผ ํ•ด์ œํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์ „ ๋ฐ ์‚ฌํ›„ ์†Œ๋ฉธ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, Bean์˜ Life Cycle์ด๋ž€ ํ•ด๋‹น ๊ฐ์ฒด๊ฐ€ ์–ธ์ œ, ์–ด๋–ป๊ฒŒ ์ƒ์„ฑ๋˜์–ด ์†Œ๋ฉธ๋˜๊ธฐ ์ „๊นŒ์ง€ ์–ด๋–ค ์ž‘..

๐ŸSpring/Basic 2022. 6. 23. 02:23
Spring Framework, Spring Boot

Spring ? • ์ž๋ฐ” ์–ธ์–ด ๊ธฐ๋ฐ˜( ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด )์˜ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์˜ ์ „ ๊ณผ์ •์„ ๋น ๋ฅด๊ณ  ํŽธ๋ฆฌํ•˜๋ฉฐ ํšจ์œจ์ ์œผ๋กœ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค. • ์ดˆ๊ธฐ์— ๊ธฐ๋ณธ ์„ค์ •๊ณผ ๊ธฐ์ˆ ์„ ์ž˜ ์„ค์ •ํ•˜๋ฉด ์Šคํ”„๋ง๊ณผ ๊ด€๋ จ๋œ ์ฝ”๋“œ๋‚˜ API์— ๋Œ€ํ•ด ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฑฐ์˜ ์‹ ๊ฒฝ ์“ธ ์ผ์ด ์—†๋‹ค. • ์ด๋Š” Spring Boot, Spring Framework์— ๋Œ€ํ•ด ์•Œ์•„๋ณธ๋‹ค๋ฉด Spring์ด ์–ผ๋งˆ๋‚˜ ํŽธ๋ฆฌํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ด์ฃผ๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ๋‹ค. • spring framework, spring boot๋ฅผ ๋ชจ๋‘ ํฌํ•จํ•œ ์Šคํ”„๋ง ์ƒํƒœ๊ณ„ • ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด๊ฐ€ ๊ฐ€์ง„ ํŠน์ง•์„ ์‚ด๋ ค๋‚ด ์ข‹์€ ๊ฐ์ฒด์ง€ํ–ฅ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค. • Spring์˜ ํ•ต์‹ฌ ํŠน์ง•์ธ ์ œ์–ด์˜ ์—ญ์ „(Ioc), ์˜์กด๊ด€๊ณ„ ์ฃผ์ž…(DI)์„ ์ด์šฉํ•ด ๋‹คํ˜•์„ฑ์„ ์ž˜ ์ง€ํ‚ค๋ฉฐ..

๐ŸSpring/Basic 2022. 6. 18. 10:24
Spring Bean, Spring Container

์Šคํ”„๋ง ๋นˆ(Spring Bean) ์ด๋ž€? ๋นˆ ( Bean ) Spring Ioc ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” ์ž๋ฐ” ๊ฐ์ฒด. ์ฆ‰, ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ์— ์˜ํ•ด์„œ ์ž๋ฐ” ๊ฐ์ฒด๊ฐ€ ๋งŒ๋“ค์–ด ์ง€๊ฒŒ ๋˜๋ฉด ์ด ๊ฐ์ฒด๋ฅผ ์Šคํ”„๋ง์€ ์Šคํ”„๋ง ๋นˆ์ด๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ œ์–ด์˜ ์—ญ์ „ Ioc ๊ธฐ์กด์˜ Java ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  new๋กœ ์›ํ•˜๋Š” ๊ฐ์ฒด๋ฅผ ์ง์ ‘ ์ƒ์„ฑํ•˜์—ฌ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ Spring์—์„œ๋Š” new๋ฅผ ์ด์šฉํ•˜์—ฌ ์ƒ์„ฑํ•œ ๊ฐ์ฒด๊ฐ€ ์•„๋‹Œ, Spring์— ์˜ํ•ด ๊ด€๋ฆฌ๋˜์–ด์ง€๋Š” ์ž๋ฐ” ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, Spring์— ์˜ํ•ด ์ƒ์„ฑ๋˜๊ณ  ๊ด€๋ฆฌ๋˜๋Š” ์ž๋ฐ” ๊ฐ์ฒด๋ฅผ Bean์ด๋ผ ํ•ฉ๋‹ˆ๋‹ค. Spring Bean, Ioc Container์— ๋“ฑ๋กํ•˜๋Š” ๋ฐฉ๋ฒ• 1. Annotation ์ด์šฉ • @Component ์• ๋…ธํ…Œ์ด์…˜์ด ์žˆ๋‹ค๋ฉด ์Šคํ”„๋ง ๋นˆ์œผ๋กœ ์ž๋™ ๋“ฑ๋ก ๋ฉ..

๐ŸSpring/Basic 2022. 6. 17. 12:51
MVC, Spring MVC

MVC๋ž€? MVC ํŒจํ„ด์€ ์•„ํ‚คํ…์ณ๋ฅผ ์„ค๊ณ„ํ•˜๊ธฐ ์œ„ํ•œ ๋””์ž์ธ ํŒจํ„ด์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ ์‹œ ๊ตฌ์„ฑ์š”์†Œ๋ฅผ 3๊ฐ€์ง€๋กœ ๋‚˜๋ˆ•๋‹ˆ๋‹ค. ์ด๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง๊ณผ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌ๋ถ„์‹œ์ผœ ์„œ๋กœ ์˜ํ–ฅ์—†์ด ๊ฐœ๋ฐœ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. • M ( Model ) "๋ฌด์—‡์„" - ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ - ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ํ˜ธ์ถœํ•  ๋•Œ, ์š”์ฒญ์— ๋งž๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. - ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๊ตฌํ˜„ํ•˜๋Š” ์˜์—ญ์œผ๋กœ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. • V ( View ) - ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค(UI) ์ปดํฌ๋„ŒํŠธ - Controller๋กœ ๋ถ€ํ„ฐ ๋ฐ›์€ ๋ชจ๋ธ์˜ ๊ฒฐ๊ณผ๊ฐ’์„ ๊ฐ–๊ณ  ์ถœ๋ ฅํ•  ํ™”๋ฉด์„ ๋งŒ๋“œ๋Š” ์ผ์„ ํ•ฉ๋‹ˆ๋‹ค. - ์ƒ์„ฑ๋œ ํ™”๋ฉด์„ ์›น ๋ธŒ๋ผ์šฐ์ €์— ์ „์†กํ•˜๊ณ  ์ถœ๋ ฅํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค. - ์‚ฌ์šฉ์ž์™€ ์ƒํ˜ธ์ž‘์šฉ(๋ฐ์ดํ„ฐํ‘œ์‹œ, ์ž…๋ ฅ ํผ ๋“ฑ)์„ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ..

๐ŸSpring/Basic 2022. 6. 16. 12:49
์–ด๋…ธํ…Œ์ด์…˜ ์ •๋ฆฌ @

์–ด๋…ธํ…Œ์ด์…˜์ด๋ž€? • @ ์‚ฌ์ธ ํ•˜๋‚˜๋กœ ๋งŽ์€ ์ปจํ…์ŠคํŠธ๋“ค์„ ์ œ๊ณต ๋ฐ›์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค. • @ ์‚ฌ์ธ์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์„ ์–ด๋…ธํ…Œ์ด์…˜ ์ด๋ผ๊ณ  ํ•œ๋‹ค. Spring์œผ๋กœ ๊ฐœ๋ฐœํ•  ๋•Œ ์–ด๋…ธํ…Œ์ด์…˜ ์—†์ด ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒƒ์€ ๊ฑฐ์˜ ๋ณผ ์ˆ˜ ์—†๋‹ค. Controller ๋“ฑ๋ก์ด๋‚˜ Service, Repository, Test ๋“ฑ ์•ˆ์“ฐ์ด๋Š” ๊ณณ์ด ์—†์„ ์ •๋„๋‹ค. ๋งŽ์ด ์“ฐ์ž„์—๋„ ๊ฐœ๋ฐœํ•˜๋‹ค๊ฐ€ ๊ฐ€๋” ์ƒ๊ฐ์ด ์•ˆ๋‚˜๊ฑฐ๋‚˜ ๊นŒ๋จน์„ ๋•Œ๊ฐ€ ์žˆ๊ธฐ์— ์ง€๊ธˆ์ด๋ผ๋„ ์กฐ๊ธˆ์”ฉ ์ •๋ฆฌํ•  ์ƒ๊ฐ์ด๋‹ค. ํฌ์ŠคํŠธ์ž‡ ์ฒ˜๋Ÿผ ๊ณ„์† ์ถ”๊ฐ€ํ•  ์˜ˆ์ • โœ๏ธ @AfterEach : ๊ฐ ํ…Œ์ŠคํŠธ๊ฐ€ ์ข…๋ฃŒ๋  ๋•Œ๋งˆ๋‹ค ์‹คํ–‰ 1) Test Case๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒฝ์šฐ : ๋ฉ”๋ชจ๋ฆฌ DB์— ๋‚จ์•„์žˆ๋Š” ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•œ๋‹ค. (์ง์ „ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•ด์คŒ) clearStore ๋ฉ”์„œ๋“œ public void clearStore(){ st..

๐ŸSpring/Basic 2022. 6. 14. 18:10
์ œ์–ด์˜ ์—ญ์ „๊ณผ ์˜์กด์„ฑ ์ฃผ์ž… ( Inversion of Control, Dependency Injection )

์ผ๋ฐ˜์ ์ธ ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์—์„œ๋Š” ๊ฐ ๊ฐ์ฒด๋“ค์ด ํ”„๋กœ๊ทธ๋žจ์˜ ํ๋ฆ„์„ ๊ฒฐ์ •ํ•˜๊ณ  ๊ฐ ๊ฐ์ฒด๋ฅผ ์ง์ ‘ ์ƒ์„ฑ ๋ฐ ์กฐ์ž‘ํ•˜๋Š” ์ž‘์—…์„ ํ–ˆ์Šต๋‹ˆ๋‹ค. ( ๊ฐ์ฒด๋ฅผ ์ง์ ‘ ์ƒ์„ฑํ•˜์—ฌ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ ) ์ฆ‰, ๋ชจ๋“  ์ž‘์—…์„ ์‚ฌ์šฉ์ž๊ฐ€ ์ œ์–ดํ•˜๋Š” ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ œ์–ด์˜ ์—ญ์ „์ด ์ ์šฉ๋œ ๊ฒฝ์šฐ, ๊ฐ์ฒด์˜ ์ƒ์„ฑ์„ ํŠน๋ณ„ํ•œ ๊ด€๋ฆฌ ์œ„์ž„ ์ฃผ์ฒด์—๊ฒŒ ๋งก๊น๋‹ˆ๋‹ค. 1. ์ œ์–ด์˜ ์—ญ์ „ ( Ioc, Inversion of Control ) : ์ œ์–ด์˜ ์—ญ์ „์ด๋ž€, ๋ง ๊ทธ๋Œ€๋กœ '์—ญ์œผ๋กœ ์ œ์–ดํ•˜๋Š” ๊ฒƒ'์ด๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๋ˆ„๊ฐ€ ์–ด๋–ค ๊ฒƒ์„ ์ œ์–ดํ•˜๋Š”์ง€ ์•Œ์•„๋ด…์‹œ๋‹ค. ๊ธฐ์กด = ๊ตฌํ˜„ ๊ฐ์ฒด ์Šค์Šค๋กœ, ๊ฐœ๋ฐœ์ž๊ฐ€ ์—ญ์ „๋œ ์ฃผ์ฒด = ์™ธ๋ถ€ ์กฐ๋ฆฝ๊ธฐ (assembler) + Spring FrameWork์—์„œ๋Š” Ioc Container ๋ฌด์—‡์„ ์ œ์–ด = ๊ตฌํ˜„ ๊ฐ์ฒด์˜ ์ƒ์„ฑ ๋ฐ ์—ฐ๊ฒฐ, ์ƒ๋ช…์ฃผ๊ธฐ ๊ด€๋ฆฌ, ์ œ์–ด ํ๋ฆ„์— ๋Œ€ํ•œ ๊ถŒํ•œ..

๐ŸSpring/Basic 2022. 1. 26. 05:59