2024.02.19 - 과제
1. 메타버스란 무엇인가?
1.1 메타버스의 정의
Metaverse.
'가공, 추상'을 뜻하는 그리스어 Meta와 '세계'를 뜻하는 영단어 Universe의 합성어.
일반적으로는 현실과 가상의 경계가 희미해진 세계 혹은 공간으로 알려져 있다.
그러나 메타버스 = 가상현실 은 아니다.
메타버스는 고도화한 실감기술을 매개로 현실세계와 가상세계가 적극적으로 상호작용하는 방식 그 자체를 말한다.
1.2 Virtual Reality(VR)
가상현실.
컴퓨터 시스템 등을 사용해 인공적인 기술로 만들어 낸, 실제와 유사하지만 실제가 아닌 어떤 특정한 환경이나 상황 혹은 그 기술 자체를 말한다. 현실세계와 가상세계를 연결하는 강력한 실감기술 중 하나이다.
1.3 Augmented Reality(AR)증강현실.
현실세계 위에 스크린과 같은 디스플레이 장비를 이용해 각종 가상의 사물과 인터페이스를 겹쳐 올리는 기술을 말한다.
1.4 메타버스와 게임의 연관성
게임과 메타버스는 모두 가상 공간에서 자신의 아바타를 이용하여 사회,경제,문화 활동을 한다는 공통점을 가지고 있다.
그래픽의 발전으로 현실감 있는 가상세계가 생기고,
커뮤니티 기능이 생기며 게임은 하나의 거대한 가상현실 플랫폼이 됨.
이용자 들이 원하는 요소를 추가하다 보면 게임의 방향성은 메타버스로 향하게 된다. 메타버스 기기인 VR기기에 맞춰 게임들이 개발되고 있고, 가상세계를 구현하기 위한 그래픽 기술이 개발되고 있다.
2. 데이터 타입
2.1 데이터의 크기
컴퓨터에 저장되는 정보의 가장 작은 단위는 bit. (0과 1표현)
1 byte는 8bit의 크기를 가진다.
2.2 여러가지 데이터 타입
타입 | 정수형 | 문자형 (정수형) |
실수형 | 논리형 | ||||
이름 | byte | short | int | long | char | float | double | boolean |
크기 | 1byte | 2byte | 4byte | 8byte | 1byte | 4byte | 8byte | 1byte |
*boolean형은 1bit면 표현할 수 있지만, 데이터를 다루는 최소 단위가 1byte 이므로 그 크기가 1byte이다.
3. 메모리 영역
3.1 프로그램을 실행하는 과정
프로그램이 실행되는 동안 CPU가 코드를 처리하려면 메모리에 명령어와 데이터들을 저장해야한다.
운영체제는 프로그램 실행 요청을 받으면 코드(명령어와 데이터)를 저장할 수 있는 메모리 공간을 할당해준다.
이 메모리 공간은 코드, 데이터, 힙, 스택의 4가지 영역으로 구성되어 있으며 각각의 공간에 저장되는 데이터가 다르다.
3.2 4가지 메모리 영역
- 코드(Code) 영역
- 우리가 작성하는 코드가 저장되는 메모리 영역.
- 코드 내에 있는 제어문, 함수, 상수 등이 이 영역에 저장된다.
- CPU는 코드 영역에 저장된 명령어들을 하나씩 가져가 실행하게 됨
- 데이터(Data) 영역
- 전역 변수, 정적 변수(static)가 저장되는 메모리 영역.
*전역 변수(global variable)는 함수 외부에서 선언되는 변수이며 프로그램 전체에서 사용 가능한 변수
*정적 변수(static variable)는 프로그램이 종료 되기 전까지 메모리가 소멸되지 않는 변수
- 프로그램 시작과 동시에 할당되고 프로그램 종료 시 메모리 소멸됨
- 힙(Heap) 영역
*이 공간에 메모리를 할당 하는 것을 동적 할당(Dynamic Memory Allocation)이라 함.
- 동적 할당된 변수들이 저장된다.
- 스택 영역과 같은 공간에서 처리되며, 낮은 메모리 주소에서 높은 주소로 할당된다.
- 스택(Stack) 영역
- 함수 호출 시 생성되는 지역 변수, 매개 변수가 저장되는 영역.
*지역변수(local variable)는 중괄호 내부, 함수의 매개변수에서 사용되는 변수
*매개변수(intervening variable)는 서로 종속인 변수들을 묶어주는 변수
- 함수 시작과 함께 변수들이 생성되었다가 종료 시 반환된다.
- 힙 영역과 같은 공간에서 처리되며 높은 주소에서 낮은 주소로 할당 된다.
3.3 힙/스택 오버플로우
힙과 스택 영역은 같은 공간에서 처리되기 때문에 각자의 영역을 침범하게 되면 오버플로우가 발생한다.
- 스택 오버플로우
: 재귀문을 돌리면서 메모리를 계속 할당하다가 제한량 보다 많은 할당이 이루어지는 경우 등에 발생한다.
- 힙 오버플로우
: 사용자가 엄청나게 큰 데이터를 할당하려는 경우 등에 발생한다.