브릿지 패턴(Bridge Pattern) 브릿지 패턴(Bridge Pattern)은 구조적인 디자인 패턴 중 하나로, 추상화와 구현을 분리하여 서로 독립적으로 변화할 수 있도록 합니다. 이 패턴은 두 계층 사이의 '다리' 역할을 하여, 클라이언트 코드가 구현 부분에 직접적으로 의존하지 않도록 하며, 확장성과 유연성을 향상시킵니다. 브릿지 패턴은 크게 두 가지 구성 요소로 나뉩니다: 추상화(Abstraction)와 구현(Implementor)입니다. 추상화(Abstraction) 추상화는 고수준의 제어 논리를 정의합니다. 이것은 클라이언트가 사용하는 인터페이스로, 구현 부분에 대한 참조를 포함하여 구현 부분의 메서드를 호출합니다. 구현(Implementor) 구현 인터페이스는 추상화에서 정의된 메서드의 실..
일반적인 FD 닫기를 구현 할 때 아래와 같이 구현 한다. 하지만 개발 할 때 우리가 지속적으로 생각해 봐야 할 부분에 대해서 작성해 보았습니다. void CloseSockFD() { struct rlimit rlim; // 현재 프로세스에 대해 열 수 있는 파일 디스크립터의 최대 개수를 조회합니다. if (getrlimit(RLIMIT_NOFILE, &rlim) == -1) return; // 조회에 실패하면 함수를 종료합니다. for (rlim_t idxFD = 0; idxFD < rlim.rlim_cur; ++idxFD) { struct stat statbuf; // 각 파일 디스크립터에 대한 정보를 얻기 위해 fstat 함수를 호출합니다. if (fstat(idxFD, &statbuf) == -1..
팩토리 패턴은 객체 생성을 위한 인터페이스를 정의하고, 하위 클래스가 어떤 클래스의 인스턴스를 생성할지 결정하게 하는 디자인 패턴입니다. 이를 통해 객체 생성을 서브클래스에 위임함으로써, 클라이언트 코드와 인스턴스를 만들어야 하는 구체적인 클래스 간의 결합도를 낮출 수 있습니다. 팩토리 패턴은 크게 두 가지로 나뉩니다: 팩토리 메서드 패턴과 추상 팩토리 패턴입니다. 여기서는 더 간단한 팩토리 메서드 패턴의 예제를 소개하겠습니다. 팩토리 메서드 패턴 예제 이 예제에서는 단순한 차량 공장을 모델링합니다. Vehicle 인터페이스와 이를 구현하는 두 개의 구체 클래스 Car와 Bike를 정의합니다. 그리고 VehicleFactory 클래스에서는 Vehicle 객체를 생성하는 팩토리 메서드 createVehic..
싱글턴(Singleton) 패턴은 객체의 인스턴스가 애플리케이션 내에서 단 하나만 생성되도록 보장하는 디자인 패턴입니다. 이 패턴은 전역 변수를 사용하지 않고 객체에 대한 전역 접근을 제공하며, 동시에 여러 인스턴스의 생성을 방지하여 리소스 사용을 최적화할 수 있습니다. 생성자를 비공개로 만들어 클래스 외부에서 인스턴스를 직접 생성할 수 없게 합니다. 클래스 내에 정적(private static) 멤버 변수로 자기 자신의 유일한 인스턴스를 저장합니다. 공개적인 정적 메서드(getInstance) 를 제공하여 유일한 인스턴스에 접근할 수 있게 합니다. 이 메서드는 내부적으로 인스턴스가 존재하지 않을 경우에만 생성하고, 이미 존재하는 경우에는 기존 인스턴스를 반환합니다. #include class Singl..
- Total
- Today
- Yesterday
- 최우림
- cpu 점유율
- absl-cpp
- cpu 이용률
- C++
- 네트워크 정보
- C#
- Project
- 디자인 패턴
- C
- 대칭키
- string
- 블록암호화
- AES
- 암호화
- C#.NET
- 알고리즘
- 블럭암호화
- IV
- 네트워크 카드 이름
- 패턴
- 디자인패턴
- 네트워크설정
- bit
- RSA
- C# 고급 기술
- 해시
- 백터
- 네트워크 연결
- cpu 정보
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |