[내일배움캠프 Day24] 개발 환경 설정

2025. 1. 20. 17:09·내일배움캠프/TIL

내일배움캠프 강의 CH3 1주차 1, 2강 내용에 언리얼, c++ 개발 환경 설정이 나와 '이득우의 언리얼 C++ 게임 개발의 정석' 책 1장 내용을 추가로 정리했습니다. 

 

1강 - 언리얼 엔진 C++ 개발 환경 준비하기

 

프로젝트 폴더 내 주요 파일

  • SpartaProject.sin (Visual Studio 솔루션 파일) : C++ 소스 코드와 빌드 설정이 연결된 핵심 파일. 솔루션이 관리하는 각 프로젝트 파일은 Intermediate 폴더 내 ProjectFiles 폴더에 있습니다. 프로젝트 파일과 솔루션 파일은 삭제하더라도 uproject 파일을 우클릭해 뜨는 Generate Visual Studio project file 메뉴를 선택하면 언제든지 재생성할 수 있습니다.
  • SpartaProject.uproject : 언리얼 에디터가 프로젝트 설정(콘텐츠, 맵, 플러그인 등)을 불러올 때 사용하는 파일
  • .vsconfig : Visual Studio Configuration 파일로, Visual Studio 프로젝트에서 사용되는 특정 설정과 구성 요소 설치 요구 사항을 정의합니다. 프로젝트를 열 때 Visual Studio가 필요한 워크로드와 구성 요소를 자동으로 감지합니다.

 

프로젝트 폴더 내 주요 폴더

  • .vs 폴더 : Visual Studio가 자동 생성하는 폴더로, 디버깅·솔루션 설정 관련 파일들이 있습니다.
  • Binaries 폴더 : C++ 코드가 컴파일된 결과물을 저장하는 공간. 삭제해도 빌드할 때마다 새롭게 생성됩니다.
  • Config 폴더 : 게임 프로젝트의 설정 값을 보관하는 공간. 게임플레이, 렌더링, 입력 등의 설정을 담은 .ini 파일이 모여 있습니다.
  • Content 폴더 : 게임 프로젝트에 사용하는 애셋을 관리하는 공간. 언리얼 에디터의 Content Browser와 연결되어 있습니다.
  • DerivedDataCache 폴더 : 에셋, 쉐이더 등을 빠르게 처리하기 위한 캐시 파일이 저장됩니다.
  • Intermediate 폴더 : 프로젝트 관리에 필요한 임시 파일들을 저장하는 공간.
  • Saved 폴더 : 에디터 작업 중에 생성된 결과물을 저장하는 공간. 자동 저장 파일, 로그, 크래시 덤프, 스크린샷 등이 모두 이곳에 저장됩니다. 게임·에디터가 비정상 종료되었을 때, 이 폴더 안의 로그 파일을 확인해 문제를 진단할 수 있습니다.
  • Source 폴더 : C++ 소스 코드가 위치한 공간. 실제 게임 로직을 작성하는 곳입니다.

 

관련 내용은 에픽게임즈 사이트에서 더 자세하게 볼 수 있습니다.

https://dev.epicgames.com/documentation/ko-kr/unreal-engine/unreal-engine-directory-structure

 

 

2강 - 언리얼 엔진 C++ 빌드 프로세스 이해하기

Visual Studio는 빌드와 관리를 용이하게 하기 위해 디스크의 실제 폴더 구조와는 별개로 가상 폴더 구조를 생성합니다.

 

솔루션 구조 내 주요 폴더

  • Engine 폴더 : 언리얼 엔진 자체 소스 코드와 리소스가 담긴 곳. 에디터 작동, 엔진 코어 관련 코드가 포함되어 있습니다.
  • Game 폴더 : 우리가 만든 프로젝트 코드가 모두 들어 있으며, 내부에는 Source, Config, .uproject 파일 등이 있습니다.
  • Programs 폴더 : 엔진 동작에 필요한 유틸리티 프로그램이나 서버 모듈이 담겨 있습니다.
  • Rules 폴더 : 엔진과 게임 등 각 모듈의 빌드 규칙을 정의해 놓은 파일들이 모여 있습니다. 모듈 의존성, 플러그인 활성화 여부, 빌드 대상 등을 제어합니다.
  • Visualizers 폴더 : Visual Studio에서 디버깅 시 언리얼 엔진 관련 자료구조를 보기 좋게 표시하기 위한 설정 파일이 들어 있습니다.

SpartaProject.uproject 파일을 열면

{
	"FileVersion": 3,
	"EngineAssociation": "5.5",
	"Category": "",
	"Description": "",
	"Modules": [
		{
			"Name": "SpartaProject",
			"Type": "Runtime",
			"LoadingPhase": "Default"
		}
	],
	"Plugins": [
		{
			"Name": "ModelingToolsEditorMode",
			"Enabled": true,
			"TargetAllowList": [
				"Editor"
			]
		}
	]
}
  • FileVersion : 언리얼 엔진 파일의 버전을 의미합니다. 현재 언리얼 엔진이 공통으로 사용하는 값은 3입니다.
  • EngineAssociation : 셀렉터가 구동할 언리얼 엔진의 버전을 지정합니다. GitHub에서 다운받아서 빌드한 커스텀 버젼의 경우에는 프로젝트의 GUID가 지정됩니다. 따라서 항목의 값은 문자열입니다.
  • Modules 항목 - Modules 설정은 여러개의 객체로 구성되는데 우리 프로젝트에는 하나의 모듈이 있고, 이의 이름은 SpartaProject이고 Runtime 타입이다." 라고 해석할 수 있습니다.

이 명령을 확인하면 언리얼 에디터는 Binaries 폴더에서 SpartaProject 라는 모듈을 찾습니다. 해당 모듈의 이름은 UnrealEditor-SpartaProject.dll 입니다. 여기서 DLL은 동적 라이브러리입니다.

 

이렇게 C++ 코드를 컴파일한 결과물을 언리얼 엔진에서는 모듈(Module)이라 하고, 게임 로직을 담은 모듈에는 특별히 게임 모듈(Game Module)이라는 명칭을 사용합니다.

 

출처 : https://unreal6.tistory.com/120

언리얼 C++ 프로젝트의 컴파일과 실행 과정을 요약하면 위와 같습니다.

 

 

관련 내용은 이득우 선생님의 블로그에서 더 자세하게 볼 수 있습니다.

https://blog.naver.com/ideugu/220905078054

 

[1-1] 언리얼 C++ 프로젝트의 구성

안녕하세요. 첫 C++ 강좌네요. ^^   첫 강좌는 언리얼 C++ 프로젝트의 구성에 대해 정리해보았습니...

blog.naver.com

 

 

 

출처 : 이득우의 언리얼 C++ 게임 개발의 정석, https://blog.naver.com/ideugu/220905078054

'내일배움캠프 > TIL' 카테고리의 다른 글

[내일배움캠프 Day26] C++ 6주차 과제 진행  (1) 2025.01.22
[내일배움캠프 Day25] 액터의 라이프 사이클  (2) 2025.01.21
[내일배움캠프 Day23] CH2 팀 프로젝트  (3) 2025.01.17
[내일배움캠프 Day18] 인라인 함수(inline function)  (2) 2025.01.10
[내일배움캠프 Day17] C++ 빌드 과정  (1) 2025.01.09
'내일배움캠프/TIL' 카테고리의 다른 글
  • [내일배움캠프 Day26] C++ 6주차 과제 진행
  • [내일배움캠프 Day25] 액터의 라이프 사이클
  • [내일배움캠프 Day23] CH2 팀 프로젝트
  • [내일배움캠프 Day18] 인라인 함수(inline function)
개발자 밍
개발자 밍
dev0404 님의 블로그 입니다.
  • 개발자 밍
    Developer
    개발자 밍
  • 전체
    오늘
    어제
    • 분류 전체보기 (88)
      • 강의 (8)
        • UE Climbing System (3)
        • UE Dungeon (1)
        • HCI (4)
      • 책 (18)
        • 객체지향의 사실과 오해 (5)
        • Effective C++ (3)
        • 이득우의 게임 수학 (4)
        • 이것이 취업을 위한 컴퓨터 과학이다 (4)
        • 리뷰 (2)
      • C++ (2)
      • 알고리즘 (2)
      • 자료구조 (1)
      • Unreal (4)
      • 내일배움캠프 (52)
        • TIL (52)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    내일배움캠프
    Effective
    컴퓨터구조
    컴퓨터 구조
    그래픽스
    언리얼
    게임수학
    자료구조
    c++
    객체지향
    알고리즘
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
개발자 밍
[내일배움캠프 Day24] 개발 환경 설정
상단으로

티스토리툴바