순수 C++로 RSA 키 PEM 저장 및 불러오기🧠 설명 이 코드는 OpenSSL 없이 순수 C++만을 이용하여 RSA 2048비트 키를 PEM 파일 형식으로 저장하거나 불러올 수 있도록 구현한 예제입니다. 공개키, 개인키 모두 지원하며, KCMVP 인증용, 경량 시스템, 보안 제품 개발 시 매우 유용합니다.🧩 원인 외부 라이브러리에 의존하지 않고 독립적인 PEM 처리 구현 필요 KCMVP, CC 인증 등 보안 요구사항 충족 경량 OS 또는 보안 펌웨어에서 사용 목적🧰 핵심 기능 PEM 파일에서 Base64 부분 추출: LoadPem() Base64 ↔ 바이너리 변환: Base64Encode(), Base64Decode() PEM 저장: SavePrivateKeyToPemFile(..
🚦 C++ 디자인 패턴 - Dispatcher Pattern (디스패처 패턴)디스패처 패턴은 요청(Request)을 받아 알맞은 처리기(Handler)로 전달하는 구조입니다. 요청 유형에 따라 처리 로직이 다를 때, 중앙에서 분기하여 처리하도록 구성하는 방식입니다.🧩 구조Dispatcher: 요청을 적절한 핸들러로 분기Handler: 각 요청 유형에 맞는 처리 클래스Request: 요청 정보 (예: 명령 코드, 문자열, enum 등)🧪 예제 코드1. 요청 타입 정의enum class RequestType { LOGIN, LOGOUT, DATA};struct Request { RequestType type; std::string payload;};2. 핸들러 인터페이스 및 ..
📌 C++ 디자인 패턴 - Chain of Responsibility (책임 연쇄 패턴)체인 패턴은 요청을 처리할 수 있는 객체들을 연결된 체인 형태로 구성하여, 요청을 처리할 수 있는 객체가 나타날 때까지 다음 객체로 전달하는 구조입니다. 객체 간 결합도를 낮추고 유연한 구조를 만드는 데 유용합니다.🧩 구조Handler: 요청 처리 인터페이스 정의ConcreteHandler: 실제 요청을 처리하거나 넘기는 구현체Client: 첫 Handler에 요청을 전달🧪 예제 코드1. 추상 핸들러class Handler {protected: Handler* next = nullptr;public: void setNext(Handler* _next) { next = _next; } virtual..
C++ 스마트 포인터 정리1. 스마트 포인터 종류 및 예제 스마트 포인터 설명 소유권 예제 unique_ptr 단일 소유, 이동만 가능 O std::unique_ptr up = std::make_unique(10); shared_ptr 참조 카운트 기반 공유 O std::shared_ptr sp = std::make_shared(10); weak_ptr 소유권 없이 생존 확인용 X std::weak_ptr wp = sp;if (auto locked = wp.lock()) { *locked += 1;..

4편: DECLARE_PROPERTY – 반복되는 getter/setter 자동화객체지향에서 캡슐화는 중요한 원칙입니다.하지만 private 멤버 + public getter/setter 패턴은 너무 반복적이라 지겹죠.그래서 등장하는 것이 DECLARE_PROPERTY 같은 매크로입니다.😫 반복되는 getter/setterclass Person {private: std::string m_name;public: const std::string& GetName() const { return m_name; } void SetName(const std::string& name) { m_name = name; }};위 코드를 모든 속성마다 계속 작성한다면 생산성이 떨어지고, 실수도 많아집니다.?..

3편: MSLEEP, SSLEEP – 간단한 Sleep 매크로 정의하기C++에서는 스레드를 잠시 멈추기 위해 std::this_thread::sleep_for를 사용하는 것이 일반적입니다.하지만 매번 std::chrono::milliseconds() 를 타이핑하는 건 지저분하고 반복적이죠.📌 목표: 더 읽기 쉽고, 반복을 줄이며, 명확한 단위 구분이 가능한 슬립 매크로 정의🛠️ 매크로 정의#ifndef MSLEEP#define MSLEEP(var) { std::this_thread::sleep_for(std::chrono::milliseconds((var))); }#endif#ifndef SSLEEP#define SSLEEP(var) { std::this_thread::sleep_for(std::ch..
- Total
- Today
- Yesterday
- 블루버블다이빙팀
- C
- Linux
- 리눅스
- 서귀포블루버블
- 윈도우
- PowerShell
- Thread
- 현포다이브
- CMake
- C# 고급 기술
- 제주도
- ip
- C#
- ReFS
- 서귀포
- 디자인패턴
- 암호화
- 블루버블
- OpenSource
- 성산블루버블
- C#.NET
- 울릉도
- 패턴
- C++
- Build
- 스쿠버다이빙
- 블루버블다이브팀
- DLL
- Windows
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |