디시인사이드 갤러리

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

갤러리 본문 영역

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

발명도둑잡기(118.235) 2025.07.13 06:00:02
조회 72 추천 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/14 - -
2872023 옥수수 밭..ㅇㅅㅇ 헤르 미온느갤로그로 이동합니다. 07.16 39 0
2872022 태연 ㅇㅅㅇ 헤르 미온느갤로그로 이동합니다. 07.16 34 0
2872021 하루 한 번 헤르미온느 찬양 헤르 미온느갤로그로 이동합니다. 07.16 40 1
2872020 존버 하다가 스위치2 살까 민생소비쿠폰으로 한 10월 31 저녁까지. 넥도리아(175.196) 07.16 45 0
2872017 건설과 직원들 10분 전에 상담왔는데, 무시하고 밥먹으러가 버려 넥도리아(175.196) 07.16 36 0
2872015 내가 10초 에서 9초 사이에 뛰는 이유 [1] 넥도리아(175.196) 07.16 44 0
2872013 ai 로 인해 웹사이트는 이제 돈이 안될거야. ㅇㅇ(183.101) 07.16 72 0
2872007 간단한 웹사이트 만들라는데 질문좀 [2] 프갤러(1.238) 07.16 92 0
2872005 개발자 연봉 거품맞음 프갤러(183.101) 07.16 89 0
2872003 셰프는 개발자고 장사꾼은 사업가다 프갤러(183.101) 07.16 41 0
2872001 개빌자 취준 브이로그 보는데 asdqwezxc갤로그로 이동합니다. 07.16 92 0
2871999 요즘 개발자 거의 아예 안 뽑는다던데 [2] hrin(220.120) 07.16 170 0
2871998 헬스하고 술먹고 과로하니까 몸살 올 것 같다 [3] hrin(220.120) 07.16 56 0
2871996 자동차 개발자가 되어줘 [1] CANON갤로그로 이동합니다. 07.16 80 0
2871994 어느 면접관 썰.. [3] cvs.갤로그로 이동합니다. 07.16 360 0
2871992 리눅스 데스크탑이 왜 처망했는지 이제야 알겠네 [1] ㅇㅇ(220.76) 07.16 99 1
2871990 Ada 프로그래밍: 1. 다중 통신 및 비동기 제어: select 문 루비갤로그로 이동합니다. 07.16 55 0
2871988 디시콘 2개 쑤니깐 개웃기지않냐? [3] 헬마스터갤로그로 이동합니다. 07.16 73 0
2871987 곤충중에 섹스하다 한녀에게 먹히는 한남들이 많구나 [3] 헬마스터갤로그로 이동합니다. 07.16 75 0
2871985 그래도 한국에서 태어나서 다행임 아스카영원히사랑해갤로그로 이동합니다. 07.16 91 0
2871984 ㅋㅋ 드디어 실제 구현에 Ada 코드 나올 차례이다 [3] 루비갤로그로 이동합니다. 07.16 66 0
2871983 Nimf 구현 및 설계: 2.1 아키텍처의 선택: 서버 모델의 설계 우위 루비갤로그로 이동합니다. 07.15 63 0
2871982 우테코 다들 공부하고 감? 프갤러(121.131) 07.15 53 0
2871981 Nimf 구현 및 설계: 2. 다국어 IME의 핵심 아키텍처 루비갤로그로 이동합니다. 07.15 45 0
2871980 현업에서 C++만 쓰다가 AI 때문에 파이썬 공부 중인데 [1] 프갤러(211.202) 07.15 102 0
2871979 Nimf 구현 및 설계: 1.5 콘솔 (console) 루비갤로그로 이동합니다. 07.15 56 0
2871977 Nimf 구현 및 설계: 1.4 웨이랜드 (Wayland) 루비갤로그로 이동합니다. 07.15 51 0
2871976 Nimf 설계 및 구현: 1.3 Qt IM 모듈 루비갤로그로 이동합니다. 07.15 43 0
2871974 Nimf 설계 및 구현: 1.2 GTK IM 모듈 루비갤로그로 이동합니다. 07.15 60 0
2871973 부트캠프 추천 부탁드립니다 프갤러(58.237) 07.15 216 1
2871971 내친구 피에로 보시게 카드캡터체리갤로그로 이동합니다. 07.15 49 0
2871969 컴과 1학년인데 앞으로 뭐 할지 모르겠음... [1] ㅇㅇ갤로그로 이동합니다. 07.15 394 0
2871967 프갤이 쓰레기장이니까 [1] 아스카영원히사랑해갤로그로 이동합니다. 07.15 83 0
2871965 신입쩌리 오늘 한 일. [2] cvs.갤로그로 이동합니다. 07.15 92 0
2871962 챗티씨는 이재명씨발 민생지원금 동의 안하시더라 [6] 헬마스터갤로그로 이동합니다. 07.15 124 0
2871960 전국민 잘살기를하면 [4] 개멍청한유라갤로그로 이동합니다. 07.15 68 0
2871959 냥덩아 너 혼나야겠다 개멍청한유라갤로그로 이동합니다. 07.15 54 0
2871958 잘 가르치는 강사면 강사도 좋지 책이 무조건 좋은건 아님 [1] ㅆㅇㅆ(124.216) 07.15 77 0
2871957 개발자연봉 1400억?! [4] 개멍청한유라갤로그로 이동합니다. 07.15 114 0
2871955 윤석열이 망친 경제, 이재명 정부가 정상화 한다 [1] 야옹아저씨갤로그로 이동합니다. 07.15 73 0
2871954 책 vs 강의 뭐가 더 좋을까요? [9] 궁금해요(121.171) 07.15 98 0
2871953 대기업 중견기업 다니는 애들아 질문있다 [36] ㅇㅇ갤로그로 이동합니다. 07.15 138 0
2871952 데이터 보는 대시보드 툴 뭘 써도 만족이 안되네 [5] 뉴진파갤로그로 이동합니다. 07.15 53 0
2871949 쪽바리 it가 병신인게 루비같은걸 좋다고 써재끼고 있음 [2] 프갤러(110.8) 07.15 86 0
2871948 중급, 고급, 특급개발자가 도대체 무슨 뜻임? [6] 프갤러(39.7) 07.15 90 0
2871947 문재앙 시대의 피해자 원종이에게 바치는 자장가⭐+ [2] ♥지나가던길냥덩♥갤로그로 이동합니다. 07.15 76 0
2871946 잘나간다는 기사에는 쌍욕뿐이고 [6] 헬마스터갤로그로 이동합니다. 07.15 74 0
2871945 나님 누엇어영⭐+ [1] ♥지나가던길냥덩♥갤로그로 이동합니다. 07.15 49 0
2871944 삼성 sw는 정년몇살까지냐 [6] 프갤러(175.214) 07.15 278 0
2871943 이 갤에 신입이 있는게 신기하다 [2] 박민준갤로그로 이동합니다. 07.15 97 0
뉴스 ‘방판뮤직 : 어디든 가요’, 김현정 성량에 스피커 터졌다! 명불허전 원조 디바 가창력 ‘그녀와의 이별’ 디시트렌드 07.19
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2