[CSAPP 9장 완전 정복] 9.11~9.12 C 프로그램에서 자주 발생하는 메모리 버그와 9장 전체 요약

2025. 4. 26. 16:11·크래프톤 정글/컴퓨터구조(CSAPP)

C 프로그램에서 자주 발생하는 메모리 버그와 9장 전체 요약

이번 포스트에서는 C 프로그램을 작성할 때 자주 만나는 메모리 관련 버그들을 살펴보고, 마지막으로 9장 전체 핵심 내용을 정리해보겠습니다.

 

 

C에서 흔히 발생하는 메모리 버그

  • 메모리 누수 (Memory Leak)
    • malloc()으로 할당한 메모리를 free()하지 않아 점차 메모리가 소모되는 문제
  • 댕글링 포인터 (Dangling Pointer)
    • 이미 해제된 메모리 영역을 여전히 접근하려고 시도하는 위험한 상황
  • 잘못된 메모리 참조 (Invalid Memory Reference)
    • 자신에게 허용되지 않은 메모리 공간을 읽거나 쓰는 것 (예: 경계를 초과한 접근)
  • 중복 해제 (Double Free)
    • 이미 해제된 메모리를 다시 free()하는 오류
  • 버퍼 오버플로우 (Buffer Overflow)
    • 배열 범위를 벗어나 다른 메모리 영역을 침범하는 문제 (보안 취약점 유발)

 

메모리 버그를 줄이는 방법

  • free() 후에는 포인터를 NULL로 설정하기
  • Valgrind 같은 메모리 디버깅 도구 적극 활용하기
  • 배열/포인터 연산 시 항상 경계 확인하기
  • 할당과 해제 책임을 명확히 코드에 명시하기

 

9장 전체 요약

마지막으로, 9장에서 배운 핵심 내용을 간단하게 정리해봅니다.

  • 가상 메모리(Virtual Memory)
    • 프로세스마다 독립된 메모리 공간 제공
  • 메모리 계층 구조
    • 캐시, 메모리, 디스크로 이어지는 계층적 접근
  • 메모리 할당과 관리
    • 동적 할당(heap), 스택, 정적 메모리 구분
  • 동적 메모리 할당기 설계
    • Placement 정책, Splitting, Coalescing, Free List 구조 이해
  • 가비지 컬렉션
    • 메모리 수거 자동화 기법과 trade-off
  • 메모리 관련 버그
    • 메모리 누수, 댕글링 포인터, 경계 초과 등 주의사항

 

마치면서

이번 편을 끝으로 9장 전체 내용을 모두 마무리했는데요. 메모리 시스템은 단순히 프로그래밍 테크닉을 넘어, 소프트웨어의 성능과 안정성을 좌우하는 핵심 기반입니다.

 

앞으로 C 프로그래밍, 시스템 프로그래밍, 성능 최적화 등을 공부할 때, 이 9장에서 다진 기초가 큰 힘이 되어줄 것이라 믿어 의심치 않습니다. 끝까지 읽어주셔서 정말 감사합니다!

저작자표시 비영리 변경금지 (새창열림)

'크래프톤 정글 > 컴퓨터구조(CSAPP)' 카테고리의 다른 글

[CSAPP 6장 완전 정복] 6.3 메모리 계층구조 제대로 이해하기  (0) 2025.04.29
[CSAPP 6장 완전 정복] 6.1~6.2 저장장치 기술과 지역성(Locality) 개념 이해하기  (0) 2025.04.28
[CSAPP 9장 완전 정복] 9.10 가비지 컬렉션(Garbage Collection) 이해하기  (0) 2025.04.26
[CSAPP 9장 완전 정복] 9.9(Part 12) 최종 정리: 간단한 동적 메모리 할당기 설계 방향  (0) 2025.04.26
[CSAPP 9장 완전 정복] 9.9(Part 11) 메모리 활용률(Peak Utilization) 측정과 평가 지표  (0) 2025.04.26
'크래프톤 정글/컴퓨터구조(CSAPP)' 카테고리의 다른 글
  • [CSAPP 6장 완전 정복] 6.3 메모리 계층구조 제대로 이해하기
  • [CSAPP 6장 완전 정복] 6.1~6.2 저장장치 기술과 지역성(Locality) 개념 이해하기
  • [CSAPP 9장 완전 정복] 9.10 가비지 컬렉션(Garbage Collection) 이해하기
  • [CSAPP 9장 완전 정복] 9.9(Part 12) 최종 정리: 간단한 동적 메모리 할당기 설계 방향
그냥사람_
그냥사람_
IT 관련 포스팅을 합니다. 크래프톤 정글 8기 정경호
  • 그냥사람_
    그냥코딩
    그냥사람_
  • 전체
    오늘
    어제
    • 글 전체보기
      • 크래프톤 정글 N
        • 로드 투 정글(입학시험)
        • CS기초(키워드, 개념정리)
        • 컴퓨터구조(CSAPP)
        • Code 정글(C언어) N
        • 마이 정글(WIL, 에세이)
      • 자료구조&알고리즘
        • 자료구조
        • 알고리즘
      • 일상
  • 블로그 메뉴

    • 홈
  • 링크

    • Github
  • hELLO· Designed By정상우.v4.10.3
그냥사람_
[CSAPP 9장 완전 정복] 9.11~9.12 C 프로그램에서 자주 발생하는 메모리 버그와 9장 전체 요약
상단으로

티스토리툴바