250418 TIL

박소희·2025년 4월 18일

Unity_7기

목록 보기
72/94

코루틴 wait - 생명주기 함수는 돌아감


면접 준비 (1)

  1. 객체와 클래스
  • 객체는 메모리에 할당되어 실제로 동작할 수 있는 개체입니다. 클래스는 이런 객체를 만들기 위한 설계도입니다. 클래스를 기반으로 객체가 생성됩니다.
  1. 생성자
  • 객체가 생성될 때 자동으로 호출되는 메서드입니다. 주로 필드를 초기화흐는 데 사용됩니다.
  1. 접근 제한자와 차이점
  • 클래스와 멤버에 접근할 수 있는 범위를 지정하는 키워드입니다.
  • public은 어디서든 접근 가능하고, private은 클래스 내부에서만 접근 가능
  • protected는 상속받은 클래스에서 접근 가능, internal은 같은 프로젝트 안에서만 접근할 수 있음
  1. static
  • 클래스의 인스턴스가 아니라 클래스 자체에 속하기 때문에 객체를 만들지 않아도 사용할 수 있고, 모든 객체가 공유하는 값이 필요할 때 주로 사용한다.
  1. SOLID 원칙
  • 객체지향 설계에서 지켜야할 다섯 가지 원칙.
  • 단일 책임, 개방-폐쇄, 리스코프 치환, 인터페이스 분리, 의존성 역전 원칙
  • 단일 책임 원칙: 클래스는 하나의 책임만 가져야하고, 변경 사유도 하나뿐이어야 한다.
  • 개방-폐쇄 원칙: 기능 확장은 열려있고, 코드 수정을 닫혀있어야 한다.
  • 리스코프 치환 워닉: 자식 클래스는 언제나 부모 클래스 대신 사용될 수 있어야 한다.
  • 인터페이스 분리 원칙: 클라이언트는 자신이 사용하지 않는 메서드에 의존하지 않아야 한다. 너무 많은 기능을 강제로 묶어 놓지 않게
  • 의존 역전 원칙: 상위 모듈이 하위 모듈에 의존하는 것이 아니라, 둘 다 추상화에 의존해야 한다.
  1. 다형성과 장점
  • 하나의 인터페이스나 부모 클래스로 여러 가지 구현체를 다룰 수 있는 성질. 코드를 유연하고 확장 가능하게 만들 수 있다.
  1. override / overload
  • override는 상속받은 메서드 재정의
  • overload는 같은 이름의 메서드를 매개변수 형태에 따라 여러 개 정의
  1. 유니티 생명주기
  • 사용자가 호출하지 않아도 호출되는 함수들의 호출 주기
    awake -> Onenable -> start -> update -> lateUpdate -> ondisable -> ondestroy
    awake는 객체가 처음 생성될 때 실행, start는 한 프레임 이후에 계속 실행
    update는 매 프레임마다 호출, lateupdate는 모든 update가 끝난 후에 호출
  1. MonoBehaviour
  • 유니티 생명주기의 함수들이 주요 메서드, 오브젝트의 생명주기를 따라 행동을 정의할 수 있게 한다.
  • awake는 다른 컴포넌트와의 연결 같은 초기화에 적합, start는 다른 오브젝트가 모두 준비된 이후 실행되기 떄문에 오브젝트 간 상호작용이 필요할 때 적합
  1. update, fixedupdate, lateupdate
  • update는 매 프레임 호출
  • fixedUpdate는 일정한 시간 간격으로 호출, 주로 물리 연산 관련 로직에 사용
  • lateUpdate는 update가 끝난 후 실행, 카메라 처리
  1. Time.deltaTime
  • 한 프레임이 걸린 시간, 프레임 간의 간격. 프레임 수와 상관없이 일정한 속도로 움직이거나 애니메이션을 재생할 수 있다.
  1. 코루틴 동작원리
  • 시간 지연이나 조건에 따른 비동기 처리를 순차적으로 작성할 수 있게 도와주는 기능
  • 3초후에 효관 실행 등
  1. Invoke와 코루틴 차이점
  • Invoke는 단순히 일정 시간 후에 한 번만 메서드 실행
  • 코루틴은 일시정지하거나 반복적으로 처리할 수 있어 더 복잡한 제어 가능
  1. LinkedList
  • 각 노드가 다음 노드를 가리키는 방식으로 구성된 자료구조. 삽입과 삭제가 빠르다.
  • 중간에 요소를 자주 추가하거나 삭제해야하는 상황에 유리
  • 인덱스를 통한 접근이 느려, 랜덤 접근이 많거나 전체를 자주 탐색해야하는 경우에 불리
  1. Stack
  • 선입후출 구조
  • 함수 호출 추적, 되돌리기 등 같은 후입선출이 필요한 경우 적합, 반대로 데이터가 FIFO인 경우엔 부적합
  1. Queue
  • 선입선출.
  • 순차적으로 처리해야하는 이벤트나 작업 큐에 적합. 대기열, 작업 처리 순서 등에 사용
  • 중간 요소를 접근하거나 삭제해야할 경우에는 비효율적
  • 러닝게임에서 장애물을 동적생성하고 제거하는 과정에서 생성된 장애물을 디버깅하기 위해 큐를 사용했던 적이 있다.

0개의 댓글