- 하루 계획
- 오전
- 09:00 ~ 13:00 : CS 공부, 디자인 패턴
- 어제 내용 복습 - 자료구조, ScriptableObject, 해시셋, 해시테이블, 딕셔너리
- base 키워드
- virtual / override / abstract
- 템플릿 메서드 패턴
- 일반 오버라이드 vs 템플릿 메서드 패턴
- 템플릿 vs 인스턴스 개념 비교
- 09:00 ~ 13:00 : CS 공부, 디자인 패턴
- 오후
- 13:00 ~ 14:00 : 점심시간
- 14:00 ~ 15:00 : 팀원들과 PPT 발표 작업
- 15:00 ~ 18:00 : 오전 공부 내용 복습
- 18:00 ~ 19:00 : 저녁시간
- 저녁
- 19:00 ~ 20:00 : 팀 회의
- 20:00 ~ 20:30 : 개인 TIL 작성
- 20:30 ~ 21:00 : 팀원 회고 시간
1. 오늘 학습 키워드
- base 키워드
- virtual / override / abstract
- 템플릿 메서드 패턴
- 일반 오버라이드 vs 템플릿 메서드 패턴
- 템플릿 vs 인스턴스 개념 비교
- 다형성
- 클래스 메모리 구조 (Parent obj = new Child())
2. 오늘 학습 한 내용을 나만의 언어로 정리하기
https://dev-jen.tistory.com/entry/C-Virtual
C# - Virtual & abstract
✅ virtual 키워드 정리📌 정의virtual은 부모 클래스에서 메서드나 속성을 "재정의 가능"하게 만드는 키워드입니다.📋 기본 문법class Parent{ public virtual void SayHello() { Console.WriteLine("안녕하세요. 부
dev-jen.tistory.com
C# - Class Inheritance(클래스 상속)& Interface(인터페이스) vs abstract Class
✅ 클래스 상속 (Inheritance)✔️ 정의class A : B처럼, 한 클래스가 다른 클래스의 기능을 물려받는 것✔️ 목적코드 재사용: 부모 클래스의 멤버(필드, 메서드 등)를 자식이 그대로 사용 가능기능 확
dev-jen.tistory.com
Unity - Template Method Pattern(템플릿 메서드 패턴) vs virtual
✅ 템플릿 메서드 패턴이란?**템플릿 메서드 패턴(Template Method Pattern)**은상속을 기반으로 부모 클래스에서 **알고리즘의 전체 흐름(틀)**을 정의하고,일부 단계는 abstract 또는 virtual로 정의하여 자
dev-jen.tistory.com
https://dev-jen.tistory.com/entry/Unity-Template-vs-Template-Method-Pattern-vs-Class-vs-Instance
Unity - (Template vs Template Method Pattern) vs (Class vs Instance)
템플렛 메서드 패턴에 대해서 공부하다가 너무 궁금한게 생겼다 그럼 템플릿이랑 템플릿 메서드 패턴의 차이점이 뭐지 싶었다. "템플릿"은 그냥 일반적인 용어이고,"템플릿 메서드 패턴"은 디자
dev-jen.tistory.com
https://dev-jen.tistory.com/entry/C-base-%ED%82%A4%EC%9B%8C%EB%93%9C
C# - base 키워드
✅ base 키워드란?자식 클래스에서 부모 클래스의 생성자나 메서드, 필드에 접근할 때 사용하는 키워드📌 1. 부모 클래스의 메서드 호출할 때class Parent{ public void Speak() { Console.WriteLine("부모가 말
dev-jen.tistory.com
C# - Parent obj = new Child(); 메모리는 어떻게 될까? & 다형성
Parent obj = new Child(); 메모리는 어떻게 될까?🤔 질문클래스 상속을 사용할 때,Parent obj = new Child();이렇게 부모 타입으로 자식 객체를 참조하면,메모리는 부모 클래스만큼만 잡히는 걸까? 아니면 자
dev-jen.tistory.com
- base는 부모 클래스의 생성자나 메서드를 자식 클래스에서 호출할 수 있게 해주는 키워드다. 오버라이드할 때 부모의 동작을 유지하면서 확장할 수 있다.
- virtual은 부모가 기본 동작을 정의하고 자식이 필요할 때만 바꾸도록 하는 것. abstract는 반드시 자식이 오버라이드해야 하며 구현은 없다.
- 템플릿 메서드 패턴은 전체 알고리즘 흐름은 부모가 고정하고, 그 안의 일부 단계는 자식이 구현하는 패턴이다. abstract와 virtual을 함께 활용해 유연성과 강제성을 조절한다.
- 단순한 virtual 오버라이드와 템플릿 메서드 패턴은 목적이 다르다. 전자는 부분 확장, 후자는 전체 흐름 고정 + 단계 커스터마이징.
- 템플릿과 템플릿 메서드 패턴의 차이는, 템플릿은 개념(틀), 템플릿 메서드 패턴은 그걸 코드 구조로 실현한 디자인 패턴이다.
- 다형성은 부모 타입으로 여러 자식 객체를 다룰 수 있도록 하며, Parent obj = new Child()의 경우 실제 메모리는 자식 전체가 생성된다.
- 참조 타입은 부모여도, 메서드가 virtual이면 실제 자식의 구현이 실행된다.
3. 학습하며 겪었던 문제점 & 에러
1. 개념 구분 헷갈림: virtual / abstract / override
- 문제정의: virtual, abstract, override의 차이를 명확히 이해하지 못했음
- 시도: 각각의 문법 정의와 예제를 직접 비교
- 해결방법: 구현 여부, 오버라이드 강제성, 유연성 여부를 기준으로 구분
- 새롭게 알게 된 점: virtual은 기본 구현 있고 선택적 오버라이드, abstract는 반드시 구현해야 함
- 다시 만나게 된다면: 차이점 핵심 기준(강제/기본 구현 유무)으로 먼저 분류해서 기억
2. 다형성과 메모리 구조 헷갈림
- 문제정의: Parent obj = new Child(); 시 실제 메모리 구조와 사용 범위가 헷갈림
- 시도: 참조 변수와 인스턴스 생성 코드의 차이를 비교하고 그림으로 메모리 구조 정리
- 해결방법: 자식 전체 객체가 생성되며, 참조 변수는 부모 멤버까지만 접근 가능하다는 걸 이해함
- 새롭게 알게 된 점: 다형성은 참조 타입은 부모지만, 실행은 자식 기준으로 이뤄진다
- 다시 만나게 된다면: 메모리 구조(Parent + Child)를 도식화해서 먼저 떠올릴 것
'스파르타 코딩클럽 > TIL작성' 카테고리의 다른 글
TIL - 내일배움캠프 6일차 TIL [기초 문법 강의 수강](25.07.07) (3) | 2025.07.07 |
---|---|
TIL - 내일배움캠프 5일차 TIL [디자인 패턴 + CS공부](25.07.04) (2) | 2025.07.04 |
TIL - 내일배움캠프 3일차 TIL [CS공부 + 카드게임 팀 프로젝트](25.07.02) (0) | 2025.07.02 |
TIL - 내일배움캠프 2일차 TIL [CS공부 + 카드게임 팀 프로젝트](25.07.01) (4) | 2025.07.01 |
TIL - 내일배움캠프 1일차 TIL [OT + 새로운 팀 + 팀 프로젝트(카드 뒤집기 게임)](25.06.30) (2) | 2025.06.30 |