본 캠프 TIL

26.06.18 TIL / 강의 정리

jh009 2026. 6. 18. 19:59

오늘

C++와 Unreal Engine으로 3D 게임 개발 강의 정리

챕터3-1 : 인터페이스 기반 아이템 클래스 설계하기

https://jh009.tistory.com/72

 

C++와 Unreal Engine으로 3D 게임 개발 3-1

3-1. 인터페이스 기반 아이템 클래스 설계하기1. 인터페이스 이해하기 인터페이스클래스 (또는 오브젝트)가 반드시 구현해야 할 함수 목록만을 미리 정의해 두고,실제 함수의 동작(구현 내용)은

jh009.tistory.com

 

챕터 3-2 부터는 쭉 들으면서 계속 정리중


키워드 정리 (추상성, 다형성)

추상성

  • 복잡한 시스템에서 불필요한 상세 구현을 숨기고, 핵심적인 기능과 데이터만 단순화하는 것

가상 / 추상의 차이

가상(Virtual)

  • 상속받는 자식 클래스에서 재정의 할 가능성이 있는 메서드에 부여
  • 기본 구현을 가질 수도 있고, 자식 클래스가 선택적으로 재정의할 수 있음

추상(Abstract)

  • 구현이 없음 을 명시
  • 반드시 자식 클래스에서 해당 기능을 구체적으로 구현해야 함

 

가상화의 조건

 

  • 다형성 지원: 부모 타입의 참조 변수로 자식 객체를 참조할 수 있어야 함
  • 동적 바인딩(Dynamic Binding): 프로그램 실행 시점에 실제 객체의 타입에 따라 적절한 메서드가 호출되어야 함

 

virtual table

  • 가상 함수를 호출할 때 어떤 실제 함수를 실행할지 결정하기 위한 메모리 구조
  • 가상 함수를 가진 클래스는 객체마다 vtable을 가리키는 포인터(vptr)를 생성하며, 이를 통해 런타임에 다형성을 구현

추상클래스

  • abstract 키워드로 선언된 클래스
  • 완성되지 않은 메서드(추상 메서드)를 포함가능
  • 직접 객체를 생성 X
  • 상속을 통해 자식 클래스가 기능을 완성하도록 강제

인터페이스

 

  • 모든 메서드가 추상 메서드로 구성된 클래스의 일종
  • 설계의 규격: 클래스가 무엇을 할 수 있는지에 대한 계약 역할을 함
  • 다중 상속, 구현을 지원하여 유연성을 극대화

 

다형성

  • 같은 이름의 메서드가 상황에 따라 다르게 동작하는 것을 의미
  • 하나의 객체가 여러 가지 형태를 가질 수 있음

오버로딩과 오버라이딩

오버로딩 (Overloading) - 정적 다형성

같은 이름의 메서드를 매개변수의 개수나 타입만 다르게 하여 여러 번 정의하는 것

컴파일 시점에 어떤 메서드를 호출할지 결정

 

오버라이딩 (Overriding) - 동적 다형성

상속 관계에서 부모 클래스의 메서드를 자식 클래스에서 이름, 반환 타입, 매개변수까지 완전히 똑같이 하여 재정의하는 것

런타임 시점에 실제 객체 타입에 따라 부모의 메서드 대신 자식의 메서드가 호출

구분 주요 특징 시점
오버로딩 이름만 같음, 인자 차이 컴파일 시점
오버라이딩 상속, 동일한 서명, 기능 재정의 런타임 시점
가상 메서드 자식의 재정의를 허용함 런타임 시점
추상 메서드 재정의를 강제함 (구현체 없음) 런타임 시점

회고

3번, 4번 과제를 한 이후로 컨디션이 좋지가 않다. 요새 잠을 제대로 못자서 그런 것 같다.

주말에 잠을 푹 자고싶지만 5번 과제를 위해 챕터3, 챕터4 강의를 들어야하고, 기초반 3강 자료 예습, AI튜터로 문제풀이와 복습도 해야되기 때문에 이번주는 조금만 더 힘내보려고 한다.

 

오늘 키워드 정리를 하면서 추상성과 다형성에 대해 다시 복습하는 시간을 가질 수 있었다.

할 일이 많지만, 스스로가 이해하고 넘어가야 찝찝하지 않을 것 같다.