singleton 4

[C++] 싱글톤 패턴의 메모리 할당과 해제 with C++

할당과 해제 개요 앞서 설명한 내용들을 토대로 싱글톤 패턴으로 디자인된 클래스에서 소멸자에 메모리를 해제하는 코드를 추가하는 것은 주의해야 한다는 점을 알았다. 따라서 new 키워드로 호출된 인스턴스를 할당 해제 하는 방법들에 대해 알아보자. 본문 싱글톤으로 디자인된 클래스의 인스턴스 메모리를 해제하려면 다음과 같은 방법을 사용할 수 있다. 정적 메서드 추가 인스턴스를 불러오는 공개된 정적 멤버 함수처럼, 인스턴스의 메모리를 해제하는 정적 메서드를 추가하면 된다. 이를 테면, #include class singleton { static singleton* _instance; singleton(); ~singleton(); singleton(const singleton&) = delete; singleto..

카테고리 없음 2023.08.17

[C++] 싱글톤 패턴 (2) with C++

예제 본문에서 구현한 예제 코드를 조금 바꿔서 main 함수에서, 그리고 다른 클래스에서 해당 클래스를 호출해 보자. 기본적으로 싱글톤으로 디자인된 인스턴스를 사용하려면 다음과 같은 코드를 입력하면 된다. DB* db = DB::GetInstance(); // 싱글톤 클래스명* 변수명 = 싱글톤 클래스명::정적함수; 우리의 목표는 유저의 정보를 담는 User 클래스를 만들고, DB 클래스의 인스턴스를 생성해 쿼리를 작성하는 것이다. 그리고 main 함수에서도 동일하게 사용할 수 있는지 확인해 보자. #include #include #include #include class DB { MYSQL _mysql; static DB* _instance; DB(); public: DB(const DB&) = del..

Language/C++ 2023.08.10

[C++] 싱글톤 패턴 (1) with C++

Singleton Pattern 개요 프로젝트 진행 중, 특정 클래스가 실행 동안 한 번만 초기화되어야 하는 상황이 발생할 때가 있다. 예를 들어, MySQL과의 연결을 관리하는 클래스는 여러 번 생성될 경우 메모리와 같은 자원의 낭비가 초래될 수 있으며, 데이터 일관성 또한 손상될 가능성이 있다. 다수의 프로그래밍 언어에서는 이와 같은 상황을 대비하여 싱글톤 패턴(Singleton Pattern)을 도입하였다. 이 패턴의 핵심은 애플리케이션 내에서 해당 클래스의 인스턴스가 유일하게 하나만 존재하도록 보장하는 것이다. 이를 통해 앞서 언급된 문제점을 해결할 수 있으며, 전역적으로 참조 가능한 액세스 포인트를 제공하여 다른 객체들이 이를 쉽게 활용할 수 있게 된다. 그러나, 이 패턴의 도입은 전역 상태를 ..

Language/C++ 2023.08.09