RAII
[C++] DCLP - Double-Checked Locking Pattern
[C++] DCLP - Double-Checked Locking Pattern
2015.12.19DCLP Double-Checked Locking Pattern GOF의 23가지 패턴 중 싱글톤 패턴 (Singleton Pattern) 에서 사용하는 패턴 입니다. 단일로 사용하는 패턴은 아니고 싱글톤 패턴의 단점을 보완해주는 역할을 하게 되죠 2015/12/17 - [Development/Design Pattern] - [C++] 싱글톤 패턴 - Singleton Pattern 이전 글 에서 보면 안전해보이고 문제가 없을 것 같지만 멀티쓰레드 환경에서는 Thread safe 이슈가 있습니다. 바로 싱글톤 패턴의 핵심인 단일 인스턴스의 생성이 보장되지 않는다는것이죠 static singleton* instance() { if (_instance == nullptr) { _instance = new s..
[C++] RAII 패턴 - Resource Acquisition Is Initialization Pattern
[C++] RAII 패턴 - Resource Acquisition Is Initialization Pattern
2015.12.16RAII RAII(Resource Acquisition Is Initialization)은 유명한 design pattern 중의 하나로 C++ 언어의 창시자인 Bjarne Stroustrup에 의해 제안되었다. RAII 패턴은 C++ 같이 개발자가 직접 resource 관리를 해주어야 하는 언어에서 leak 을 방지하기 위한 중요한 기법으로 해당 리소스의 사용 scope이 끝날 경우에 자동으로 해제를 해주며 exception이 발생하거나 하는 경우에도 획득한 자원이 해제됨을 보장하여 안전한 코드를 작성할 수 있다. resource라 하면 memory가 될 수도 있고 handle 이 될 수도 있다. 즉, 모든 Leak이 일어날 수 있는 resource에 대해서 안전하게 처리할 수 있는 패턴이다. 그 중 ..