C++ 동적 할당 원칙: new vs. malloc - 객체 지향 언어에서 충돌을 피하는 방법🚨 **핵심 규칙:** STD 라이브러리를 사용하거나 C++ Class 객체를 생성할 때는 반드시 malloc이 아닌 new를 사용해야 합니다!C++ 언어에서 메모리 동적 할당을 할 때 가장 중요한 규칙은 할당하려는 대상이 C++ 객체(클래스/구조체)인지, 단순한 메모리 영역인지에 따라 방법이 달라진다는 것입니다.---1. C++ 객체 (클래스/STD 컨테이너)는 new를 사용해야 합니다!std::list, std::vector, std::string과 같은 STD 라이브러리 컨테이너와, 사용자 정의 class 또는 멤버 함수를 가진 struct는 복잡한 객체입니다. 이들은 메모리가 할당된 후 생성자가 호출되어..
C 언어 vs C++: `struct`와 `typedef`의 차이점 완벽 정리 C 언어를 공부하다 보면 struct MyStruct와 typedef struct MyStruct라는 두 가지 형태의 구조체 선언을 자주 보게 됩니다. 겉보기에는 비슷해 보이지만, 둘 사이에는 명확한 차이점이 있습니다. 이 글에서는 두 방식의 차이점을 쉽게 알아보고, 왜 C에서는 typedef가, C++에서는 전자가 더 많이 사용되는지 알려드릴게요. `struct`만 사용한 구조체 선언 이 코드는 MyStruct라는 이름의 구조체 태그(tag)를 정의합니다. 여기서 MyStruct는 구조체의 별명이 아니라, struct 키워드와 함께 사용해야 하는 진짜 이름입니다. 마치 '과일'이라는 카테..
순수 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;..
- Total
- Today
- Yesterday
- 리눅스
- 암호화
- 울릉도
- C#
- 블루버블
- 현포다이브
- Windows
- 스쿠버다이빙
- 다이빙
- Thread
- 성산블루버블
- 블루버블다이빙팀
- ReFS
- DLL
- C++
- OpenSource
- 제주도
- ip
- 서귀포
- 양파다이브
- 디자인패턴
- Linux
- PowerShell
- Build
- 패턴
- C# 고급 기술
- 서귀포블루버블
- 윈도우
- C
- 블루버블다이브팀
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
