المهارات memory-safety-patterns
🛡️

memory-safety-patterns

آمن

메모리 안전성 패턴 구현

متاح أيضًا من: wshobson

Rust, C++, C에서 검증된 메모리 안전성 패턴을 사용하여 충돌 없는 안전한 코드를 작성하세요. RAII, 소유권 모델, 스마트 포인터를 통해 메모리 ��수, use-after-free, 버퍼 오버플로우를 방지하세요.

يدعم: Claude Codex Code(CC)
🥉 73 برونزي
1

تنزيل ZIP المهارة

2

رفع في Claude

اذهب إلى Settings → Capabilities → Skills → Upload skill

3

فعّل وابدأ الاستخدام

اختبرها

استخدام "memory-safety-patterns". C++에서 파일을 열 때 메모리 누수를 방지하려면 어떻게 하나요?

النتيجة المتوقعة:

스마트 파일 래퍼 클래스 또는 std::fstream과 함께 RAII를 사용하세요. ��외가 발생하더라도 객체가 소멸될 때 파일이 자동으로 닫힙니다. 예제: std::fstream file("data.txt"); - 소멸자가 자동으로 정리를 처리합니다.

استخدام "memory-safety-patterns". Rust���서 Box, Rc, Arc의 차이점은 무엇인가요?

النتيجة المتوقعة:

Box<T>는 힙 할당으로 단일 소유권을 위해 사용합니다. Rc<T>는 공유 소유권(단일 스레드)을 위해 사용합니다 - 복제 시 참조 횟수를 증가시킵니다. Arc<T>는 스레드 간 원자적 공유 소유권을 위해 사용합니다 - 스레드 안전 참조 카운팅입니다.

استخدام "memory-safety-patterns". 범위 검사를 안��하게 처리하려면 어떻게 하나요?

النتيجة المتوقعة:

C++에서 std::out_of_range를 throw하는 std::vector::at()을 사용��거나 배열 뷰를 위해 std::span을 사용하세요. Rust에서 []로 인덱싱하면 범위를 벗어날 때 패닉이 발생하고, .get()은 안전한 처리를 위해 Option을 반환합니다. 수동 범위 검사를 피하기 위해 반복자를 선호하세요.

التدقيق الأمني

آمن
v1 • 2/25/2026

All 56 static findings are false positives. The skill contains only documentation and code examples for memory safety patterns. Thread spawning (thread::spawn) was misidentified as process spawning. Markdown backticks for code formatting were misidentified as shell execution. Documentation URLs and debugging tool references are legitimate educational content.

2
الملفات التي تم فحصها
640
الأسطر التي تم تحليلها
0
النتائج
1
إجمالي عمليات التدقيق
لا توجد مشكلات أمنية
تم تدقيقه بواسطة: claude

درجة الجودة

38
الهندسة المعمارية
100
قابلية الصيانة
87
المحتوى
33
المجتمع
100
الأمان
100
الامتثال للمواصفات

ماذا يمكنك بناءه

시스템 프로그래밍

메모리 손상 취약점이 없는 운영 체제, 드라이버 또는 임베디드 소프트웨어를 작성하세요.

보안 중요 애플리케이션

메모리 안전성이 필수인 애플리케이션을 구축하세요: 암호화, 네트워크 서비스, 파일 처리.

레거시 코드 현대화

C/C++ 코드베이스를 리팩토링할 때 메모리 안전성 패턴을 적용하여 버그를 줄이고 신뢰성을 높이세요.

جرّب هذه الموجهات

기본 RAII 구현
파일 핸들 클래스를 위해 C++에서 RAII 패턴을 구현하는 방법을 보여주세요. 적절한 복사/이동 의미론을 포함하고 객체가 범위를 벗어날 때 파일이 자동으로 닫히도록 하세요.
Rust 소유권 예제
Rust 소유권이 use-after-free 버그를 방지하는 방법을 설명해주세요. 참조를 보유하는 구조체의 예제를 보여주세요. 수명 주석과 Box, Rc, Arc를 사용할 때를 포함하세요.
C 리소스 관리
파일을 열고, 메모리를 할당하고, 데이터를 처리하는 C 함수를 작성하세요. goto-cleanup 패턴을 사용하여 오류 시 모든 리소스가 적절�� 해제되도록 하세요.
스레드 안전 카운터
원자력 및 뮤텍스를 사용하는 C++와 Arc 및 Mutex를 사용하는 Rust에서 스레드 안전 카운터를 구현하세요. 각 언어가 데이터 경쟁을 방지하는 방법을 보여주세요.

أفضل الممارسات

  • 자동 정리를 보장하기 위해 수동 메모리 관리보다 RAII와 스마트 포인터를 선호하세요
  • Rust에서 빌림 검사기와 싸우지 말고 사용하세요 - 실제 버그를 방지합니다
  • 개발 중 메모리 문제를 조기에 포착하기 위해 AddressSanitizer와 Valgrind를 실행하세요

تجنب

  • 스마트 포인터 대신 C++에서 원시 포인터 사용 - 누수와 댕글링 포인터로 이어짐
  • 댕글링 참조에 대한 컴파일러 경고 무시 - 실제 버그를 나타냄
  • 안전한 코드로부터 격리하고 이유를 문서화하지 않고 Rust에��� unsafe 블록 사용

الأسئلة المتكررة

RAII란 무엇이며 왜 중요한가요?
RAII(Resource Acquisition Is Initialization)는 리소스 수명을 객체 수명에 연결합니다. 객체가 범위를 벗어나면 소멸자가 실행되고 리소스를 해제합니다. 이는 누수를 방지하고 예외가 발생하더라도 정리를 보장합니다.
Rust는 메모리 버���를 어떻게 방지하나요?
Rust는 각 값이 정확히 하나의 소���자를 갖는 소유권 시스템을 사용합니다. 소유자가 범위를 벗어나면 값이 삭제됩니다. 빌림 검사기는 컴파일 타임에 이 규칙을 강제하여 use-after-free, 이중 해제, 데이터 경쟁을 방지합니다.
C++에서 언제 스마트 포인터를 사용해야 하���요?
단일 소유권에는 unique_ptr을 사용합니다(기본 선택). 여러 코드 부분에서 동일한 객체를 소유해야 할 때 shared_ptr을 사용하세요. shared_ptr 그래프의 순환을 끊기 위해 weak_ptr을 사용하세요. C 코드와 인터페이스하지 않는 한 원시 포인터를 피하세요.
C에서 goto-cleanup 패턴이란 무엇인가요?
모든 리소스 할당이 시작 부분에서 발생하고 단일 정리 라벨이 역순으로 모든 것을 해제하는 패턴입니다. 이는 함수�� 어느 지점에서든 오류가 발생하더라도 리소스가 해제되도록 보장하여 누수를 방지합니다.
메모리 안전성을 위해 Rust와 C++ 중 어떻게 선택하나요?
Rust는 소유권과 빌림을 통해 더 강력�� 컴파일 타임 보장을 제공합니다. C++는 더 많은 규율이 필요하지만 더 많은 제어를 제공합니다. 메모리 안전성이 중요한 새 ��로젝트에는 Rust를 선택하세요. 기존 C++ 코드베이스와 인터페이스하거나 ���대 성능이 필요할 때 C++를 사용하세요.
어떤 디버깅 도구가 메모리 문제를 포착하는 데 도움이 되나요?
AddressSanitizer(ASan)은 use-after-free, 누수, 버퍼 오버플로우를 포착합니다. Valgrind는 C/C++의 메모리 오류를 감지합니다. Rust Miri는 정의되지 않은 동작을 감지합니다. ThreadSanitizer는 데이터 경쟁을 찾습니다. 개발 중 및 CI 파이프라인에서 이 도구들을 사용하세요.

تفاصيل المطور

بنية الملفات