디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

D 언어 메모리 실수앱에서 작성

발명도둑잡기(118.235) 2025.07.13 06:00:02
조회 74 추천 0 댓글 1

좋은 질문입니다.
D 언어는 C/C++ 계열 언어지만, 가비지 콜렉션(GC)과 수동 메모리 관리 둘 다 가능혼합형 시스템 언어입니다.

✅ 요약

D 언어는 기본적으로 가비지 콜렉션이 내장되어 있지만,
수동 메모리 관리도 가능하고, GC를 완전히 끌 수도 있습니다.
즉, C보다 메모리 관리가 훨씬 안전하고 유연합니다.

D 언어의 메모리 관리 방식 요약

방식가능 여부설명✅ 가비지 콜렉션(GC)기본기본 new/delete는 GC 기반으로 작동✅ 수동 메모리 관리가능malloc/free, core.memory.GC 제어 가능✅ GC 비활성화가능@nogc 함수나 전체 프로그램 단위로 GC 사용 안 함✅ RAII 지원있음C++처럼 생성자/소멸자 기반 자원 해제 가능✅ 스코프 기반 해제(scope)있음scope 키워드로 자동 해제 유도✅ 스마트 포인터있음RefCounted, Unique 등 제공

기본 예시: GC 사용

class Foo { int[] data; } void main() { auto f = new Foo(); // GC로 할당 }

수동 할당 예시 (C 스타일)

import core.stdc.stdlib; void main() { int* p = cast(int*) malloc(int.sizeof * 10); // ... free(p); // 수동 해제 }

@nogc 함수 예시

@nogc void fastFunc() { // GC 사용 불가 → 안전하고 빠르게 동작 }

@nogc는 함수 내부에서 GC를 사용할 수 없도록 강제합니다.

컴파일러가 GC 사용 여부를 정적으로 검사합니다.

scope 변수 (스택 해제 자동)

void main() { scope(exit) writeln("Leaving scope"); // 스코프 끝날 때 실행 }

RAII 스타일 코딩이 가능해, 누수 위험이 적음.

D 언어가 C보다 실수를 줄이는 이유

항목D 언어C 언어GC 기본 제공✅❌RAII / 소멸자 지원✅❌@safe / @nogc 체크✅ 정적 검사❌ 없음Nullable 포인터 구분부분적❌ 없음범위 기반 해제 (scope)✅❌소멸자 자동 호출✅ 클래스/struct 지원❌ 수동스마트 포인터✅ 표준 제공❌ 없음

⚠+ 주의점

D의 GC는 정확하고 일관되지만, 실시간 시스템이나 임베디드에는 부적합할 수 있음.

D는 C처럼 완전히 낮은 수준의 수동 관리도 가능하지만, 퍼포먼스 민감한 코드에서는 신중한 설계 필요.

결론

D는 메모리 관리에 있어서 "유연성과 안전성" 모두를 추구하는 언어입니다.

C보다 실수를 덜 하게 설계되었으며,

필요하면 완전 수동 관리,

기본적으로는 GC 기반 자동 관리,

@nogc, scope, RAII, 스마트 포인터 등 다양한 도구로 메모리 버그를 줄일 수 있는 환경을 제공합니다.

원하신다면 @nogc, RAII, 또는 GC-free 구조로 D로 작성된 예제도 만들어 드릴게요.


"도둑은 집을 떠나며 주인을 욕한다" - 러시아 속담
송대관-해뜰날
https://youtu.be/DUsVXmywSCk

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 모태 솔로도 구제해 줄 것 같은 연애 고수 스타는? 운영자 25/07/21 - -
AD 곧 휴가!! 홈캉스, 바캉스 SALE 운영자 25/07/21 - -
2872900 강박증 심하면 언어 갈수록 흩트러지는 거 스트레쓰 받겠지 [3] 발명도둑잡기갤로그로 이동합니다. 07.19 43 0
2872898 네이버 AI가 왜 깔아져 있지? [2] 넥도리아(220.74) 07.19 55 0
2872897 이재명 대통령님께 당부드리는 흡연자 저격 아버지 포함 전자담배 빼고, 넥도리아(220.74) 07.19 86 0
2872896 애초에 수치 계산할때 malloc쓰라는 이유가 연속 메모리할당 [10] ㅆㅇㅆ(124.216) 07.19 109 1
2872895 ❤✨☀⭐⚡☘♥+나님 시작합니당♥+☘⚡⭐☀✨❤ [2] ♥냥덩이는충전중♥갤로그로 이동합니다. 07.19 53 0
2872894 결국 빤스런했노 ㅋㅋ 애초에 내가 씨발 초전도체 물성 계산한다고 CPP [3] ㅆㅇㅆ(124.216) 07.19 93 0
2872892 고수준에서만 작업하는 애들은 [8] 루도그담당(118.235) 07.19 130 0
2872891 애초에 ecs지피티한테 짜달라하면 맵기반으로 ㅆㅇㅆ찡갤로그로 이동합니다. 07.19 42 0
2872889 현업들한테 질문 [2] 프갤러(49.169) 07.19 59 0
2872888 요즘은 지가 쳐모른다고 지피티 운운하는 새끼들 개패고싶네 [4] ㅆㅇㅆ찡갤로그로 이동합니다. 07.19 78 0
2872887 지가 모른다고 지피티ㅋㅋ 저새낀 병신인가 ㅆㅇㅆ찡갤로그로 이동합니다. 07.19 29 0
2872885 한남 스윗하니까 한녀들이 1등시민 된거지 ㅇㅅㅇ 류류(118.235) 07.19 33 1
2872884 CPP에서 malloc 쓰지말란건 일반적으로 고수준 에서 쓰지말란거지 [6] ㅆㅇㅆ(124.216) 07.19 118 0
2872883 웹 개발 커미션 받는데 별의 별 사람이 다 있음 [2] ㅇㅇ갤로그로 이동합니다. 07.19 61 0
2872882 1분삭 ㅇㅇ(106.101) 07.19 36 0
2872881 안중근이 일본에서는 테러리스트 취급하듯이 [2] 류류(118.235) 07.19 43 2
2872878 최원종 보다 더 똑똑한애들 ㅇㅅㅇ [1] 류류(118.235) 07.19 76 3
2872876 최원종이 똑똑한가야 ㅇㅅㅇ 류류(118.235) 07.19 37 0
2872874 우측 엉덩이 실 점액낭종 수술 해주는 곳 없냐? 넥도리아(220.74) 07.19 24 0
2872873 서연고는 동네 개만도 못한대학이였구나 ㅇㅅㅇ 류류(118.235) 07.19 42 0
2872871 cpp 노베 강좌 추천좀 프갤러(116.121) 07.19 39 0
2872869 보통 일본 어디에 핵 떨어졌나 모르면 [5] 아스카영원히사랑해갤로그로 이동합니다. 07.19 66 0
2872868 아이폰 텔레그램 쓰는사람? [5] 프로이트갤로그로 이동합니다. 07.19 93 0
2872867 C# 코드 다 쌩으로 드러난다고 들었는데 [2] ㅇㅇ(106.241) 07.19 88 0
2872866 책을 좀 쳐 읽고 댓달아라 106.101 이 허언증 리플리 증후군아 [1] ㅆㅇㅆ(124.216) 07.19 53 0
2872865 컴공은 ai 박사 아니면 답 없음 [5] 프갤러(175.193) 07.19 116 0
2872864 malloc이 금기긴하지만 CPP 내부 구현도 malloc쓰는게 많다 [2] ㅆㅇㅆ(124.216) 07.19 75 0
2872863 뉴스) 개발자 현실 한국인 안뽑을래요 프갤러(175.193) 07.19 49 0
2872862 뭐 C하는 사람이 없다 잘하는 사람이 없다라는 회사 특 프갤러(106.101) 07.19 55 0
2872861 뭐든지 방점을 찍는게 제일 어렵다 [1] ㅇㅇ(106.241) 07.19 39 0
2872859 CPP는 하라면 할 수 있는데 한번 코딩하면 심적으로 힘들어서 관둠 [8] ㅆㅇㅆ(124.216) 07.19 82 0
2872858 나한테 Pre heating station 예열기 7-inch 가 필요? 넥도리아(220.74) 07.19 25 0
2872856 나는 저수준 언어 지능 딸려서 못하겠던데 [2] ㅆㅇㅆ(124.216) 07.19 76 0
2872855 자바땔감 컴공의 현실 프갤러(106.101) 07.19 91 0
2872854 코틀린 뉴비인데 빨강글짜왜그런거임? [8] 프갤러(115.21) 07.19 59 0
2872853 아 메인보드 어쩌냐 흠.. [8] 나르시갤로그로 이동합니다. 07.19 53 0
2872852 c++빨러도 github 코드 좀 올려봐라 나르시갤로그로 이동합니다. 07.19 36 0
2872851 러빨러 러스트 코드 올리는거 한번도 못봄 [2] 나르시갤로그로 이동합니다. 07.19 37 0
2872850 개발은 남의거 만드는것보다 자기거 만드는게 나르시갤로그로 이동합니다. 07.19 39 0
2872849 제대로 C랑 CPP 하는 애들이 없다는거지. 솔직히 그건 팩트기도 하고 ㅆㅇㅆ(124.216) 07.19 66 0
2872847 요즘 컴공 C 안 가르친다는 개소리는 어디서 나오는거임? [1] ㅇㅇ(106.241) 07.19 145 0
2872845 지원금 어차피 기센놈 목소리 큰놈이 먼저받게되어있음 [1] 류류(121.160) 07.19 48 1
2872844 지원금 내가 1빠로 받을거야 ㅇㅅㅇ 류류(121.160) 07.19 39 1
2872838 슬슬 자기수련을 위해 떠날채비를할생각입니다. [1] 헬마에스트로(58.225) 07.19 91 0
2872836 리조트 도착했는데 옆동에서 총싸움 벌어졌다 [1] 발명도둑잡기갤로그로 이동합니다. 07.19 50 0
2872835 도도도 도도도도로로롱~❤+ [3] ♥냥덩이의고독♥갤로그로 이동합니다. 07.19 46 0
2872834 어 딜도 망가 !! [3] ♥냥덩이의고독♥갤로그로 이동합니다. 07.19 50 0
2872833 모스탄 소말리같은 새끼 [1] 발명도둑잡기갤로그로 이동합니다. 07.19 41 0
2872831 Cada 오늘 재설계 한거 ㅋㅋ 나르시갤로그로 이동합니다. 07.19 31 0
2872829 앱출시할때 비공개 테스트 이거 어떻게 해야돼?? 프갤러(119.192) 07.19 30 0
뉴스 [조선의 사랑꾼] ‘늦깎이 아빠’ 최성국, 자연임신 둘째 성별 ‘딸’ 공개! 김국진 ‘촉’ 적중…“흐름이란 게 있어!” 디시트렌드 07.22
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2