๐Ÿ“–
Mini's Today I Learned
  • Today I Learned
  • ๐Ÿ’ปComputer Science
    • ๐ŸงฑComputer Science
      • Computer Architecture
    • ๐Ÿฆ•OperatingSystem
      • System Structure
      • 01. ์šด์˜์ฒด์ œ ์—ญํ• 
      • 02. History๋กœ ์ดํ•ดํ•˜๋Š” ์šด์˜์ฒด์ œ
      • 03. ์šด์˜์ฒด์ œ ๊ตฌ์กฐ
      • 04. ํ”„๋กœ์„ธ์Šค ์Šค์ผ€์ฅด๋ง
      • 05. ์Šค์ผ€์ฅด๋ง ์•Œ๊ณ ๋ฆฌ์ฆ˜
      • 06. ํ”„๋กœ์„ธ์Šค ์ƒํƒœ์™€ ์Šค์ผ€์ฅด๋Ÿฌ
      • 07. ์ธํ„ฐ๋ŸฝํŠธ
      • 08. ํ”„๋กœ์„ธ์Šค์™€ ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ
      • 09. ํ”„๋กœ์„ธ์Šค๊ฐ„ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜(IPC ๊ธฐ๋ฒ•)
      • 10. Thread(์Šค๋ ˆ๋“œ)
      • 11. ๊ฐ€์ƒ๋ฉ”๋ชจ๋ฆฌ (Virtual Memory System)
      • 12. ํŒŒ์ผ์‹œ์Šคํ…œ ์ดํ•ด
      • 13. ๋ถ€ํŒ…์˜ ์ดํ•ด
      • 14. ๊ฐ€์ƒ๋จธ์‹ (Virtual Machine)
  • ๐Ÿ“ˆDatabase
    • MySQL CLI (Frequently used)
    • 1-Tier, 2Tier, 3Tier
    • Basic SQL
    • Built in function
    • Sub Query
    • View
    • Stored Program
    • index
    • Normalization(์ •๊ทœํ™”)
    • Transaction
    • Transaction
  • ๐ŸŒ Network
    • ๐Ÿ”Œ TCP&IP Basic
      • 01 TCP/IP ๋ง›๋ณด๊ธฐ
      • 02 TCP/IP ๊ฐœ์š”
      • 03 ํ†ต์‹  ์„œ๋น„์Šค์™€ ํ”„๋กœํ† ์ฝœ
      • 04 ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต
      • 05 ํŠธ๋ Œ์ŠคํฌํŠธ ๊ณ„์ธต
      • 06 ๋„คํŠธ์›Œํฌ๊ณ„์ธต
      • 07 ๋ฐ์ดํ„ฐ ๊ณ„์ธต๊ณผ ๋ฌผ๋ฆฌ๊ณ„์ธต
      • 08 ๋ผ์šฐํŒ…
      • 09 ๋ณด์•ˆ
      • 10 HTTP ํ”„๋กœํ† ์ฝœ
    • ๐Ÿฟ๏ธHTTP ์™„๋ฒฝ ๊ฐ€์ด๋“œ ์š”์•ฝ
      • 1. HTTP: ์›น์˜ ๊ธฐ์ดˆ
      • 2. URL ๊ณผ ๋ฆฌ์†Œ์Šค
      • 3. HTTP Message
      • 4. Connection Management
      • 5. Overview of web server architectures
      • 6. Proxies
      • 7.Caching
      • 8. Integration Points: Gateways, Tunnels, and Relays
      • 9. Web Robots
      • 10. HTTP/2.0
      • 11. Client Identification and Cookies
      • 12. Basic Authentication
      • 13. Digest Authentication
      • 14. Secure HTTP
      • 15. Entities and Encodings
      • 16. Internationalization
      • 17. Content Negotiation and Transcoding
      • 18. Web Hosting
  • ๐ŸดLanguage
    • โ˜•JAVA
      • Comparable vs Comparator
  • ๐Ÿ› ๏ธ Framework
  • ๐ŸงฉDesign Pattern
    • ๊ฐ์ฒด ์ง€ํ–ฅ ์„ค๊ณ„ ์›์น™ (SOLID)
    • Design Pattern ๊ฐœ์š”
    • Template method
    • Singleton
  • ๐ŸฅFrontEnd
    • HTML&CSS
      • 01 Intro
      • 02 HTML Basic
      • 03 Content Section
      • 04 Block and Inline Elements
      • 05 Text Contents
      • 06 Inline Elements
      • 07 Multi Media
      • 08 Table&Form&etc
      • 09 Global Attribute & etc
      • 10 css basic
      • 11 css config
      • 12 css unit
      • 13 Box Model
      • 14 Font & Text
      • 15 Float(๋„์›€) & Position
      • 16 Background
      • 17 Transitions & Transforms
      • 18 Animation & Multi Columns(๋‹ค๋‹จ)
      • 19 Flex
      • 20 Grid
    • Sass(SCSS)
    • TypeScript
    • Webpack Introduction
      • ์›นํŒฉ์˜ ๊ธฐ๋ณธ ๊ตฌ์กฐ
      • CommonJS
      • ESM
      • WebpackConfig
        • 1. Handlebars
        • 2. Caching
        • 3. Minification & Mangling
        • 4. Mode(Development mode & Production Mode)
        • 5. ์ด๋ฏธ์ง€ ํŒŒ์ผ ๋ชจ๋“ˆ๋กœ ๋‹ค๋ฃจ์–ด๋ณด๊ธฐ(file-loader)
        • 6. ์ด๋ฏธ์ง€ ํŒŒ์ผ ๋ชจ๋“ˆ๋กœ ๋‹ค๋ฃจ์–ด๋ณด๊ธฐ(url-loader)
        • 7. SASS Loader
        • 8. Post CSS
        • 9. BLOWSERS LIST
        • 10. Stylelint
        • 11. Babel
      • Webpack-Practice
    • ETC
      • GIT
      • MarkDown
Powered by GitBook
On this page

Was this helpful?

  1. Design Pattern

Singleton

  • ์ •์˜

    • ํ•˜๋‚˜์˜ ํด๋ž˜์Šค๊ฐ€ ์˜ค์ง ๋‹จ์ผ ์ธ์Šคํ„ด์Šค๋งŒ ๊ฐ€์ง€๋Š” ๊ฒฝ์šฐ

    • ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋‚ด์—์„œ ์ „์—ญ์ ์œผ๋กœ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

    • ์–ด๋–ค ํด๋ž˜์Šค๊ฐ€ ์ตœ์ดˆ ํ•œ๋ฒˆ๋งŒ ๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹น(static) ํ•˜๊ณ , ๊ทธ ๋ฉ”๋ชจ๋ฆฌ์— ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์–ด ์‚ฌ์šฉํ•˜๋Š” ํŒจํ„ด.

  • ๊ตฌํ˜„ (์•„๋ž˜ ์˜ˆ ๊ฐ™์ด ๋ณด๊ธฐ!)

    • ์ƒ์„ฑ๋œ singleton object๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์ž์‹ ๊ณผ ๊ฐ™์€ ํƒ€์ž…์˜ static field์ •์˜

    • ๋ชจ๋“  ์ดˆ๊ธฐํ™” ์ฝ”๋“œ๋ฅผ ์บก์Аํ™” (private or protected constructor)

    • ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•œ ์—‘์„ธ์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” public static member function (public getter, ex: getInstance() )

      • ์ด ๋ฉ”์†Œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋˜๋Š” ์‹œ์ ์—์„œ ํ•œ๋ฒˆ๋งŒ ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ๋งŒ๋“ค์–ด์ง€๊ฒŒ ํ•œ๋‹ค.

      • ์ƒ์„ฑ๋œ ์˜ค๋ธŒ์ ํŠธ๋Š” static field์— ์ €์žฅ ํ•˜๊ฑฐ๋‚˜, static field์˜ ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด ๋‘˜ ์ˆ˜ ๋„ ์žˆ๋‹ค.

      • instance์— ๋Œ€ํ•œ ์ ‘๊ทผ ์ œ๊ณต.

    • ํ•œ๋ฒˆ singleton object๋ฅผ ๋งŒ๋“ค๊ณ  ๋‚œ ํ›„์—๋Š” ์ ‘๊ทผ์ž ํ•จ์ˆ˜(getter) ๋ฅผ ํ†ตํ•ด ์ด๋ฏธ ๋งŒ๋“ค์–ด์ ธ static field์— ์ €์žฅํ•ด๋‘” ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๋„˜๊ฒจ์ค€๋‹ค.

  • ์˜ˆ

    public class Singleton{
        //static field
        private static Singleton instance;
    
        //private(protected) constructor: class ๋ฐ–์—์„œ๋Š” object ์ƒ์„ฑ X.
        private Singleton(){...}
    
        //static member function (static factory method)
        //synchronized: thread์—์„œ ๋™์‹œ์ ‘๊ทผ์— ๋Œ€ํ•œ ๋ฌธ์ œ ํ•ด๊ฒฐ (์„ฑ๋Šฅ ์ €ํ•˜ ์›์ธ)
        public static synchronized Singleton getInstance(){
            //lazy init
            if(instance == null) instance = new SingleTon(?);
            return instance;
        }
    
    }
  • ๋ฌธ์ œ์ (ํ•œ๊ณ„)

    • ์ „์—ญ ์ƒํƒœ๋ฅผ ๋งŒ๋“ ๋‹ค.

      • static method๋กœ ์‰ฝ๊ฒŒ ์ ‘๊ทผ ๊ฐ€๋Šฅ

      • ์•„๋ฌด ๊ฐ์ฒด๋‚˜ ์ž์œ ๋กญ๊ฒŒ ์ ‘๊ทผํ•˜๊ณ  ์ˆ˜์ •ํ•˜๊ณ  ๊ณต์œ  ๊ฐ€๋Šฅํ•œ ์ „์—ญ์ƒํƒœ

    • private ์ƒ์„ฑ์ž๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์„œ, ์ƒ์† ๋ถˆ๊ฐ€

      • ๊ฐ์ฒด์ง€ํ–ฅ์˜ ์žฅ์ ์ธ ์ƒ์†, ๋‹คํ˜•์„ฑ ์ ์šฉ ๋ถˆ๊ฐ€

    • ํ…Œ์ŠคํŠธ ํ•˜๊ธฐ ์–ด๋ ต๋‹ค.

    • ์„œ๋ฒ„ ํ™˜๊ฒฝ์—์„œ ์‹ฑ๊ธ€ํ†ค์ด ํ•˜๋‚˜๋งŒ ๋งŒ๋“ค์–ด์ง€๋Š” ๊ฒƒ์„ ๋ณด์žฅ ํ•  ์ˆ˜ ์—†๋‹ค.

  • 3๊ฐ€์ง€ ํ•„์ˆ˜ ์ค‘์ด‰ ์š”๊ฑด

    • ๋‹จ์ผ ์ธ์Šคํ„ด์Šค์˜ ์†Œ์œ ๊ถŒ์„ ํ•ฉ๋ฆฌ์ ์œผ๋กœ ํ• ๋‹น ๊ฐ€๋Šฅํ•ด์•ผํ•จ.

    • lazy initialize

    • global access ๋‹ฌ๋ฆฌ ์ œ๊ณต๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ.

  • ์žฅ์ 

    • ํ•œ ๋ฒˆ์˜ ๊ฐ์ฒด ์ƒ์„ฑ์œผ๋กœ ์žฌ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ, ๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„ ๋ฐฉ์ง€.

    • ํ•œ ๋ฒˆ ์ƒ์„ฑํ•œ ๊ฐ์ฒด๋Š” ๋ฌด์กฐ๊ฑด ํ•œ ๋ฒˆ ์ƒ์„ฑ์œผ๋กœ ์ „์—ญ์„ฑ์„ ๋„๋ฉฐ, ๋‹ค๋ฅธ ๊ฐ์ฒด์™€ ๊ณต์œ ๊ฐ€ ๊ฐ€๋Šฅ.

[์ฐธ๊ณ ]

์ฑ… - ํ† ๋น„์˜ ์Šคํ”„๋ง

PreviousTemplate methodNextFrontEnd

Last updated 4 years ago

Was this helpful?

๐Ÿงฉ
https://elfinlas.github.io/2019/09/23/java-singleton/
https://blog.seotory.com/post/2016/03/java-singleton-pattern
https://jeong-pro.tistory.com/86