1. 싱글톀 νŒ¨ν„΄ μ •μ˜

2. 싱글톀 νŒ¨ν„΄ μ „λ°˜μ μΈ κ°œλ…

3. 싱글톀 νŒ¨ν„΄μ„ μ“°λŠ” 이유

4. 싱글톀 νŒ¨ν„΄μ˜ 문제점

  1. 싱글톀 νŒ¨ν„΄ μ •μ˜

: λ©”λͺ¨λ¦¬ λ‚­λΉ„λ₯Ό λ°©μ§€ν•  수 μžˆλŠ” 싱글톀 νŒ¨ν„΄

: ν•˜λ‚˜μ˜ 객체λ₯Ό 생성해 μ‚¬μš©ν•˜λŠ” λ””μžμΈ νŒ¨ν„΄μž„.

  1. 싱글톀 νŒ¨ν„΄ μ „λ°˜μ μΈ κ°œλ…

λ©”λͺ¨λ¦¬ λ‚­λΉ„λ₯Ό λ°©μ§€ν•  수 μžˆλŠ” 싱글톀 νŒ¨ν„΄μ€ 단 ν•˜λ‚˜μ˜ 객체λ₯Ό 생성해 μ‚¬μš©ν•˜λŠ” λ””μžμΈ νŒ¨ν„΄μž…λ‹ˆλ‹€.

μƒμ„±μžκ°€ μ—¬λŸ¬ 차레 ν˜ΈμΆœλ˜λ”λΌλ„ μ‹€μ œ μƒμ„±λ˜λŠ” κ°μ²΄λŠ” ν•˜λ‚˜μ΄κ³ , μ΅œμ΄ˆμ— μƒμ„±ν•œ 객체λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.

  1. 싱글톀 νŒ¨ν„΄μ„ μ“°λŠ” 이유

κ³ μ •λœ λ©”λͺ¨λ¦¬ μ˜μ—­μ„ μ–»μœΌλ©΄μ„œ ν•œλ²ˆμ˜ new둜 μΈμŠ€ν„΄μŠ€λ₯Ό μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έμ— λ©”λͺ¨λ¦¬ λ‚­λΉ„λ₯Ό λ°©μ§€ν•  수 있음

λ˜ν•œ μ‹±κΈ€ν†€μœΌλ‘œ λ§Œλ“€μ–΄μ§„ 클래슀의 μΈμŠ€ν„΄μŠ€λŠ” μ „μ—­ μΈμŠ€ν„΄μŠ€μ΄κΈ° λ•Œλ¬Έμ—

λ‹€λ₯Έ 클래슀의 μΈμŠ€ν„΄μŠ€λ“€μ΄ 데이터λ₯Ό κ³΅μœ ν•˜κΈ° 쉽닀.

DBCP(DataBase Connection Pool)처럼 κ³΅ν†΅λœ 객체λ₯Ό μ—¬λŸ¬κ°œ μƒμ„±ν•΄μ„œ

μ‚¬μš©ν•΄μ•Όν•˜λŠ” μƒν™©μ—μ„œ 많이 μ‚¬μš©.

(μ“°λ ˆλ“œν’€, μΊμ‹œ, λŒ€ν™”μƒμž, μ‚¬μš©μž μ„€μ •, λ ˆμ§€μŠ€νŠΈλ¦¬ μ„€μ •, 둜그 기둝 객체등)

μ•ˆλ“œλ‘œμ΄λ“œ μ•± 같은 경우 각 μ•‘ν‹°λΉ„ν‹°λ‚˜ ν΄λž˜μŠ€λ³„λ‘œ μ£Όμš” ν΄λž˜μŠ€λ“€μ„ 일일이 μ „λ‹¬ν•˜κΈ°κ°€ 번거둭기 λ•Œλ¬Έμ—

싱글톀 클래슀λ₯Ό λ§Œλ“€μ–΄ μ–΄λ””μ„œλ‚˜ μ ‘κ·Όν•˜λ„λ‘ μ„€κ³„ν•˜λŠ” 것이 νŽΈν•˜κΈ° λ•Œλ¬Έ...

  1. 싱글톀 νŒ¨ν„΄μ˜ 문제점

싱글톀 μΈμŠ€ν„΄μŠ€κ°€ λ„ˆλ¬΄ λ§Žμ€ 일을 ν•˜κ±°λ‚˜ λ§Žμ€ 데이터λ₯Ό κ³΅μœ μ‹œν‚¬ 경우 λ‹€λ₯Έ 클래슀의 μΈμŠ€ν„΄μŠ€λ“€ 간에 결합도가 λ†’μ•„μ Έ "개방-폐쇄 원칙" 을 μœ„λ°°ν•˜κ²Œ λœλ‹€. (=객체 μ§€ν–₯ 섀계 원칙에 어긋남)

λ”°λΌμ„œ μˆ˜μ •μ΄ μ–΄λ €μ›Œμ§€κ³  ν…ŒμŠ€νŠΈν•˜κΈ° μ–΄λ €μ›Œμ§„λ‹€.

λ˜ν•œ λ©€ν‹°μ“°λ ˆλ“œν™˜κ²½μ—μ„œ λ™κΈ°ν™”μ²˜λ¦¬λ₯Ό μ•ˆν•˜λ©΄ μΈμŠ€ν„΄μŠ€κ°€ λ‘κ°œκ°€ μƒμ„±λœλ‹€λ“ μ§€ ν•˜λŠ” κ²½μš°κ°€ λ°œμƒν•  수 있음

κ°œλ°œμ„ ν• λ•Œ 항상 λ“€μ–΄μ˜¨ gotoλŠ” μ“°λ©΄ μ•ˆλΌ! μ „μ—­ κ°μ²΄λŠ” μ•ˆ 쒋은거야! λΌλŠ” 말 처럼

κΌ­ ν•„μš”ν•œ κ²½μš°κ°€ μ•„λ‹ˆλ©΄ 지양해야함. // 적절히 잘 μ“°λ©΄ μ•„μ£Ό μ’‹μŒ, (그게 μ–΄λ ΅μ§€)