오늘
C++와 Unreal Engine으로 3D 게임 개발 강의 정리
챕터3-1 : 인터페이스 기반 아이템 클래스 설계하기
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튜터로 문제풀이와 복습도 해야되기 때문에 이번주는 조금만 더 힘내보려고 한다.
오늘 키워드 정리를 하면서 추상성과 다형성에 대해 다시 복습하는 시간을 가질 수 있었다.
할 일이 많지만, 스스로가 이해하고 넘어가야 찝찝하지 않을 것 같다.
'본 캠프 TIL' 카테고리의 다른 글
| 26.06.22 TIL / C++, Unreal Engine 3D 게임 개발 챕터3 정리 (0) | 2026.06.22 |
|---|---|
| 26.06.19 TIL / 강의 정리 및 복습 (0) | 2026.06.19 |
| 26.06.16 TIL / 기초반 2강 강의 정리, 과제 복습 (0) | 2026.06.16 |
| 26.06.15 TIL / 4번 과제 완료 (0) | 2026.06.15 |
| 26.06.12 TIL / 강의 챕터 2 정리 및 복습, Rider 설정, 과제 4번 진행 (0) | 2026.06.12 |