디자인 패턴은 반복적으로 발생하는 문제들을 해결하기 위한 일반적인 해법으로, 소프트웨어 설계 시 재사용 가능한 형태로 구성됩니다. 디자인 패턴은 크게 생성(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) 구현 인터페이스는 추상화에서 정의된 메서드의 실..
일반적인 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..
- Total
- Today
- Yesterday
- 대칭키
- 네트워크 카드 이름
- cpu 정보
- 네트워크설정
- 네트워크 연결
- cpu 이용률
- 최우림
- C#.NET
- 패턴
- string
- C#
- 디지털서명
- StringFormat
- cpu 점유율
- IV
- 디자인패턴
- 디자인 패턴
- 해시
- process
- C# 고급 기술
- 인젝션
- 암호화
- 백터
- C++
- 블록암호화
- C
- bit
- 블럭암호화
- 네트워크 정보
- RSA
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |