백무송 개발 블로그

2026-04-24 TIL (44일차)

객체 지향 설계피해야 할 구조 코드를 짤 때 “돌아가기만 하면 된다”는 마인드는 프로젝트가 커질수록 유지보수를 지옥으로 만듭니다. 피해야 할 3가지 대표적인 안티 패턴입니다. 1) 뒤엉킨 변경 정의: 하나의 클래스가 여러 가지 이유로 계속 수정되어야 하는 상태입니다. (단일 책임 원칙 위배) 해결: 데이터 관리 로직과 게임플레이 로직을 각...

2026-04-23 TIL (43일차)

언리얼 코어 아키텍처 1. 블루프린트(BP)와 C++ 클래스의 관계 블루프린트는 C++ 클래스의 확장 버전입니다. * 프로그래머가 C++로 게임의 뼈대와 복잡한 로직을 클래스(Class)로 만들어두면, 아티스트나 기획자가 이를 상속받아 블루프린트(BP)로 확장합니다. 기획자는 코드를 몰라도 블루프린트 에디터에서 수치를 조정하고 에셋을 교체하...

2026-04-22 TIL (42일차)

Unreal 게임 플로우 설계와 데이터 관리 아키텍처 게임 플로우(Game Flow)란 플레이어가 게임을 시작하고, 진행하며, 클리어(또는 게임 오버)하기까지의 모든 규칙과 흐름을 의미합니다. 언리얼 엔진에서는 이 흐름을 어디에 구현하느냐가 프로젝트의 안정성과 직결됩니다. 1. 게임 흐름을 어디에 구현할까? (아키텍처 설계) 작성하신 대로 G...

2026-04-20 TIL (40일차)

알고리즘 참고 강의: 알고리즘 강의 정렬 알고리즘 정렬이란 데이터를 특정한 기준에 따라 순서대로 나열하는 것을 말합니다. 일반적인 문제 상황에 따라서 적절한 정렬 알고리즘이 공식처럼 사용됩니다. • 선택 정렬 처리되지 않은 데이터 중에서 가장 작은 데이터를 선택해 맨 앞에 있는 데이터와 바꾸는 것을 반복합니다. 시간 복잡도 ...

2026-04-16 TIL (38일차)

게임 수학 • 벡터(Vector)의 이해 PDF가 확대해도 깨지지 않는 이유를 통해 벡터를 통해 설명하겠습니다. 비트맵(jpg)과의 차이: 일반 이미지는 픽셀을 강제로 늘리기 때문에 해상도가 깨지지만, 벡터 이미지는 점들의 ‘위치’와 ‘방향’을 수학적 벡터로 해석합니다. 실수배(스칼라 곱): 이미지를 확대한다는 것은 이미지를 잡아 늘...

2026-04-14 TIL (36일차)

코딩테스트 강의 코딩 테스트 강의 • 알고리즘 성능평가 시간제한이 1초인 문제를 만났을 때, 데이터의 개수(N)에 따른 일반적인 기준은 다음과 같습니다. 이 기준을 바탕으로 어떤 알고리즘을 설계해야 할지 미리 유추할 수 있습니다. N의 범위가 500인 경우: 시간 복잡도가 $O(N^3)$인 알고리즘을 설계하면 문제를 풀 수 있습니...