최근 팀 프로젝트를 진행하면서 GitHub 저장소의 Git LFS 대역폭 초과로 인해 심각한 문제가 발생했다.이 문제는 개발 흐름을 중단시킬 만큼 치명적이었고, 자체 Git 서버(Gitea) 구축으로 문제를 해결했다..이 글에서는 장애가 어떻게 발생했고, 어떤 대처를 했으며, 향후 어떻게 컨트롤할지를 기록해둔다.문제 설명한달이라는 짧은 기간의 프로젝트 진행 중 2주차…즉, 절반을 지나가던 시점 새벽에 문제가 발생했다. 내가 작업한 브랜치를 병합한 뒤 Main 브랜치에 체크아웃하여 결과를 확인하고 후속 작업을 하기 위해 Main 브렌치를 Pull 받는 과정에서 LFS로 관리되는 애셋들이 올바르게 표시되지 않는 문제가 발생하면서 발견했다. 이를 뒤늦게 파악한 우리는 병합한 내용을 확인하기 위해 Main 브랜..
Minimax 알고리즘이 뭐에요?Minimax는 두 플레이어가 번갈아 가며 수를 두는 게임에서 많이 사용되는 알고리즘이다.AI는 최대한 좋은 선택을 하려하고 (Maximizer)상대방은 AI에게 최대한 불리한 선택을 하려고 한다 (Minimizer)이 때 가능한 모든 경우의 수를 탐색해서 최적의 수를 결정하는 방식이다.모든 경우의 수를 내다 보고 가장 높은 점수가 나온 수를 고르는 방식으로 복잡한 게임일수록 계산하는데 오래걸릴 수 있음!Tic-Tac-Toe로 알아보는 Minimax 알고리즘깊이 우선 탐색을 수행하며 끝까지 탐색한 뒤 결과에 따라 점수를 부여한다.즉, 발생할 수 있는 모든 경우의 수를 탐색한 뒤 결과에 점수를 부여해서 가장 높은 점수를 획득하는 수를 두는 방식이다. 모든 경우의 수를 탐색하..
Unity 프로젝트에서 메인 화면에서 게임 모드를 선택해 씬을 전환할 때, 이전 게임 상태가 유지되어 예상치 못한 동작이 발생하는 문제가 있었습니다.이번 포스팅에서는 그 원인과 해결 방법을 공유합니다.🚨 문제 상황메인 화면에서 싱글 플레이를 선택 후 게임을 진행한다.게임을 끝내거나 중간에 종료해 다시 메인 화면으로 이동한다.2인 플레이(Co-Op)를 선택하면 AI가 수를 두는 문제가 발생한다.👀 즉, 게임 모드를 변경했음에도 이전 상태가 유지되는 문제!✍ 기존 코드// ... public enum GameType { SinglePlayer, CoOpPlayer } private GameType currentGameTypeState; public void ChangeToGameScene(GameT..
Disney Plus 를 가볍게 클론코딩한 프로젝트로 Firebase를 통한 인증을 연습하는데 도움이 된 프로젝트였다. 사용자 인증을 통해 받아온 데이터를 로컬 스토리지에 저장하고 가져오도록 설정되어 있었는데 이번에 해당 데이터를 Redux를 이용해서 관리하도록 수정해보기로 했다. 이때 문제가 발생했다. Redux는 새로고침이 발생하면 저장된 state가 리셋되는 문제가 있었다. 로그인 정보를 관리하는 경우 state가 유지되어야할 필요성이 있었다. 이럴 때 redux-persist를 활용하면 문제를 해결할 수 있다. 사용 방법 1 )Install npm i redux-persist yarn add redux-persist TypeScript npm i redux-persist @types/redux-p..