[2025/07/07]TIL

오수호·2025년 7월 7일

TIL

목록 보기
35/60

면접 예상 질문에 대한 문답을 미리 만들어보자.

  1. 객체란 무엇인가요? 클래스와 어떤 연관이 있나요?

    • 객체란 클래스를 통해 만들어집니다. 클래스는 사용자가 객체를 만들어 놓을 틀을 미리 사전에 정의를 해놓고, 필요할 때 객체를 만들어 사용합니다. 클래스는 필요에 따라 필드와 메서드들이 다르게 정의되어 프로그램에서 각자 단일책임을 가지도록 설계 됩니다.
  2. 생성자에 대해 간단하게 설명해주세요.

    • 생성자는 클래스를 통해 객체를 만들 때, 어떻게 만들 지를 미리 정의해 놓는 것 입니다. 생성자를 통해서 만들어 질 객체의 필드값을 생성단계에서 초기화해놓거나 생성에 필요한 값을 설정해 두어 값 초기화에 대한 오류를 피할 수 있습니다.
  3. 접근제한자란 무엇이며, 각각 어떤 차이가 있는지 비교해서 설명해주세요.

    • 접근 제한자는 클래스 내부에 선언되는 필드와 메서드 앞에 선언되어, 해당 필드와 메서드들에 대한 외부접근을 제한합니다. 접근제한자의 경우에는 크게 4가지로 나뉘게 됩니다. 먼저 public은 외부에서 자유롭게 접근할 수 있습니다. protected는 파생클래스에서 접근할 수 있습니다. private는 외부에서 접근할 수 없습니다. internal은 같은 프로젝트 내에서는 접근할 수 있습니다. 클래스 앞에도 접근제한자가 붙을 수 있는데 이 경우에는 public 혹은 internal로만 붙여 사용할 수 있으며, default는 internal입니다. 만약, 인스펙터상에서 조절해야하거나 직렬화 대상일 경우거나 MonoBehavior를 상속받아 만들어진 클래스라면 public을 접근제한자로 두어야 문제없이 동작합니다.
  4. static 한정자에 대해 설명해주세요.

    • static은 클래스나 클래스 내부의 필드, 메서드에 정적속성을 부여하는 키워드입니다. 정적속성이 부여된 클래스나 필드, 메서드는 동적으로 생성되는 것이 아닌 정적으로 생성됩니다. 일반적인 객체의 경우에는 프로그램을 시작하고 나서도 new 키워드를 통해 객체가 생성되는 시점이 오지 않으면 객체는 생성되지 않습니다. 하지만 static키워드를 통해 정적속성을 부여하게 되면 프로그램 시작시점에서 미리 생성됩니다. 동적으로 생성되는 객체의 경우에는 메모리의 heap영역에 할당되지만 static에 의해 정적으로 생성되는 경우에는 메모리의 data영역에 할당되어 생성되며, 프로그램 종료 시까지 유지됩니다.
  5. SOLID 원칙에 대해 설명해주세요.

    • SOLID는 객체지향프로그래밍을 하면서 지켜야 할 원칙들을 정리한 것입니다. S는 단일책임원칙을 뜻하고 하나의 클래스나 모듈은 하나의 책임만을 가져야 한다는 원칙입니다. O는 개방폐쇄원칙을 뜻하고 확장성에 있어서는 개방적이어야하고 수정에 있어서는 폐쇄적이어야 한다는 원칙입니다. L은 리스코프 치환원칙을 뜻하고 자식클래스는 부모클래스로 치환될 수 있어야 한다는 원칙입니다. I는 인터페이스 분리 원칙으로 인터페이스를 범용적으로 만들경우 해당 인터페이스를 사용하는 클래스에서는 사용하지 않는 추상메서드 까지 구현해야하는 경우가 있어서는 안된다는 원칙입니다. , D는 의존성 역전원칙입니다. 고수준 모듈에서 저수준 모듈의 구현에 의존해선 안된다는 원칙입니다. SOLID원칙을 준수하여 프로그래밍을 하면, 유지보수와 확장성에 대해서 유연하게 대응할 수 있습니다.
profile
게임개발자 취준생입니다

0개의 댓글