본문 바로가기

(비정기) Dlbo's Post

Design Pattern & Network, 2. Singleton & Server.

푸후. 디자인패턴과 네트워크 포스팅의 첫삽이군요.

아직 완전히 결합시켜 이해중인게 아니라서 제대로 써 질지 고민됩니다.

------------------------------------------------------------------------------

Singleton 패턴이란 녀석이 디자인패턴에 있습니다.

디자인패턴은 객체지향 언어로 프로그래밍할 경우 잡는 하나의 기본 골격인데요.

Singleton 패턴은 이런 골격중 하나이지요.

Skeleton이랑 비슷하다고 이런건 아닙니다 -_-;

사용자 삽입 이미지

아 깜찍해 -_-

Singleton 패턴은 single이라는 앞단어와 관련있습니다.

"유일한!" 객체라는 겁니다.

왜 Unique가 아니냐고 물어보면 할말 없습니다.

GoF(Gang of Four, 디자인패턴의 창시멤버)형제들에게 물어보세요 그건 -_-;

Singleton패턴은 객체지향에서 여러 객체가 동시에 사용할수 있는 전역변수를

Java같은 언어에선 사용할수 없기 때문에 탄생한 녀석입니다.

동시에 C++이더라도 단순전역변수는 캡슐화가 거의 되지 않는다는 단점도 극복해줄수 있지요.

대충 코드를 보자면 이러합니다. >



제가 싫어하는 자바이긴 하지만 -_-

디자인패턴 구현시에는 자바가 훨씬 편하고 유용한 편입니다.

저렇게 하면 한 프로세스 내에서 단 한개만의 객체만 존재하게 됩니다.

그래서 "유일한!" 객체라는 거지요 -_-;

클래스가 유일하다는게 아닙니다.

멀티스레드 사용시 서로 엉켜서 두개, 세개, 네개씩 객체가 생성되기도 합니다만,

이때는 DCL이라는 새로운 기법의 패턴을 적용합니다.

Double Checking Lock이라는건데... 이는 나중에 다시 언급하도록 하지요.

자... 그런데 왜 Singleton & Server라는 제목이 붙었을까요?

.....

생각해보시면 답은 간단합니다.

한국에 살고 있습니다.

근데 정부가 3개입니다.

어쩔껍니까 -_-;;

사용자 삽입 이미지

에누리없이 이말 튀어나와야죠 =ㅁ=....

Singleton 객체는 이렇게 "꼭 하나만 존재해야 할 때" 씁니다.

아, 물론 정부가 2~3개씩 되는 내분이 피터지는 국가들도 있겠지만;;

이런 특수한 케이스는 예외로 합시다.

------------------------------------------------------------------------------

포스트가 의외로 짧습니다. -_-;;

다음 포스트에는 클라이언트와 옵저버패턴에 대해 언급해야 겠군요.