NTFS vs ReFS: 파일 필터 드라이버 샘플과 Fallback 설계 1. NTFS용 파일 필터 드라이버 샘플 NTFS에서는 FltMgr 기반 미니필터를 통해 다양한 IRP를 가로채고 파일 시스템 동작을 감시할 수 있습니다. 예제: PreCreate 및 PreWrite 필터링 FLT_PREOP_CALLBACK_STATUSPreCreateCallback( PFLT_CALLBACK_DATA Data, PCFLT_RELATED_OBJECTS FltObjects, PVOID* CompletionContext){ PFLT_FILE_NAME_INFORMATION nameInfo = nullptr; if (NT_SUCCESS(FltGetFileNameInformation(Data..
NTFS vs ReFS - 파일 필터 드라이버 개발 시 차이점 ✅ 기본 개념 Microsoft의 FltMgr 기반 미니필터 드라이버는 NTFS와 ReFS 모두에서 작동할 수 있지만, ReFS는 구조적 차이로 인해 필터링 동작이 제한됩니다. NTFS를 기준으로 작성된 드라이버는 ReFS에서 정상 작동하지 않거나 무시될 수 있습니다. 📌 NTFS vs ReFS - 주요 차이점 요약 항목 NTFS ReFS 필터링 범위 Pre/Post Callbacks 대부분 지원 일부 IRP만 필터링 가능 저널링 구조 $Log..
SSD/NVMe 환경에서 ReFS 사용할까? NTFS와 비교 정리 1. ReFS란 무엇인가? ReFS (Resilient File System)는 Microsoft가 설계한 차세대 파일 시스템입니다. NTFS의 한계를 극복하고 데이터 무결성, 자동 복구, 대용량 저장소 지원 등을 목표로 개발되었습니다. 무결성 검증: 체크섬 기반으로 데이터 오류 자동 복구 자동 단편화 방지: 디스크 성능 유지 Snapshot, Block Cloning 등 고급 기능 내장 파일/볼륨 크기 제한이 사실상 없음 2. NTFS와 다른 점은? 항목 NTFS ReFS 출시 시기..

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..

2편: SAFE_DELETE / SAFE_DELETE_ARR – 안전한 포인터 메모리 해제✅ 문제 상황C++에서는 new로 생성한 메모리를 반드시 delete로 해제해야 합니다. 하지만 실수로 중복 delete를 하거나 delete 후 포인터를 그대로 두면, 이중 해제 (double free) 나 뎅글링 포인터 (dangling pointer) 문제가 생깁니다.🧯 해결 방법: SAFE_DELETE 매크로#ifndef SAFE_DELETE#define SAFE_DELETE(var) { if ( (var) != nullptr ) delete (var); (var) = nullptr; }#endif#ifndef SAFE_DELETE_ARR#define SAFE_DELETE_ARR(var) { if ( (va..
- Total
- Today
- Yesterday
- CMake
- Thread
- 성산블루버블
- 패턴
- 블루버블다이브팀
- Windows
- 현포다이브
- C
- Linux
- 윈도우
- C++
- DLL
- C# 고급 기술
- 서귀포블루버블
- 블루버블
- 제주도
- ReFS
- 디자인패턴
- C#.NET
- C#
- 스쿠버다이빙
- ip
- OpenSource
- 암호화
- 서귀포
- PowerShell
- Build
- 리눅스
- 울릉도
- 블루버블다이빙팀
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |