내일배움캠프/TIL

면접관련 - 객체지향 프로그래밍과 유니티 생명주기

서보훈 2024. 12. 6. 21:05

객체지향

절차지향이 코드간의 순서를 중요시한다면 객체지향은 코드를 담고있는 객체간의 관계를 중요시하는 패러다임 입니다.

 

객체지향에서는 클래스와 인스턴스가 존재하며, 클래스는 객체에 필요한 속성과 기능에 대한 정보를 가지고 관리하며,

인스턴스는 클래스를 기반으로 실제 메모리에 할당된 내용을 뜻합니다.

 

그리고 객체지향 프로그래밍에는 캡슐화, 추상화, 상속, 다형성의 4가지 특징이 있으며

캡슐화는 접근 제어자를 통해 특정 정보를 은닉하면서 작성한 코드를 재활용하는 특징

추상화는 공통된 기능이나 속성을 묶어서 제공하는 특징

상속은 부모 클래스의 기능을 그대로 물려받으면서, 추가 기능을 구현할 수 있는 특징

다형성은 변수명, 함수명이 같아도 다른 기능을 할 수 있게되는 특징입니다.

 

생명주기

유니티의 생명주기는 별도로 호출되지 않아도 유니티 자체적으로 호출되는 함수들입니다.

 

클래스가 인스턴스화 되면 활성화된 클래스들의 Awake문을 최초 1회 작동하며 이후 OnEnable, Start 를 순차적으로 1회만 호출합니다.

이때, Awake는 인스턴스화 된 시점 단 한번만 호출되며, OnEnable은 오브젝트가 활성화 될때, Start 는 스크립트가 활성화 될 때 작동합니다.

 

이후 FixedUpdate 가 시간을 기준으로 특정 횟수만큼 호출되며, Update는 매 프레임마다 호출되게 됩니다.

LateUpdate는 Update가 종료된 직후 호출됩니다.

또한 OnTriggerEnter 등의 함수는 FixedUpdate와 묶어서 같이 처리되며, 코루틴 내용은 Update와 묶어서 처리됩니다.

 

마지막으로 비활성화 메서드가 호출되면 OnDisable 이 호출되며, 씬 종료,Destroy 등 삭제 메서드가 호출되면 OnDestroy가 프레임의 마지막에 호출되어 생명주기가 종료됩니다.