ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [CS] 메모리란?
    CS 2023. 4. 17. 09:20

    1. 컴퓨터에서 메모리란?

    - 프로그램에서 데이터를 저장할 수 있는 공간

     

    2. 메모리의 종류와 할당 방식

    전역변수 Static 변수 - 데이터 영역(프로그램 실행 시 로딩, 별로 안 중요함)

    프로그래머 할당(런 타임에 크기 결정) - 힙(Heap) 영역

    지역변수, 매개변수(컴파일 타임에 크기 결정) - 스택(Stack) 영역

    // 힙에 데이터 할당
    void testHeap(){
    	class A = new class();
    }
    
    // 스택에 할당
    void testStack(){
    	class B;
    }

    new로 Heap에 할당한 메모리가 중요하다! (스택에 할당 되는 것은 나가면 바로 죽음)

     

    3. 메모리가 중요한 이유

    - 메모리는 무한하지 않다. 즉 관리가 필요하다.

    - 프로그램이 종료되면, 할당된 모든 메모리는 날라간다. (정확히는 OS에 반환)

    => 서비스 하고 있는 유저의 데이터가 날라가는 데, 복구를 할 수 없다.

    - 메모리에 값을 읽고 쓰는 행위는 반드시 동시에 일어나선 안된다.

    => 데이터 무결성 (데이터가 깨질 수 있다.)

     

    4. 메모리의 저장 매체

    - 파일 : 메모리의 데이터를 프로그램에서 직접 하드 디스크에 기록

    - 데이터베이스 : 메모리의 데이터를 DBMS등의 관리 시스템을 통해 기록

    - 레지스트리 : 운영체제(OS)의 설정 및 정보가 저장되는 데이터베이스

     

    5. 데이터 무결성

    - 프로그램에서 동시에 한 메모리를 쓸 경우 데이터가 깨지는 현상

    - 순차적인 프로그램에서는 데이터가 깨질 수 없음

    - 병렬적으로 데이터에 접근하는 multi thread 환경에서 반드시 고려해야 하는 요소

    - LOCK / UNLOCK 키워드로 관리 가능

     

    6. 결론

    - 프로그래머라면 반드시 메모리에 대한 이해가 필요하다.

    - 메모리는 크게 데이터 영역, 힙, 스택 영역이 있다.

    - 메모리는 영구적이지 않으니 저장 매체에 기록해야 다시 꺼내 쓸 수 있다.

    - 데이터 무결성에 대해 항상 주의하자.

    'CS' 카테고리의 다른 글

    [CS] 공통 코드  (0) 2023.05.08
    [CS] 쓰레드에 대한 이해와 활용  (0) 2023.05.01
    [CS] 저장 프로시저(Stored Procedure)의 정의와 활용  (1) 2023.04.27
    코딩의 DRY 법칙  (0) 2023.04.24
    [CS] Http통신과 Socket통신의 차이점  (0) 2023.04.19
Designed by Tistory.