[2025-06-23 TIL]Unreal 자동화 첫걸음: PowerShell, PyInstaller, 그리고 Git 연동 삽질기

별빛에소원을·2025년 6월 24일

TeamSparta-Unreal1기-TIL

목록 보기
89/90
post-thumbnail

💡 3줄 요약

  • Unreal Engine 프로젝트의 반복적인 관리 작업을 자동화하기 위해 PowerShell과 Python 스크립트를 작성했습니다.
  • pyinstaller로 스크립트를 .exe 파일로 빌드하고, PyCharm에서 Git과 연동하며 실전 문제들을 해결했습니다.
  • 이 과정을 통해 개발 환경 설정과 버전 관리의 중요성을 깨닫고, 본격적인 자동화의 첫걸음을 뗐습니다.

🤔 왜 이걸 배웠는가? (Why I Learned It)

생산성, 일관성, 그리고 팀 협업의 기반을 다지기 위해.

Unreal Engine 프로젝트는 Binaries, Intermediate 등 빌드 산출물과 캐시가 방대해 용량 관리가 번거롭습니다. 팀 프로젝트 시, 누군가는 이 파일들을 커밋에 포함시키고, 누군가는 정리 규칙을 잊어버리는 등 일관성이 깨지기 쉬웠습니다.

또한, 제가 만든 편리한 Python 스크립트를 팀의 비개발자분들도 쉽게 사용하게 하려면 .exe 파일로 배포할 필요가 있었습니다.

이러한 반복적이고 실수가 잦은 작업들을 자동화하고, 누가 사용하든 일관된 결과를 보장하는 개발 환경을 구축하기 위해 칼을 빼 들었습니다.


💻 어떻게 적용했는가? (How I Applied It)

📌 1) Unreal 프로젝트 클린업 자동화 (PowerShell)

# 삭제할 폴더 목록 정의
$DirectoriesToRemove = @(
    ".idea", ".vscode", ".vs",
    "Binaries", "Build", "DerivedDataCache", "Intermediate", "Saved"
)

# 현재 경로 기준으로 재귀적으로 폴더를 찾아 삭제
$DirectoriesFound = Get-ChildItem -Include $DirectoriesToRemove -Directory -Recurse -ErrorAction SilentlyContinue
foreach ($DirectoryFound in $DirectoriesFound) {
    Remove-Item $DirectoryFound.FullName -Recurse -Force
}
  • 실무적 포인트: 팀 내 공통 스크립트로 재사용하여, 모두가 동일한 기준으로 프로젝트를 관리할 수 있게 되었습니다.

📌 2) Python 스크립트 → 단일 실행파일(.exe)로 빌드

# --onefile 옵션으로 단일 실행파일 생성
pyinstaller --onefile --name UnrealWatcher main.py
  • 실무적 포인트: Python이 설치되지 않은 동료에게도 자동화 툴을 쉽게 공유하고 사용하게 할 수 있습니다.

📌 3) PyCharm-GitHub 연동 & .gitignore 관리

빌드 산출물, 가상환경(.venv), IDE 설정(.idea) 등 버전 관리가 필요 없는 파일들이 Git에 올라가지 않도록 .gitignore를 설정하고, PyCharm 터미널을 이용해 GitHub에 푸시하는 과정을 연습했습니다.


🤯 겪은 문제와 해결 과정 (Troubleshooting & Problem Solving)

🔥 23일의 삽질 및 해결 히스토리 (클릭하여 펼치기)

🚨 1. pyinstaller 빌드 후 config.json 파일을 못 찾는 문제

  • 문제: .exe 파일 실행 시 필요한 config.json을 찾지 못해 프로그램이 비정상 종료됨.
  • 해결: 빌드 후 dist/ 폴더에 수동 복사 → 다음 날 자동화 계기 마련.

🚨 2. .gitignore에 추가했는데도 파일이 계속 커밋되는 문제

  • 문제: .venv.idea가 계속 추적됨.
  • 해결: 이미 추적 중인 파일을 캐시에서 제거
git rm -r --cached .venv .idea
git add .gitignore
git commit -m "Stop tracking .venv and .idea"
git push

🚨 3. 터미널마다 다른 환경변수 사용법

  • 문제: PowerShell의 $Env:VAR와 CMD의 %VAR% 사용법 혼란
  • 해결: 각 환경에서 실제로 실습하며 사용법을 명확히 익힘.

✨ 느낀 점과 다음 계획 (Reflection & Next Step)

자동화는 단순히 코드를 짜는 것에서 끝나지 않았습니다. IDE, 버전 관리 시스템, OS(터미널) 등 개발 환경 전반에 대한 깊은 이해가 필수라는 것을 깨달았습니다. 특히 .gitignore 설정 등 초기 세팅이 팀의 생산성과 경험에 큰 영향을 준다는 것도 다시금 인지했습니다.

🏁 Next Step

  • 스크립트 고도화: 에러 처리, 사용자 피드백 기능 추가하여 안정성 향상.
  • 본격적인 자동화 워크플로우 구상: Python의 Watchdog 라이브러리를 학습해 파일 변경 자동 감지 및 실행 시나리오 구현.

📂 전체 소스코드 (GitHub)

이날 고민하고 작성한 코드들은 아래 GitHub 저장소에서 확인하실 수 있습니다.

👉 GitHub 저장소로 이동하기


"실무를 위한 자동화는 결국 나와 팀의 실수를 미연에 방지하는 좋은 습관을 만들어가는 과정입니다. 오늘의 첫걸음을 꾸준히 이어나가겠습니다."

profile
취미로 게임하는사람

0개의 댓글