금융 경제 보험 정보
C++ 기초공부 - 2. Hello world는 어디에 저장이 될까 본문
이전글에서 Hello World를 출력하는 프로그램을 저장했는데 문득 궁금함이 들었다. 과연 Hello world는 어디에 저장이되는 것인가
그래서 공부해봤더니 결론부터 말하면 메모리에 저장이 되었다가 프로그램을 종료하면 자동으로 삭제가 된다.
이 개념이 바로 가장 기초적인 프로그래밍의 자료구조에 해당한다
우리가 어떤 프로그램을 만드는 다는 것은 컴퓨터에게 어떤 일을 시킨다는 행위이다. 그렇다면 그 시키는 행위는 무엇으로 구성이 되는 것인가?
예를 들어 생각해보면 내가 컴퓨터에게 '그림.jpg 파일을 블로그에 업데이트 해라' 라는 명령을 내리게 되었다. 그럼 컴퓨터는 내 명령을 따라서 그림.jpg를 블로그에 올리게 된다. 이게 하나의 프로그램이라고 생각해보자.
여기서 일어나는 일련의 일들을 쪼개 보면 "1.나의 명령" "컴퓨터의 실행" 이 되는데 컴퓨터는 사람말을 모르기 때문에 'C++'로 번역해서 말해주고, 컴퓨터는 또 이 C++를 모르기 때문에 이걸 컴파일러로 기계어로 번역해서 이해한다.
이 과정에서 명령이라는 코드 데이터가 만들어지고 이게 컴퓨터의 메모리(RAM) 에 저장이 된다. 우리가 프로그램을 실행하게 되면 컴퓨터의 OS에서는 필요한 만큼 메모리 저장공간을 할당해주고 이 명령을 받아와서 저장을 한다. 그리고 저장에 해당하는 내용을 실행하게 되는 것이다.
그래서 소스의 타입을 int, string 이렇게 나눠지는 것들도 한편으로는 변수의 타입에 따른 데이터의 타입이 정해지고 메모리를 저장하고 사용하는 양이 달라지는 것도있다.
여기서 프로그래머의 실력이 필요한 부분은 이 과정들을 얼마만큼의 메모리를 사용할 것이냐를 컨트롤 하는데 메모리 사용량에 따라서 필요한 스팩과 시간이 결정되기 때문에 누가더 최적화되어 있는 코드를 짜서 유저경험을 높이느냐가 실력의 한부분이 되는 것이다.
어쨋든 결론적으로는
1.프로그램 코드와 영구적인 데이터 파일(예: 그림.jpg)은 하드디스크 같은 비휘발성 저장소에 보관된다. HDD, SDD 등등
2.프로그램이 실행될 때, 그 프로그램의 코드와 실행에 필요한 데이터(그림.jpg 파일 등)는 RAM에 로드되어 CPU가 빠르게 접근하고 처리하게 된다.
3. 프로그램의 실행 도중에 생성되는 일시적인 데이터나 상태 정보 등도 RAM에 저장되며, 이는 프로그램이 종료되면 삭제된다.