contructor에 직접 접근 불가하다. 그래서 instance를 가져올 때 static 함수를 사용해야 함.
constructor에서 instance가 있는지 확인하고 있다면 경고를 띄우고 없다면 instance를 만든다.
오직 getInstance()로 instance에 접근할 수 있다.
instance 두 개를 호출하면
두 번째 만들어진 것은 경고를 띄운다.
이제 getInstance() 메서드로 instance에 두 번 접근하면
동일한 instance를 뱉는다.
출처 : 코딩문