2026/06 8

[AFO_Refactor #1] Critical 버그 수정 - AnimNotify 권한 누락, Aurora 오타, 팀 비교 반전

AFO_Refactor 개발일지 #1 Critical 버그 수정 AnimNotify 권한 누락 · Aurora 오타 · 팀 비교 반전 · BeginPlay 중복 호출 · 인코딩 변환 🎯 이번 작업 목표 #0에서 분석한 버그 목록 중 코드 수정으로 즉시 해결 가능한 것들을 먼저 정리했다. GAS 도입 전에 기존 코드의 명백한 오류들을 제거해야 리팩토링 기반이 안정적으로 잡힌다. 이번에 수정한 항목은 총 5개다. # 버그 등급 파일 1 AnimNotify_AttackHit HasAuthority 누락 🔴 Critical AFA..

C++ STL stack / queue 완전 정리 — LIFO vs FIFO 실전편

코딩테스트 준비 #2 C++ STL stack / queue 완전 정리 — LIFO vs FIFO 실전편 STL · stack · queue · 프로그래머스 · 올바른 괄호🎯 목표코딩테스트 스택/큐 유형을 C++로 풀기 위해 stack과 queue 기본 문법을 정리하고, 프로그래머스 올바른 괄호(Level 2) 문제에 직접 적용한다.📌 stack vs queue vs deque STL 구조 접근 방향 범위기반 for stack LIFO 한쪽 끝만 (top) ❌ queue FIFO 앞(front) / 뒤(back) ❌ deque ..

[AFO_Refactor #0] 프로젝트 셋업 + 코드 분석 - 팀 프로젝트를 GAS 기반으로 리팩토링하기

AFO_Refactor 개발일지 #0프로젝트 셋업 + 코드 분석GitHub · CLAUDE.md · 버그 9개 발견 · GAS 리팩토링 방향🎯 왜 이 프로젝트를 시작했나부트캠프 팀 프로젝트로 2v2 멀티플레이 액션 게임 AFO를 만들었다. Dedicated Server 기반에 5종 캐릭터, 팀 킬 스코어 방식으로 설계했고, 패키징까지 완료했다.그런데 문제가 있었다.패키징 후 멀티플레이 플레이 중 크래시 발생팀원마다 코드 스타일이 달라 구조가 통일되지 않음스킬 DataTable 연동 미완성 (호출 타이밍 문제)서버 권한 처리가 일관되지 않음취업 포트폴리오로 쓰기엔 부족했다. 그래서 혼자 처음부터 구조를 뜯어고치기로 했다.💡 AI로 [시간단축] → 내가 [문제발견] → 내가 [구조개선] → [수치결과]?..

C++ STL unordered_map 완전 정리 — 코딩테스트 실전편

코딩테스트 준비 #1C++ unordered_map 완전 정리 — 해시맵 기초부터 실전까지STL · unordered_map · 해시맵 · 프로그래머스 · 완주하지 못한 선수🎯 목표코딩테스트 해시맵 유형을 C++로 풀기 위해 unordered_map 기본 문법을 정리하고, 프로그래머스 완주하지 못한 선수(Level 1) 문제에 직접 적용한다.📌 map vs unordered_map항목mapunordered_map내부 구조레드블랙트리해시테이블탐색 시간복잡도O(log N)평균 O(1)키 정렬자동 정렬됨순서 없음코테 기본 선택❌✅코딩테스트에서는 거의 항상 unordered_map을 써라. 키 정렬이 필요한 경우에만 map을 쓴다.🔧 기본 문법 — 핵심 4가지1. 추가 / 증가// 없으면 0 생성 후 +1..

[IronBird #9] Android 빌드 + 실기기 프로파일링 (Galaxy S23+)

IronBird 개발일지 #9Android 빌드 + 실기기 프로파일링 (Galaxy S23+)Android NDK · APK 패키징 · 실기기 수치 측정 · PC vs 모바일 비교🎯 목표PC에서 개발한 IronBird를 Android 기기에서 실행하고, 실기기에서 프로파일링 수치를 측정한다. PC 수치와 비교해 모바일 최적화 효과를 검증한다.테스트 기기: Galaxy S23+ (SM-S916N) · Android 빌드 타겟: arm64-v8a · 텍스처 포맷: ETC2🔧 Android 빌드 설정항목설정값Android NDKr27c (UE5.7 요구사항)텍스처 포맷ETC2 (범용 Android)화면 방향Portrait (세로 고정)텍스처 스트리밍 풀r.Streaming.PoolSize=0 (자동) 렌..

[IronBird #8] 드로우콜 최적화 시도 - PC 프로파일링 결과 분석

IronBird 개발일지 #8드로우콜 최적화 시도 - PC 프로파일링 결과 분석Shadow Casting · Object Pool · 콜리전 분리 · 프로파일링🎯 목표모바일 목표 수치(드로우콜 100 이하, FPS 30 안정)를 향해 최적화를 시도한다. PC에서 프로파일링하고 각 최적화 기법의 실제 효과를 측정한다.최적화는 반드시 수치로 증명해야 한다. "빠를 것 같다"는 감이 아니라 Before/After 측정이 기준이다.📊 Before 수치측정 환경: PC, 엔진 퀄리티 중간, 게임플레이 중 적 다수 존재항목수치모바일 목표FPS56.9130fps 안정Frame18.04ms33ms 이하Game18.01ms-GPU Time3.34ms-Draws252100 이하메모리4.70GB1~1.5GB🔧 최적화 ..

[IronBird #7] BGM + 이펙트 + 하트 아이템 + 틸팅 + UMG 메인화면

IronBird 개발일지 #7BGM + 이펙트 + 하트 아이템 + 틸팅 + UMG 메인화면UAudioComponent · SpawnEmitter · UMG · 카메라 고정 · 난이도 조정🎯 목표게임 완성도를 높인다. BGM과 효과음으로 타격감을 살리고, 하트 아이템과 난이도 조정으로 게임성을 추가한다. 카메라를 레벨에 고정해 갤러그 스타일 시점을 완성하고, UMG로 메인화면을 교체한다.이번 작업의 핵심은 C++ 코드로 UPROPERTY 슬롯을 노출하고, 에디터에서 에셋을 할당하는 방식으로 분리한 것이다. 코드 수정 없이 에셋만 교체할 수 있어 유지보수가 편해진다.🔧 구현 내용https://youtube.com/shorts/lW6pr6lhA-8?feature=share IronBird 시연영상점수 기..

[Coding Test] 시뮬레이션 격자(Grid) 탐색 핵심 개념 정리 (dy, dx, Offset)

1. 격자판 좌표가 (y, x)인 이유: 2차원 배열의 구조일반적인 수학 좌표계에서는 가로축이 X, 세로축이 Y이므로 (x, y)로 표기하는 것이 익숙합니다. 하지만 코딩테스트의 격자판 문제는 컴퓨터 메모리의 2차원 배열을 기반으로 작동합니다.2차원 배열 구조: Array[Row][Column] -> [행][열]매핑 방식: 행(Row)은 위아래(가로줄)를 결정하므로 Y축이 되고, 열(Column)은 좌우(세로줄)를 결정하므로 X축이 됩니다.따라서 코딩테스트 시뮬레이션 문제를 풀 때는 항상 (y, x) 즉 [행][열] 구조를 표준으로 삼고 접근해야 메모리 접근 효율(Cache Locality)을 높이고 버그를 줄일 수 있습니다.2. 윗칸으로 이동하는데 y - 1인 이유: Screen Coordinate수학..