티스토리 뷰
🟩 오늘의 목표
- 알고리즘 특강 1회차 핵심 내용 이해
- C++ 기본 문법(포인터, 레퍼런스, 클래스, 생성자/소멸자, OOP 개념) 심화 복습
- 절차지향 → 객체지향 사고로 전환 연습
- TIL 정리 습관 유지 및 코드 사고력 강화
🟧 알고리즘 특강 - 1
🟦 알고리즘의 정의
- 문제를 해결하는 절차, 레시피 같은 개념
- 자연어, 의사 코드, 순서도로 표현할 수 있음
🟦 알고리즘 문제 풀이 방식
- 문제 제시 → 학생이 말/의사 코드/코드로 풀이
- 튜터가 검토 후 해설 진행
- 의사 코드는 “구체적이지만 추상적”하게 작성
🟦 왜 알고리즘을 배우는가
- 컴퓨팅 사고력 향상
- 코딩 테스트 대비 필수
- 기본 코딩 능력을 강화할 수 있는 가장 효과적인 훈련
🟦 오늘 다룬 기초 코딩 능력
- 변수 선언
- 제곱 계산(pow)
- 반올림(round)
- 조건문
- 반복문
🟧 C++ 문법 & 객체지향 심화 학습
🟦 포인터와 주소 – 메모리 구조 이해
- 포인터는 “주소를 저장하는 변수”
- & → 주소, * → 역참조
- 스택/힙 메모리 구조 이해
- 메모리의 실제 흐름을 기반으로 로직을 생각하는 훈련
🟦 레퍼런스(참조) vs 포인터 – 진짜 차이
- 레퍼런스는 별칭(= 다른 이름)
- Null 불가, 반드시 초기화 필요
- 포인터는 주소를 저장하는 변수 → Null 가능
- 함수 파라미터에서 안전하게 값 변경하려면 레퍼런스가 더 직관적
- 개념 정리:
- 포인터 = 주소를 들고 다니는 변수
- 레퍼런스 = 이미 존재하는 변수를 가리키는 또 다른 이름
🟦 Struct vs Class
- C++에서 struct와 class는 큰 차이 없음
- 기본 접근 지정자만 다름
- struct → public
- class → private
- struct는 데이터 묶음 위주
- class는 동작(함수) + 데이터(멤버)를 함께 관리
🟦 절차지향 vs 객체지향
- 절차지향: “동작 중심” → 함수 중심으로 문제 해결
- 객체지향: “데이터 중심” → 객체를 설계하고 객체 간 협력을 정의
- 게임 개발은 절차지향으로 만들면 확장 불가 → OOP로 작성해야 유지보수 가능
🟦 생성자와 소멸자 – 객체 생명주기
- 생성자: 객체가 태어나는 순간 실행 (초기화 용도)
- 소멸자: 객체가 사라지기 직전 실행 (정리/반납 용도)
- 핵심:
- 메모리는 객체 소멸 시 자동 해제.
- 단, 객체가 잡아둔 리소스는 자동 정리되지 않음 → 소멸자로 해제 필요.
- 소멸자는 “메모리가 완전히 사라지기 전에 마지막 실행 기회”.
🟦 Private와 캡슐화 – Get/Set
- 캡슐화 목적: 데이터 보호 + 유지보수성 향상
- private 멤버는 클래스 외부 접근 불가
- public Get/Set 함수를 제공하여 안전하게 값 제어
🟦 상속 – 클래스 구조 확장
- 부모의 기능을 자식 클래스가 물려받는 구조
- 공통 기능을 상속하여 중복 코드 제거
- 캡슐화와 상속을 조합해 코드 재사용성 극대화
🟦 추상화 – 복잡한 시스템 단순화
- 불필요한 정보는 숨기고 중요한 요소만 노출
- 예: 캐릭터 이동 함수는 내부 수학 계산을 숨기고 “Move()”만 제공
- 인터페이스 설계 능력과 직결됨
🟦 다형성 – override의 진짜 의미
- 같은 함수 이름을 클래스별로 다르게 동작시킬 수 있음
- virtual / override 키워드
- 게임 개발에서 가장 중요한 개념 중 하나
- 예: Player.Update(), Enemy.Update()는 다르게 구현됨
🟫 오늘 느낀 점
객체지향 개념과 기본 알고리즘 사고가 조금씩 연결되고 있다. 아직 어렵지만 계속 반복하면 확실하게 체득할 것 같다.
'내일배움캠프 Unreal_7기 > 본캠프' 카테고리의 다른 글
| TIL - 13일차 (0) | 2025.12.16 |
|---|---|
| TIL - 12일차 (0) | 2025.12.12 |
| TIL - 10일차 (0) | 2025.12.10 |
| TIL - 9일차 (0) | 2025.12.09 |
| TIL - 8일차 (0) | 2025.12.08 |

