디자인 패턴은 반복적으로 발생하는 문제들을 해결하기 위한 일반적인 해법으로, 소프트웨어 설계 시 재사용 가능한 형태로 구성됩니다. 디자인 패턴은 크게 생성(Creational), 구조(Structural), 행동(Behavioral) 패턴의 세 가지 주요 카테고리로 분류됩니다. 각 카테고리에는 여러 패턴이 포함되며, 이들은 소프트웨어 설계에서 특정 상황에 맞는 최적의 방법을 제공합니다. 1. 생성 패턴 (Creational Patterns) 생성 패턴은 객체 생성에 관련된 패턴으로, 객체의 생성 과정을 더 유연하게 만들어줍니다. Singleton (싱글톤): 클래스의 인스턴스가 하나만 생성되고, 전역적으로 접근 가능하도록 하는 패턴입니다. Factory Method (팩토리 메소드): 객체 생성을 서브클..
옵저버 패턴(Observer Pattern) 옵저버 패턴(Observer Pattern)은 행동 디자인 패턴 중 하나로, 객체의 상태 변화를 관찰하고 이러한 변화에 대해 하나 이상의 관찀자에게 자동으로 알림을 보내는 패턴입니다. 이 패턴은 주로 분산 이벤트 처리 시스템, GUI 툴, 리액티브 프로그래밍에서 널리 사용됩니다. C/C++ 언어를 사용하는 리눅스 환경에서도 옵저버 패턴을 구현할 수 있으며, 이는 이벤트 기반의 프로그래밍 모델을 구축할 때 유용합니다. 옵저버 패턴의 주요 구성 요소는 다음과 같습니다: Subject (주제): 관찰 대상 객체로, 여러 관찰자(Observer) 객체를 자신의 리스트에 유지하고, 자신의 상태 변화를 이들 관찰자에게 알립니다. Observer (관찰자): 주제의 상태 ..
브릿지 패턴(Bridge Pattern) 브릿지 패턴(Bridge Pattern)은 구조적인 디자인 패턴 중 하나로, 추상화와 구현을 분리하여 서로 독립적으로 변화할 수 있도록 합니다. 이 패턴은 두 계층 사이의 '다리' 역할을 하여, 클라이언트 코드가 구현 부분에 직접적으로 의존하지 않도록 하며, 확장성과 유연성을 향상시킵니다. 브릿지 패턴은 크게 두 가지 구성 요소로 나뉩니다: 추상화(Abstraction)와 구현(Implementor)입니다. 추상화(Abstraction) 추상화는 고수준의 제어 논리를 정의합니다. 이것은 클라이언트가 사용하는 인터페이스로, 구현 부분에 대한 참조를 포함하여 구현 부분의 메서드를 호출합니다. 구현(Implementor) 구현 인터페이스는 추상화에서 정의된 메서드의 실..
변수 네이밍 규칙int 변수: 접두사 n 사용 (int nExample)string 변수: 접두사 ss 사용 (std::string ssExample)포인터 변수: 접두사 p 사용 (int* pExample)HANDLE 변수: 접두사 h 사용 (HANDLE hExample)vector 변수: 접두사 v 사용 (std::vector vExample)map 변수: 접두사 mp 사용 (std::map mpExample)bool 변수: 접두사 b 사용 (bool bExample)null-terminated 변수: 접두사 sz 사용 (char* szExample)CString 변수: 접두사 ms 사용 (CString msExample) 함수 인자 네이밍 규칙함수 인자는 언더스코어와 접두사를 사용하여 명명 (int..
일반적인 FD 닫기를 구현 할 때 아래와 같이 구현 한다.하지만 개발 할 때 우리가 지속적으로 생각해 봐야 할 부분에 대해서 작성해 보았습니다. void CloseSockFD(){ struct rlimit rlim; // 현재 프로세스에 대해 열 수 있는 파일 디스크립터의 최대 개수를 조회합니다. if (getrlimit(RLIMIT_NOFILE, &rlim) == -1) return; // 조회에 실패하면 함수를 종료합니다. for (rlim_t idxFD = 0; idxFD 1. 불필요한 검사 최소화현재 구현에서는 유효하지 않은 파일 디스크립터에 대한 fstat 호출을 시도한 후 오류를 확인합니다. 대신, 열린 파일 디스크립터의 집합을 관리하고, 이 집합에 대해서만 fstat를 호출하는 방식으로 ..
팩토리 패턴은 객체 생성을 위한 인터페이스를 정의하고, 하위 클래스가 어떤 클래스의 인스턴스를 생성할지 결정하게 하는 디자인 패턴입니다. 이를 통해 객체 생성을 서브클래스에 위임함으로써, 클라이언트 코드와 인스턴스를 만들어야 하는 구체적인 클래스 간의 결합도를 낮출 수 있습니다. 팩토리 패턴은 크게 두 가지로 나뉩니다: 팩토리 메서드 패턴과 추상 팩토리 패턴입니다. 여기서는 더 간단한 팩토리 메서드 패턴의 예제를 소개하겠습니다. 팩토리 메서드 패턴 예제 이 예제에서는 단순한 차량 공장을 모델링합니다. Vehicle 인터페이스와 이를 구현하는 두 개의 구체 클래스 Car와 Bike를 정의합니다. 그리고 VehicleFactory 클래스에서는 Vehicle 객체를 생성하는 팩토리 메서드 createVehic..
- Total
- Today
- Yesterday
- 현포다이브
- C++
- 성산블루버블
- ReFS
- 울릉도
- Windows
- OpenSource
- 패턴
- CMake
- 서귀포블루버블
- Linux
- 윈도우
- PowerShell
- 블루버블다이빙팀
- ip
- 서귀포
- 제주도
- Build
- C
- 디자인패턴
- 블루버블다이브팀
- 리눅스
- DLL
- C#.NET
- 블루버블
- C#
- C# 고급 기술
- Thread
- 스쿠버다이빙
- 암호화
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |