private은 왜 필요한가??

punxism의 이미지

안녕하세요. 객체 지향을 공부하다보면 쉴세 없이 볼 수 잇는것이 캡슐화, 정보은폐의 개념인데..

이해가 잘 되지 않습니다.
이 private라는것이 완벽한 객체 지향 모델을 위한 것인지 아니면 정말 정보 은폐를 위한것인지.

정말 정보 은폐라면 컴파일 될때 암호화라도 되어서 은폐되나요? 그럼 헥스 코드로 변환 되었을때 그 private값을 읽어 올 수 없나요?

private에서 컴파일 될때 암호화 되어서 컴파일 된다.. 그렇기 때문에 메모리를 직접 억섹스해도 그 값을 알아 올 수 없다.. 이건 아닌거 같습니다.

제가 private를 사용하는 한가지는
"이 함수는 멤버 함수들이 쓰는 함술 들이다"
이것을 표시 하기 위해 썼습니다.
변수도 그렇구요.
저는 단지 코드를 읽는 사람들에게 좀 더 쉽게 코드를 알아 볼 수 있게 라는 의미에서 private를 사용했다는 것이죠.

뒤져봐도 거의 같은 답 뿐이군요.

완변한 객체지향 모델을 위해 사용하는것인지.. 아니면 실제로 그 값을 알수 없는지.. 궁금합니다.

아직 객체 지향 덜 된 학생이 올려봅니다
감사합니다.

nainu의 이미지

Quote:
저는 단지 코드를 읽는 사람들에게 좀 더 쉽게 코드를 알아 볼 수 있게 라는 의미에서 private를 사용했다는 것이죠

요 말씀이 맞다고 생각합니다.

hyperhidrosis의 이미지

private 은 컴파일타임에 접근이 불가능하게 하기 위한 겁니다.
즉 읽기 편하게 하자는 것과 동일한 의미라고 볼수있죠.

물리적으로는 전혀 차이가 없습니다.

지리즈의 이미지

Private이 왜 필요한지 자신이 작성한 class를 자신이 이용할 때는
그것을 깨닳기가 어렵죠...

그런데, 자신의 class를 남에게 제공해야거나,
혹은 남의 class를 자신이 가져다 써야 할 때...
그 진가가 들어납니다.
(엄밀히 말하면, 자신의 class를 남에게 제공할 때만, 느껴지지..
남의 class 이용할 때는 잘 모르죠... 감쳐줘 있으니깐...^^ )

class interface가 간단하고 직관적일 수록 좋죠.

그런데, private이 없다면..
이런 간단하고, 직관적인 구현이 가능할까요?

private이 없는 class 작성은
내부변수를 사용하지 않고 function 작성하는 것과 똑같습니다.

There is no spoon. Neo from the Matrix 1999.

익명 사용자의 이미지

C PLUS PLUS ( C++ , 씨뿔뿔)의 '' private ''은,,,,,,,,

(1) C++의 '객체지향성'(Object-Oriented Characteristics)을 헤치는 주범이고,
(2) C의 기계지향적 특성을 보듬어안은 C++의 객체지향적 '한계' 이며,
(3) C++을 객체지향적이지 못한 반쪽짜리로 만든, 가장 큰 주범이라고 회자되더군요.

따라서,,,,,,,,

객체지향성을 제대로 살리고싶다면, private 을 남발하여 사용하지 않도록 권고하는 고수 프로그래머들이 많더군요 !

총총총.........!

익명 사용자의 이미지

호호양주 wrote:
C PLUS PLUS ( C++ , 씨뿔뿔)의 '' private ''은,,,,,,,,

(1) C++의 '객체지향성'(Object-Oriented Characteristics)을 헤치는 주범이고,
(2) C의 기계지향적 특성을 보듬어안은 C++의 객체지향적 '한계' 이며,
(3) C++을 객체지향적이지 못한 반쪽짜리로 만든, 가장 큰 주범이라고 회자되더군요.

따라서,,,,,,,,

객체지향성을 제대로 살리고싶다면, private 을 남발하여 사용하지 않도록 권고하는 고수 프로그래머들이 많더군요 !

총총총.........!

위의 글은 잘못되었습니다. 순각적으로 착각해서...!

위의 글을 "아래와 같이 수정"합니다. ( private를 friend로 수정 correct )

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

C PLUS PLUS ( C++ , 씨뿔뿔)의 '' friend '' method는,,,,,,,,

(1) C++의 '객체지향성'(Object-Oriented Characteristics)을 헤치는 주범이고,
(2) C의 기계지향적 특성을 보듬어안은 C++의 객체지향적 '한계' 이며,
(3) C++을 객체지향적이지 못한 반쪽짜리로 만든, 가장 큰 주범이라고 회자되더군요.

따라서,,,,,,,,

객체지향성을 제대로 살리고싶다면, friend 를 남발하여 사용하지 않도록 권고하는 고수 프로그래머들이 많더군요 !

총총총.........!

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

익명 사용자의 이미지

punxism wrote:

private은 왜 필요한가??

private은 객체지향성 개념을 구현(실제로 실현)하는 핵심 기능들 중 하나 입니다.

총총총.....

nainu의 이미지

자신의 코드도 짜 놓고 한참 후에 보게 되면 어떻게 접근해서 읽고 써야 할지 가물가물해지게 되고, 그런 상황이 점점 쌓이게 되면 결국 private 의 필요성을 느끼게 되더라는 게 제 경험입니다.

private 이 없는 언어의 경우 변수 이름에 _를 붙이기도 하고요.
그리고 컴파일 타임에 에러를 막아주기도 하죠. 자바의 경우 리팩토링 책을 보시면 private을 이용해서 리팩터하는 예제가 많이 있습니다.

moonzoo의 이미지

private는 정보 은닉을 통해서, 복잡성을 덜어주는 역할을 합니다.

완성된 클래스를 사용하는 자(개발자..)는

private 멤버 및 메서드를 알 필요가 없기 때문에

복잡성이 줄어드는 것입니다.

익명 사용자의 이미지

저도 처음 공부할때는 '정보은닉'이라고 그러길래
'아니 지가 짠 코드를 훤히 아는데 뭘 은닉하고 말고 X랄이여?'
하고 생각했더랩니다.

그런데 경험이 쌓여갈수록.. 저절로 깨닫게 되더군요.
어떤 클래스 모듈을 작성했을때, 그것을 사용하기 위한 외부로 알려지는 함수(인터페이스)들이 있을 것이고, 그와는 별도로 클래스를 구현하다보니 클래스 안에서만 쓰는 함수들이 생겨나곤 할것입니다. 그런데 이런 내부에서만 쓰는 함수들이 외부 인터페이스로 굳이 'publish'될 필요가 없겠죠. 그거 외부에서 막 실수로건... 의지로건 막 불러대면 안되겠죠. '정보은닉'이라는 단어가 사실 좀 안맞죠. 정확한 의미로는 '접근은닉' 이라고 정의했어야 한다고 생각합니다.
C 에서 static 으로 스코프를 제한하는 맥락하고 비슷합니다.

낮술을 먹고 헤롱헤롱해서 그냥 끄적여봤습니다. 존하루되세 -_-;

쌀밥의 이미지

private 에 해당 하는 부분은
해당 클래스 작성자가 언제든지 마음 놓고 수정 할 수 있는 영역이라고 생각하면 이해가 좀 더 쉽지 않을까 싶습니다.

public 으로 선언한 영역은 시간이 지나면서
내가 작성한 코드를 다른 사람들이 사용하는 영역.
즉, 외부와의 인터페이스 영역에 해당하는 것인데
이런 부분은 나중에 쉽게 바꿀 수가 없게 됩니다.

반면에 '내부 구현'은 언제나 바꿀 수 있도록 private이 보장해주는 것이죠.

일하는 사람들의 희망 민주노동당 : http://www.kdlp.org
반공 교육의 성과로, 민주주의의 반대가 공산주의(또는 사회주의)라고 생각하는 사람이 많다.

pynoos의 이미지

저는 가능하면 private은 쓰지 않으려고 노력(?)합니다.
protected로 대부분이 가능하기 때문이지요.

될 수 있으면 오류를 컴파일시간에서 찾아보고, 컴파일러 수준으로
설계를 끌어 올리자(?)라는 개념으로 만들어진 것이 개체지향형입니다만,
이 private은 가져다 쓰는 사람으로 하여금 볼 수는 있되 접근할 수
없는 금단의 열매와 같은 것입니다. 감질맛만 나게하고 쓰이지 못하는 것은
한 눈에 봐도 열면 절대로 안되는 것외에는 안 쓰는 것이 좋습니다.

그런데 꼭 필요한 private은 별로 없고 대개 protected 만으로 가능하더군요.

zelon의 이미지

private, protected 얘기 나오면 늘 적곤하는 예제가 있습니다. 바로 날짜 클래스인데요.

class Date
{
public:
   void setDate(int year, int month, int day);

protected:
   int m_iYear;
   int m_iMonth;
   int m_iDay;
};

위와 같은 코드가 있을 때, setDate() 함수 안에서 m_iYear, m_iMonth, m_iDay 를 세팅할 때 값의 범위(m_iDay가 0보다 크고 31보다 작아야한다 등등)를 체크해서 넣는다면,

m_iYear, m_iMonth, m_iDay 의 값은 [존재하는 날짜] 를 가르킨다고 확신할 수 있겠죠.

하지만 m_iYear, m_iMonth, m_iDay 가 public 으로 되어 있다면 이걸 어느 코드에서 고칠지 모르므로, [존재하는 날짜] 라는 보장을 못할겁니다.

위와 같은 방식으로 '정보은닉' 이라기 보다는 데이터의 무결성을 보장해주는 방법으로도 쓰이죠.

-----------------------------------------------------------------------
GPL 오픈소스 윈도우용 이미지 뷰어 ZViewer - http://zviewer.wimy.com
블로그 : http://blog.wimy.com

anony의 이미지

private 가 무슨뜻인지 아시죠? 영어사전에서.
님은 님의 privacy를 다른사람이 알았으면 좋겠나요?
님이 프로그램이라고 생각하시면 다 해결됩니다.

오만한 리눅서의 이미지

지리즈 wrote:
Private이 왜 필요한지 자신이 작성한 class를 자신이 이용할 때는
그것을 깨닳기가 어렵죠...

형이 이상한 답글올리니깐, 사람들이 어뚱한 답글들을 올리잖아염.

:evil: :lol:

lifthrasiir의 이미지

오만한 리눅서 wrote:
지리즈 wrote:
Private이 왜 필요한지 자신이 작성한 class를 자신이 이용할 때는
그것을 깨닳기가 어렵죠...

형이 이상한 답글올리니깐, 사람들이 어뚱한 답글들을 올리잖아염.

틀린 말은 아닌데요? 실제로 자기 자신이 짜 놓고 바로 이해할 수 있는 코드에서 private를 쓸 필요성을 느끼기는 힘듭니다. (왜냐하면 만든 사람은 클래스의 제약 조건이라던지 내부 구현을 다 알고 있으니까.) 하지만 다른 사람이 써야 할 클래스라던지, 아니면 다른 사람의 클래스를 갖다 쓴다던지 할 때는 필요해지겠죠.

- 토끼군

익명 사용자의 이미지

호호양주 wrote:
C PLUS PLUS ( C++ , 씨뿔뿔)의 '' friend '' method는,,,,,,,,

(1) C++의 '객체지향성'(Object-Oriented Characteristics)을 헤치는 주범이고,
(2) C의 기계지향적 특성을 보듬어안은 C++의 객체지향적 '한계' 이며,
(3) C++을 객체지향적이지 못한 반쪽짜리로 만든, 가장 큰 주범이라고 회자되더군요.

따라서,,,,,,,,

객체지향성을 제대로 살리고싶다면, friend 를 남발하여 사용하지 않도록 권고하는 고수 프로그래머들이 많더군요 !

총총총.........!

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

http://www.parashift.com/c++-faq-lite/friends.html#faq-14.2

전 동의하지 않는데요.
제가 이해하는 C++ 의 friend 는 자바의 packet level 에서만 액세스 가능한 메소드입니다. C++에서는 모든 것이 public, protected, private만 가능하며, namespace 안에서만 오픈 되어있는 접근 지정자는 없죠. 바로 이럴대 friend가 유용하게 됩니다.

잘 생각해보면,
누군가를 friend 만드는 어떤 클래스 A는 자신이 명시적으로 자신에 대한 접근을 friend인 B에허용하며, 따라서 사전에 B 클래스가 자신의 구현에 의존하게 된다는 것을 알게됩니다. 그래서, A가 B에 대한 완전한 지휘권이 있어야하는 경우에만 가능합니다. 결과적으로 정보 은닉에 위배되는 것이 전혀아닙니다.

클래스의 인터페이스를 클래스가 가진 public 뿐만 아니라, friend지정자까지도 포함한 것으로 생각하면 이를 쉽게 이해할 수 있을 것입니다.

이런 friend가 유용한 상황은 다양하지만, 예를들어 어떤 generic한 트리를 만든다고 합시다. 이 때, 트리의 전체 정보를 담고 있는 클래스는 트리내 각 노드의 정보를 효율적으로 액세스 할 수 있을때 가능하다고 가정합시다. 만약 이러한 상황이라면 당연히 트리의 전제 정보를 갖고 있는 클래스는 트리 노드에 대한 friend가 되야합니다. 또한, 분명히 이 트리정보 클래스와 트리 노드 클래스의 작성자는 한명(또는 팀, 부서 등)이며, 따라서 자기가 두가지 클래스에 대한 모든 권한/책임을 가집니다.

이런 상황에서 friend는 명백하게 도움이 됩니다....

off-topic성이어서 죄송합니다.

익명 사용자의 이미지

제가 이해하는 C++ 의 friend 는 자바의 packet level 에서만 액세스 가능한 메소드입니다. -> 제가 이해하는 C++의 friend는 자바의 package level 에서만 액세스 가능한 메소드에 대응된다고 생각합니다.

죄송.

dasomoli의 이미지

pynoos wrote:
저는 가능하면 private은 쓰지 않으려고 노력(?)합니다.
protected로 대부분이 가능하기 때문이지요.

될 수 있으면 오류를 컴파일시간에서 찾아보고, 컴파일러 수준으로
설계를 끌어 올리자(?)라는 개념으로 만들어진 것이 개체지향형입니다만,
이 private은 가져다 쓰는 사람으로 하여금 볼 수는 있되 접근할 수
없는 금단의 열매와 같은 것입니다. 감질맛만 나게하고 쓰이지 못하는 것은
한 눈에 봐도 열면 절대로 안되는 것외에는 안 쓰는 것이 좋습니다.

그런데 꼭 필요한 private은 별로 없고 대개 protected 만으로 가능하더군요.


저도 그렇게 생각하는 편입니다만 꼭 필요한 private 같은 경우는 어떤게 있을까요?

예로 볼 수 있는 코드 또는 링크 혹은 검색어를 가르쳐주실 수 있을까요?

직접 설명해주시면 더욱 감사하겠습니다 :)



dasomoli의 블로그(http://dasomoli.org)
dasomoli = DasomOLI = Dasom + DOLI = 다솜돌이
다솜 = 사랑하옴의 옛 고어.
Developer! ubuntu-ko! 다솜돌이 정석
죠커의 이미지

private가 가능한 상황에서 private를 쓰는데 주저하지 않습니다. 대체로 속성에 대해서는 protected, 메소드에 대해서는 private를 많이 쓰는 것 같습니다. 당연히 외부 인터페이스는 public이 되어야 겠죠. 메소드에 protected를 쓰는 것은 property 때문인 경우가 많더군요.

죠커의 이미지

punxism wrote:
안녕하세요. 객체 지향을 공부하다보면 쉴세 없이 볼 수 잇는것이 캡슐화, 정보은폐의 개념인데..

이해가 잘 되지 않습니다.
이 private라는것이 완벽한 객체 지향 모델을 위한 것인지 아니면 정말 정보 은폐를 위한것인지.

정말 정보 은폐라면 컴파일 될때 암호화라도 되어서 은폐되나요? 그럼 헥스 코드로 변환 되었을때 그 private값을 읽어 올 수 없나요?

private에서 컴파일 될때 암호화 되어서 컴파일 된다.. 그렇기 때문에 메모리를 직접 억섹스해도 그 값을 알아 올 수 없다.. 이건 아닌거 같습니다.

제가 private를 사용하는 한가지는
"이 함수는 멤버 함수들이 쓰는 함술 들이다"
이것을 표시 하기 위해 썼습니다.
변수도 그렇구요.
저는 단지 코드를 읽는 사람들에게 좀 더 쉽게 코드를 알아 볼 수 있게 라는 의미에서 private를 사용했다는 것이죠.

뒤져봐도 거의 같은 답 뿐이군요.

완변한 객체지향 모델을 위해 사용하는것인지.. 아니면 실제로 그 값을 알수 없는지.. 궁금합니다.

아직 객체 지향 덜 된 학생이 올려봅니다
감사합니다.

실제로 제어할 수 있느냐 없느냐는 큰 의미가 없다고 생각합니다. 현실적으로 훌륭한 디자인을 할게 도움을 주느냐가 큰 의미가 있습니다. 인터페이스를 이용하는 것이 내부의 데이터, 함수를 이용하는 것보다 더 낫거나 그 반대가 불편함을 제공하는 것만으로 충분합니다. 예를 들어 private를 이용한 상태에서 데이터를 직접 제어하는 방법이 public을 쓴 후에 직접 접근하는 방법에 비해서 10%-15%정도가 비효율적이라면 변태가 아닌 이상 잘못된 디자인을 추구할 프로그래머는 적을 것입니다. 실제로 (다양한 이유로 인해) 이런 형태로 구현된 OOP 언어들이 있습니다.

마지막 질문에 대해서는 언어/환경에 따라 둘 중의 하나가 참이거나 둘다 참이라고 답을 드리겠습니다.

atie의 이미지

private과 protected에 대해서는 다음의 글 타래가 있습니다.
http://bbs.kldp.org/viewtopic.php?t=53187

----
I paint objects as I think them, not as I see them.
atie's minipage

mazinga21의 이미지

예를들어 클래스를 멤버로서 구속하는 클래스를 작성할때
멤버 클래스를 private로 둠으로써
해당 멤버 클래스를 숨긴다던가 등으로도 사용되고

여러가지 유용한 사용법이 많다는,

"단순히 해당 정보로서의 접근을 방해한다" 만으로도
위의 CN님이 말씀하신것과 같은 효과를 주는 -ㅅ-;

한마디로 그냥 단순히 라이브러리를 사용하는 사용자에대한
일종의 인터페이스를 만들어준다 가 아닐까 하는..-ㅅ-;;[.. 헛소리]
(보안은 조금..)

public class goijjaingan : phein
{public override string sooheng()
{return "뒹굴뒹굴";
}public int age()
{DateTime now=DateTime.Now;
return now.Year-1989;
}}

zelon의 이미지

디자인 패턴 중에 singleton 을 쓸 때는 생성자가 protected 가 아니라 private 여야겠죠 ^^

-----------------------------------------------------------------------
GPL 오픈소스 윈도우용 이미지 뷰어 ZViewer - http://zviewer.wimy.com
블로그 : http://blog.wimy.com

doldori의 이미지

dasomoli wrote:
pynoos wrote:
저는 가능하면 private은 쓰지 않으려고 노력(?)합니다.
protected로 대부분이 가능하기 때문이지요.

될 수 있으면 오류를 컴파일시간에서 찾아보고, 컴파일러 수준으로
설계를 끌어 올리자(?)라는 개념으로 만들어진 것이 개체지향형입니다만,
이 private은 가져다 쓰는 사람으로 하여금 볼 수는 있되 접근할 수
없는 금단의 열매와 같은 것입니다. 감질맛만 나게하고 쓰이지 못하는 것은
한 눈에 봐도 열면 절대로 안되는 것외에는 안 쓰는 것이 좋습니다.

그런데 꼭 필요한 private은 별로 없고 대개 protected 만으로 가능하더군요.


저도 그렇게 생각하는 편입니다만 꼭 필요한 private 같은 경우는 어떤게 있을까요?

당연한 얘기지만 private과 protected 멤버의 차이는 그 클래스를 상속받은
클래스에서부터 나타납니다. 둘 다 인터페이스가 아닌 구현에 관련된 멤버이지만
그 의미는 다르죠.

private: "내 자식들아, 이것은 나만을 위한 것이니 너희들은 내 것을 쓸 생각을
하지 말아라. 정 필요하면 너희들이 직접 만들거라."

protected: "내 자식들아, 너희들이 필요할 것 같아서 미리 만들어 두었으니 마음대로
써도 좋다. 짐작컨대 쓰지 않고는 못배길 때도 종종 있으리라."

그 예는 Conversations: Virtually Yours을 참고하세요.

저는 protected로 private을 대체할 수 있다는 pynoos님의 견해에 동의하지 않습니다.

lovewar의 이미지

punxism wrote:
안녕하세요. 객체 지향을 공부하다보면 쉴세 없이 볼 수 잇는것이 캡슐화, 정보은폐의 개념인데..

이해가 잘 되지 않습니다.
이 private라는것이 완벽한 객체 지향 모델을 위한 것인지 아니면 정말 정보 은폐를 위한것인지.

정보은폐 또는 은닉이란 단어 보다는 정보보호란 단어를 사용하는것이
좋을것 같습니다.

정보를 보호한다는 개념에서 보시면 좀더 쉽게 이해가 갈것입니다.

따로 달리 설명하지 않아도 될 것 같습니다.

쌀밥의 이미지

pynoos wrote:
저는 가능하면 private은 쓰지 않으려고 노력(?)합니다.
protected로 대부분이 가능하기 때문이지요.

될 수 있으면 오류를 컴파일시간에서 찾아보고, 컴파일러 수준으로
설계를 끌어 올리자(?)라는 개념으로 만들어진 것이 개체지향형입니다만,
이 private은 가져다 쓰는 사람으로 하여금 볼 수는 있되 접근할 수
없는 금단의 열매와 같은 것입니다. 감질맛만 나게하고 쓰이지 못하는 것은
한 눈에 봐도 열면 절대로 안되는 것외에는 안 쓰는 것이 좋습니다.

그런데 꼭 필요한 private은 별로 없고 대개 protected 만으로 가능하더군요.


저도 최근까지 private을 안쓰고 protected를 사용해서
이후에 있을지도 모를 상황에 확장 여지를 남겨두고 싶었습니다.

하지만 최근에 많은 책들을 읽으면서, 그리고 제가 지금 하고 있는 프로젝트를 진행하면서
private 의 매력을 많이 깨닿게 되었습니다.

'볼수는 있지만 쓸수는 없는' 이라는 표현은 정말 멋진 표현인것 같습니다.
하지만 private으로 설정해둔 변수나 메소드는 실제로 볼수 없도록 .h 가 아닌 .cpp로 옮겨서 감쪽같이 감춰버릴 수가 있습니다.

이것은 Exceptional C++ 에서 소개하는 pimple 이라는 트릭을 사용해서 가능합니다.

그리고 private으로 가능한것은 protected로 가능한것이 당연하지요
protected나 priavte으로 가능한것은 public으로 가능한것과 같은 것 같습니다.

그럼에도 불구하고 protected를 꼭 써야할때가 있는데
그런 경우에도, 변수는 모두 private으로 감추고
해당 변수로 접근하는 메소드를 새로 만들어서 protected로 제공하는 방법이 '구현 세부사항'을 좀 더 감추고, 구현과 사용의 연관 관계를 좀 더 느슨하게 해주어서 유연성을 더 제공해준다고 생각합니다.

이런 내용은 어디까지나 개인적인 프로그래밍 철학에 해당하는 것이니 어느게 맞다 틀리다 말할 순 없겠지만
최근 제가 private에 매력을 강하게 느끼고 있어서 적어보았습니다..ㅎ

일하는 사람들의 희망 민주노동당 : http://www.kdlp.org
반공 교육의 성과로, 민주주의의 반대가 공산주의(또는 사회주의)라고 생각하는 사람이 많다.

쌀밥의 이미지

zelon wrote:
디자인 패턴 중에 singleton 을 쓸 때는 생성자가 protected 가 아니라 private 여야겠죠 ^^

생성자가 private이면;;;
어떻게 생성시켜서 사용할수가 있지요???;;

일하는 사람들의 희망 민주노동당 : http://www.kdlp.org
반공 교육의 성과로, 민주주의의 반대가 공산주의(또는 사회주의)라고 생각하는 사람이 많다.

leanblue의 이미지

쌀밥 wrote:
zelon wrote:
디자인 패턴 중에 singleton 을 쓸 때는 생성자가 protected 가 아니라 private 여야겠죠 ^^

생성자가 private이면;;;
어떻게 생성시켜서 사용할수가 있지요???;;

public class Singleton {
    private Singleton instance;
    private Singleton() {
    //do something
    }
    public synchronized Singleton getSingleton() {
        if(instance==null)
            instance = new Singleton();
        return instance;
    }
}

LeanBlue in CyberWorld!!!

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.