왜 메모리를 알아야 할까❓❓
메모리란 사실 C# 을 배워야 하기 때문에 알아야 하는게 아닌
C#이 아닌 모든 프로그램의 근간이 되는 개념이기 때문이다
이말은 즉슨, 모든 프로그램은 공짜는 없다. 메모리를 지불한다. 메모리의 구조를 안다는 것은
코드의 동작원리를 아는 것과 같다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Player : MonoBehaviour
{
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GameManager : MonoBehaviour
{
private void Start()
{
Player player = new Player(); // 객체를 만듬.
// 객체를 만들었다는 것은 메모리를 지불했다는것을 뜻한다.
// 근본적인 내용은 단 하나도 공짜가 없다는 뜻이다.
}
}
우리가 프로그래밍을 하면 우리의 내용들이 램안에서 자리를 빌려 사용하고 있다
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Player : MonoBehaviour
{
int HP = 100;
int attackDamage = 10;
public void Damage(int damage)
{
}
}
위와같이 매번 코드를 짤때 선언하는 변수들은 메모리구조의 코드영역에 들어가게 된다.
스택 영역에서는
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GameManager : MonoBehaviour
{
private void Start()
{
Player player = new Player();
player.Damage(10);
}
}
이런식으로 Player.Damage(10); 라는 함수를 실행하면 스택영역에 할당 되며 그 함수의 지역( "}" ) 을 벗어나게되는 순간 스택영역에서 살아지게 된다