Controller / Service / Dao 의 lifecycle 에 κ΄€ν•œ 질문

801 views
Skip to first unread message

μ΄ν˜Έν›ˆ

unread,
Sep 24, 2009, 2:50:26β€―AM9/24/09
to ks...@googlegroups.com
μ•ˆλ…•ν•˜μ„Έμš”.

μ˜ˆμ „λΆ€ν„° 의문이 λ“€μ—ˆλ˜ 것 쀑에 Controller / Service / Dao 의 lifecycle 에 κ΄€ν•œ 것을 μ—¬μ­€λ³΄κ³ μž ν•©λ‹ˆλ‹€.

μ œκ°€ 정리가 μ•ˆλœ μƒνƒœμ—μ„œ μ—¬μ­€λ³΄λ €λ‹ˆ 많이 ν—·κ°ˆλ¦¬λ„€μš” ^^;;

일반적으둜 ControllerλŠ” url ν˜ΈμΆœμ‹œμ— 생성이 되고 응닡 후에 μ†Œλ©Έμ΄ λ˜λŠ” κ²ƒμœΌλ‘œ μ•Œκ³  있고,

Service / Dao λŠ” Singleton 이라고 μ•Œκ³  μžˆμŠ΅λ‹ˆλ‹€. 이게 λ§žλŠ”κ°€μš”??

κ·Έ λ‹€μŒμœΌλ‘œ ν™˜κ²½μ„€μ •(.xml)에 컨트둀러 λ“±λ‘μ‹œ 기본적으둜 isSingleton=false μ…‹νŒ…μ•ˆν•˜κ²Œ 되면 μ‹±κΈ€ν†€μœΌλ‘œ μƒμ„±λœλ‹€κ³  ν•˜λŠ”λ° 이것도 λ§žλŠ”μ§€ 영????

그리고 μ–΄λ…Έν…Œμ΄μ…˜μ„ μ΄μš©ν•˜μ—¬ 컨트둀러/μ„œλΉ„μŠ€/dao등을 μƒμ„±ν•˜κ²Œ 될 λ•Œλ„ μ‹±κΈ€ν†€μœΌλ‘œ 생성이 λ˜λŠ” 것인지..

μ‹±κΈ€ν†€μœΌλ‘œ 생성이 되면 멀버 λ³€μˆ˜ 곡유 λ¬Έμ œλΌλ˜μ§€ μ—¬λŸ¬κ°€μ§€ λ¬Έμ œκ°€ λ°œμƒλ˜μ§€ μ•Šλ‚˜μš”??

μ»¨νŠΈλ‘€λŸ¬μ—μ„œ Service ν˜ΈμΆœν•˜κ³  Serviceμ—μ„œ dao ν˜ΈμΆœν•˜κ²Œ λ˜λŠ”λ° 각각이 λ…λ¦½λœ λ©”λͺ¨λ¦¬μ˜μ—­μ— μ˜¬λΌκ°€λŠ”κ²Œ μ•„λ‹ˆλΌ Service와 Dao만 싱글톀 객체둜 있게 λœλ‹€λ©΄ κ·Έ μ•ˆμ— κ΅¬ν˜„λœ

μ½”λ“œ 쀑에 λ©€λ²„λ³€μˆ˜ 곡유 λ¬Έμ œκ°€ 생길 것 κ°™λ‹€λŠ” 생각이 λ“€μ–΄μ„œμš”..

μ •λ¦¬μ•ˆλ˜κ³  μžˆλŠ” μ €μ˜ 머리속에 이둠듀을 정리 μ’€ λΆ€νƒλ“œλ¦¬κ² μŠ΅λ‹ˆλ‹€^^;;


λ°•μ„±μ² 

unread,
Sep 24, 2009, 4:24:58β€―AM9/24/09
to Korea Spring User Group
> μ•ˆλ…•ν•˜μ„Έμš”.

μ•ˆλ…•ν•˜μ„Έμš”. ^^

> 일반적으둜 ControllerλŠ” url ν˜ΈμΆœμ‹œμ— 생성이 되고 응닡 후에 μ†Œλ©Έμ΄ λ˜λŠ” κ²ƒμœΌλ‘œ μ•Œκ³  있고,
> Service / Dao λŠ” Singleton 이라고 μ•Œκ³  μžˆμŠ΅λ‹ˆλ‹€. 이게 λ§žλŠ”κ°€μš”??

μ˜ˆμ™ΈλŠ” μžˆμ§€λ§Œ spring mvc의 μ»¨νŠΈλ‘€λŠ” 싱글톀이고 serviceλž‘ dao도 보톡 μ‹±κΈ€ν†€μœΌλ‘œ μ”λ‹ˆλ‹€.

> κ·Έ λ‹€μŒμœΌλ‘œ ν™˜κ²½μ„€μ •(.xml)에 컨트둀러 λ“±λ‘μ‹œ 기본적으둜 isSingleton=false μ…‹νŒ…μ•ˆν•˜κ²Œ 되면 μ‹±κΈ€ν†€μœΌλ‘œ μƒμ„±λœλ‹€κ³  ν•˜λŠ”λ°
> 이것도 λ§žλŠ”μ§€ 영????

μ˜ˆμ „μ—λŠ” XMLμ—μ„œ <bean ...> tag μ‚¬μš©ν•΄ μ„€μ •ν•  λ•Œμ— singleton 속성을 μ¨μ„œ 싱글톀 μ—¬λΆ€λ₯Ό μ§€μ •ν–ˆμŠ΅λ‹ˆλ‹€.

singleton="true"

μš”μ¦˜μ€ scopeλΌλŠ” 속성을 μ“°κ³ μš”.

scope="singleton"

ν•˜μ§€λ§Œ 빈 λ“±λ‘μ‹œ scope 지정을 ν•˜μ§€ μ•ŠμœΌλ©΄ μ‹±κΈ€ν†€μœΌλ‘œ λ§Œλ“€μ–΄μ§€λ‹ˆκΉŒ μƒλž΅ν•΄λ„ λ©λ‹ˆλ‹€.

> 그리고 μ–΄λ…Έν…Œμ΄μ…˜μ„ μ΄μš©ν•˜μ—¬ 컨트둀러/μ„œλΉ„μŠ€/dao등을 μƒμ„±ν•˜κ²Œ 될 λ•Œλ„ μ‹±κΈ€ν†€μœΌλ‘œ 생성이 λ˜λŠ” 것인지..

기본은 μ‹±κΈ€ν†€μž…λ‹ˆλ‹€. @Scopeλ₯Ό μ¨μ„œ λ‹€λ₯Έ κ²ƒμœΌλ‘œ λ°”κΎΈμ§€ μ•ŠλŠ”λ‹€λ©΄...

> μ‹±κΈ€ν†€μœΌλ‘œ 생성이 되면 멀버 λ³€μˆ˜ 곡유 λ¬Έμ œλΌλ˜μ§€ μ—¬λŸ¬κ°€μ§€ λ¬Έμ œκ°€ λ°œμƒλ˜μ§€ μ•Šλ‚˜μš”??

예. κ·Έλž˜μ„œ 싱글톀인 λΉˆμ€ μ›μΉ™μ μœΌλ‘œ μƒνƒœ(μž‘λ™ν•˜λŠ” 쀑 값이 λ°”λ€ŒλŠ” 멀버 λ³€μˆ˜)λ₯Ό κ°€μ§€μ§€ μ•ŠλŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

> μ»¨νŠΈλ‘€λŸ¬μ—μ„œ Service ν˜ΈμΆœν•˜κ³  Serviceμ—μ„œ dao ν˜ΈμΆœν•˜κ²Œ λ˜λŠ”λ° 각각이 λ…λ¦½λœ λ©”λͺ¨λ¦¬μ˜μ—­μ— μ˜¬λΌκ°€λŠ”κ²Œ μ•„λ‹ˆλΌ Service와
> Dao만 싱글톀 객체둜 있게 λœλ‹€λ©΄ κ·Έ μ•ˆμ— κ΅¬ν˜„λœ
> μ½”λ“œ 쀑에 λ©€λ²„λ³€μˆ˜ 곡유 λ¬Έμ œκ°€ 생길 것 κ°™λ‹€λŠ” 생각이 λ“€μ–΄μ„œμš”..

λ™μ‹œμ„±μ€ 늘 신경써야겠죠. μœ„μ—μ„œ 처럼 μƒνƒœλ₯Ό κ°€μ§€μ§€ μ•ŠλŠ” 것이 κ°€μž₯ μ’‹κ³  μƒνƒœλ₯Ό κ°–κ³  μžˆμ–΄μ•Ό ν•œλ‹€λ©΄ λ™μ‹œμ„±μ— 신경을 μ¨μ€˜μ•Ό ν•©
λ‹ˆλ‹€.

λ™μ‹œμ„± λ•Œλ¬Έμ— 싱글톀 λŒ€μ‹  ν”„λ‘œν† νƒ€μž… 같은 μŠ€μ½”ν”„λ₯Ό 써야 ν•œλ‹€λ©΄ κ·Έλƒ₯ μ‹±κΈ€ν†€μœΌλ‘œ μ“°λ˜ μƒνƒœλ₯Ό λ©”μ„Έμ§€λ₯Ό λ³΄λ‚΄λŠ” μͺ½μ—μ„œ 객체둜 λ§Œλ“€
μ–΄ νŒŒλΌλ©”ν„°λ‘œ 보내고 μ„œλΉ„μŠ€λ‚˜ DAOμ—μ„œλŠ” 이 객체에 μƒνƒœλ₯Ό μ €μž₯ν•˜λŠ” 방식을 μ“°λŠ” 것도 μ’‹μŠ΅λ‹ˆλ‹€.

μ„œλΉ„μŠ€λ‚˜ DAO에 μ–΄λ–€ μƒνƒœλ₯Ό κ°€μ§€κ³  μžˆλŠ”μ§€ 예λ₯Ό λ³΄μ—¬μ£Όμ‹œλ©΄ 해법을 더 μ •ν™•νžˆ λ§μ”€λ“œλ¦΄ 수 μžˆμ„ 것 κ°™μŠ΅λ‹ˆλ‹€.

κΉ€μ„±μœ€

unread,
Sep 24, 2009, 5:14:26β€―AM9/24/09
to ks...@googlegroups.com
싱글톀 이야기가 λ‚˜μ™€μ„œ κ·ΈλŸ°λ°μš”..

μŠ€ν”„λ§μ˜ scope 의 싱글톀이 일반적으둜 μƒκ°ν•˜λŠ” 싱글톀 νŒ¨ν„΄μœΌλ‘œ μƒμ„±λœ κ±°λž‘ λ‹€λ₯΄λ‹€κ³  ν•˜λ˜λ°.. ?

λ§žλ‚˜μš” ?

2009λ…„ 9μ›” 24μΌμ˜€ν›„ 5:24, λ°•μ„±μ²  <gyu...@gmail.com>λ‹˜μ˜ 말:

μœ€ν¬ν•œ(μ„±μ² )

unread,
Sep 24, 2009, 5:24:02β€―AM9/24/09
to ks...@googlegroups.com
일반적인 싱글톀은 ν•œλ²ˆ μƒμ„±λ˜λ©΄ JVM λ‹¨μ—μ„œ 단 ν•˜λ‚˜μ˜ μΈμŠ€ν„΄μŠ€λ§Œ μƒμ„±λ˜λŠ”κ²ƒμ΄κ³ 

μŠ€ν”„λ§μ€ μ΅œμ΄ˆμ— ν”„λ ˆμž„μ› λ‘œλ”©μ‹œμ—Β  μƒμ„±ν•œ bean 듀이 μŠ€ν”„λ§μ—μ„œ κ΄€λ¦¬ν•˜λŠ” bean 풀같은곳에 μ €μž₯λ˜μ–΄

getBeanν•΄μ„œ κ°€μ Έμ˜¬λ•Œ ν•΄λ‹Ή ν’€μ—μ„œ κ°€μ Έμ˜€λŠ”κ²ƒμœΌλ‘œ μ•Œκ³ μžˆμŠ΅λ‹ˆλ‹€.

κ·Έλž˜μ„œ xml 에닀가 λ™μΌν•œ νƒ€μž…μ˜ μ΄λ¦„λ§Œ λ‹€λ₯Έ μ—¬λŸ¬κ°œμ˜ λΉˆμ„ λ“±λ‘ν•˜λ©΄ μŠ€ν”„λ§μ—μ„œλŠ” κ°™μ€νƒ€μž…μ˜ μ„œλ‘œλ‹€λ₯Έ 빈이 μƒμ„±λ˜κ³ 

일반적인 싱글톀은 무쑰건 ν•˜λ‚˜κ°€ λ˜λŠ”κ²ƒμœΌλ‘œ μ•Œκ³ μžˆμŠ΅λ‹ˆλ‹€.



2009λ…„ 9μ›” 24μΌμ˜€ν›„ 6:14, κΉ€μ„±μœ€ <helol...@gmail.com>λ‹˜μ˜ 말:

λ°±κΈ°μ„ 

unread,
Sep 24, 2009, 5:24:21β€―AM9/24/09
to ks...@googlegroups.com
@μ„±μœ€ κ·ΈλŸ¬λ‹ˆκΉŒ 4μž₯을 μ½μœΌλΌλ‹ˆκΉ;; p139 Avoid Proliferation of Singletones by Using Application Resistry


2009λ…„ 9μ›” 24μΌμ˜€ν›„ 6:14, κΉ€μ„±μœ€ <helol...@gmail.com>λ‹˜μ˜ 말:
싱글톀 이야기가 λ‚˜μ™€μ„œ κ·ΈλŸ°λ°μš”..



--
쒋은 ν•˜λ£¨ λ˜μ„Έμš”~

μœ€ν¬ν•œ(μ„±μ² )

unread,
Sep 24, 2009, 5:24:46β€―AM9/24/09
to ks...@googlegroups.com
말이 또 κΌ¬μ˜€λ„€μš” γ…œ.γ…œ μ—νš¨. μ•Œκ³ μžˆλŠ”κ²ƒλ„ 전달을 λͺ»ν•˜λ„€μš” γ…œ.γ…œ

2009λ…„ 9μ›” 24μΌμ˜€ν›„ 6:24, μœ€ν¬ν•œ <ryys...@gmail.com>λ‹˜μ˜ 말:

μ„±μœ€

unread,
Sep 24, 2009, 7:11:11β€―AM9/24/09
to Korea Spring User Group
그럼 Resistryμ—μ„œ λ½‘μ•„μ£ΌλŠ” 방식인 μŠ€ν”„λ§μ˜ singletone 방식이
singletone νŒ¨ν„΄μœΌλ‘œ μƒμ„±ν•˜λŠ” 객체 보닀 쒋은 μž₯점이 λ¨Έκ°€ μžˆμœΌλ €λ‚˜μš”? ;;

@κΈ°μ„ ν˜• μ†λ°œμ΄ 잘 μ•ˆλ§žκ΅°μš”.. γ„·γ„·γ„·

On 9μ›”24일, μ˜€ν›„6μ‹œ24λΆ„, μœ€ν¬ν•œ(μ„±μ² ) <ryys1...@gmail.com> wrote:
> 말이 또 κΌ¬μ˜€λ„€μš” γ…œ.γ…œ μ—νš¨. μ•Œκ³ μžˆλŠ”κ²ƒλ„ 전달을 λͺ»ν•˜λ„€μš” γ…œ.γ…œ
>

> 2009λ…„ 9μ›” 24μΌμ˜€ν›„ 6:24, μœ€ν¬ν•œ <ryys1...@gmail.com>λ‹˜μ˜ 말:


>
> > 일반적인 싱글톀은 ν•œλ²ˆ μƒμ„±λ˜λ©΄ JVM λ‹¨μ—μ„œ 단 ν•˜λ‚˜μ˜ μΈμŠ€ν„΄μŠ€λ§Œ μƒμ„±λ˜λŠ”κ²ƒμ΄κ³ 
>
> > μŠ€ν”„λ§μ€ μ΅œμ΄ˆμ— ν”„λ ˆμž„μ› λ‘œλ”©μ‹œμ— μƒμ„±ν•œ bean 듀이 μŠ€ν”„λ§μ—μ„œ κ΄€λ¦¬ν•˜λŠ” bean 풀같은곳에 μ €μž₯λ˜μ–΄
>
> > getBeanν•΄μ„œ κ°€μ Έμ˜¬λ•Œ ν•΄λ‹Ή ν’€μ—μ„œ κ°€μ Έμ˜€λŠ”κ²ƒμœΌλ‘œ μ•Œκ³ μžˆμŠ΅λ‹ˆλ‹€.
>
> > κ·Έλž˜μ„œ xml 에닀가 λ™μΌν•œ νƒ€μž…μ˜ μ΄λ¦„λ§Œ λ‹€λ₯Έ μ—¬λŸ¬κ°œμ˜ λΉˆμ„ λ“±λ‘ν•˜λ©΄ μŠ€ν”„λ§μ—μ„œλŠ” κ°™μ€νƒ€μž…μ˜ μ„œλ‘œλ‹€λ₯Έ 빈이 μƒμ„±λ˜κ³ 
>
> > 일반적인 싱글톀은 무쑰건 ν•˜λ‚˜κ°€ λ˜λŠ”κ²ƒμœΌλ‘œ μ•Œκ³ μžˆμŠ΅λ‹ˆλ‹€.
>

> > 2009λ…„ 9μ›” 24μΌμ˜€ν›„ 6:14, κΉ€μ„±μœ€ <helolsj...@gmail.com>λ‹˜μ˜ 말:

λ°•μš©κΆŒ

unread,
Sep 24, 2009, 7:53:54β€―AM9/24/09
to ks...@googlegroups.com
싱글톀 νŒ¨ν„΄μ˜ λ‚˜μœμ μ— λŒ€ν•΄μ„œλŠ” Misko hevery의 Global State and Singletons 에 잘 λ‚˜μ™€μžˆλ‹€λŠ”λ°... μ•„λ¬΄λž˜λ„ μ˜μ–΄λΌ 크흑...γ…‘γ…œ;;

싱글톀 νŒ¨ν„΄μ€ μ „ν˜•μ μΈ μ „μ—­μƒνƒœλ₯Ό μ‘°μž₯ν•˜κ³  μ„€κ³„μƒμ˜ 문제λ₯Ό μ°ΎκΈ° νž˜λ“€κ²Œν•˜λ©° 무엇보닀 ν…ŒμŠ€νŠΈλ₯Ό μ–΄λ ΅κ²Œν•œλ‹€λ„€μš”.

μŠ€νƒœν‹± λ©”μ†Œλ“œλ‘œ 이루어진 싱글톀 νŒ¨ν„΄μ€ 상속도 μ•ˆλ˜κ³ , λ‹€ν˜•μ„±λ„ 적용 λΆˆκ°€ν•˜κ³ , mocking ν•˜κΈ°κ³  μ–΄λ ΅λ‹€λ‹ˆ.. ν”Όν•˜λŠ”κ²Œ μ’‹κ² μ§€μš” @_@a

κ·Έλž˜μ„œ 싱글톀 νŒ¨ν„΄μ˜ 단점은 λ©”μš°κ³  μž₯점을 μ‚΄λ¦¬κ³ μž λ‚˜μ˜¨ λŒ€μ•ˆμ΄ μŠ€ν”„λ§μ˜ 싱글톀 λ ˆμ§€μŠ€νŠΈλ¦¬ μ»¨ν…Œμ΄λ„ˆκ°€ 아닐깝쇼~!

public μƒμ„±μžμ˜ ν‰λ²”ν•œ POJOλ₯Ό λ§Œλ“€μ–΄μ„œ μ‚¬μš©ν•˜λ˜ μ»¨ν…Œμ΄λ„ˆλ₯Ό ν†΅ν•΄μ„œ μ‹±κΈ€ν†€μœΌλ‘œ κ΄€λ¦¬λ˜λ„λ‘ λ§Œλ“€λ©΄ λœλ‹€λŠ”κ±°...!

κ·Έλ‚˜μ €λ‚˜... μ—¬κΈ΄ KSUG 인데 우째 글은 λ΄„μ‹Ή 그룹슀 메일을 λ³΄λŠ”κ±° κ°™λ„€μš”... λŒ€λž΅ μ±„νŒ…λͺ¨λ“œ?

2009λ…„ 9μ›” 24μΌμ˜€ν›„ 8:11, μ„±μœ€ <helol...@gmail.com>λ‹˜μ˜ 말:

λ°±κΈ°μ„ 

unread,
Sep 24, 2009, 10:23:36β€―AM9/24/09
to ks...@googlegroups.com
싱글톀 μŠ€μ½”ν”„ 말고 일반적인 싱글톀 클래슀 κ΅¬ν˜„μ²΄λŠ” μΈν„°νŽ˜μ΄μŠ€ 기반 ν”„λ‘œκ·Έλž˜λ°μ„ ν•˜λΌλŠ” 객체지ν–₯원칙을 κΉ¨νŠΈλ¦¬λ‹ˆκΉŒ..

그게 μ’€ 많이 λ³„λ‘œ 인듯.

2009λ…„ 9μ›” 24μΌμ˜€ν›„ 8:53, λ°•μš©κΆŒ <arawn.kr@gmail.com>λ‹˜μ˜ 말:



--
쒋은 ν•˜λ£¨ λ˜μ„Έμš”~

Toby Lee

unread,
Sep 24, 2009, 4:14:50β€―PM9/24/09
to ks...@googlegroups.com
싱글톀 μŠ€μ½”ν”„ 말고 일반적인 싱글톀 클래슀 κ΅¬ν˜„μ²΄λŠ” μΈν„°νŽ˜μ΄μŠ€ 기반 ν”„λ‘œκ·Έλž˜λ°μ„ ν•˜λΌλŠ” 객체지ν–₯원칙을 κΉ¨νŠΈλ¦¬λ‹ˆκΉŒ..

싱글톀도 μΈν„°νŽ˜μ΄μŠ€λ₯Ό κ΅¬ν˜„ν•˜κ²Œ ν•  수 μžˆμ§€.
μƒμ„±μ΄λ‚˜ 접근방식이 κ·Έλ ‡λ‹€λŠ” κ±°μ§€ μΈν„°νŽ˜μ΄μŠ€ 기반 ν”„λ‘œκ·Έλž˜λ°μ„ λͺ»ν•˜κ²Œ ν•˜μ§€λŠ” μ•ŠλŠ”λ°.Β 

2009/9/24 λ°±κΈ°μ„  <whites...@gmail.com>
싱글톀 μŠ€μ½”ν”„ 말고 일반적인 싱글톀 클래슀 κ΅¬ν˜„μ²΄λŠ” μΈν„°νŽ˜μ΄μŠ€ 기반 ν”„λ‘œκ·Έλž˜λ°μ„ ν•˜λΌλŠ” 객체지ν–₯원칙을 κΉ¨νŠΈλ¦¬λ‹ˆκΉŒ..

그게 μ’€ 많이 λ³„λ‘œ 인듯.

Reply all
Reply to author
Forward
0 new messages