개발 환경 설정
Epic Games Launcher와 Visual Studio에 C++ 개발 도구를 설치하고 엔진 연동 상태를 검증합니다.
언리얼 C++ 코드를 빌드하려면 엔진 하나만 설치해서는 부족합니다. 엔진과 함께 코드를 편집할 IDE, 실제로 코드를 기계어로 바꾸는 컴파일러(MSVC), 그리고 Windows용 프로그램을 만드는 데 필요한 Windows SDK가 모두 맞는 버전으로 갖춰져야 합니다. 이 가운데 하나라도 엔진이 요구하는 버전과 다르면, 에디터는 잘 열리는데 첫 빌드에서 실패하는 일이 생깁니다.
이 글은 Windows에서 Epic Games Launcher와 Visual Studio를 쓰는 흐름을 따릅니다. 이 교재는 2026년 11월 기준 최신 정식 버전인 언리얼 엔진 5.8(핫픽스 5.8.4)을 기준으로 하며, 버전마다 요구하는 도구가 다르므로 먼저 사용할 엔진 버전을 정하고 Epic의 Visual Studio 개발 환경 설정 문서에서 그 버전에 맞는 IDE, MSVC, Windows SDK를 확인합니다.
Epic Games Launcher로 엔진 설치하기
언리얼 엔진은 Epic Games Launcher로 설치하고 관리하는 것이 가장 쉽습니다. Epic Games 계정이 이미 있다면 로그인만 하면 되고, 없다면 Epic Games 웹사이트에서 만들 수 있습니다.
먼저 Epic Games 공식 웹사이트(www.epicgames.com)에서 Epic Games Launcher를 내려받아 설치합니다. 설치 과정은 일반적인 프로그램 설치와 같습니다. 설치가 끝나면 런처를 실행해 Epic Games 계정으로 로그인하고, 왼쪽 메뉴에서 Unreal Engine 탭을 엽니다.
Unreal Engine 탭의 라이브러리(Library)에서 엔진 버전 옆의 추가 버튼을 누르면, 최신 버전을 포함해 설치할 수 있는 엔진 버전 목록이 나타납니다. 학습 프로젝트에 쓸 버전을 골라 설치 버튼을 누릅니다. 이 교재는 언리얼 엔진 5.8을 기준으로 설명하며, 런처와 엔진의 버전에 따라 메뉴와 선택 항목이 조금 다를 수 있습니다. 설치 경로는 특별한 이유가 없다면 기본값을 그대로 두는 편이 좋습니다.
옵션 버튼을 누르면 함께 설치할 구성 요소를 고를 수 있습니다. Starter Content(시작 콘텐츠)를 제공하는 버전이라면 초반 학습에 쓸 기본 에셋이 들어 있어 편리하지만, C++ 컴파일에 꼭 필요한 것은 아닙니다. Editor Symbols for Debugging(디버깅용 에디터 심볼)은 디버거로 엔진 코드 안까지 따라 들어갈 때 쓰이므로, 디스크 용량이 허락한다면 설치해 두는 것이 좋습니다. 이것 역시 필수는 아닙니다. 구성 요소를 고른 뒤 설치를 진행하는데, 엔진의 용량이 크므로 설치에 꽤 오랜 시간이 걸릴 수 있습니다.
Visual Studio와 C++ 도구 설치하기
이 교재는 코드 편집과 디버깅에 Microsoft Visual Studio를 씁니다. Visual Studio는 언리얼 C++ 프로젝트에서 코드 작성, 디버깅, 빌드 구성을 관리하는 IDE입니다. 여기서 주의할 점은 IDE가 설치된 것과 프로젝트에 맞는 컴파일러와 SDK가 갖춰진 것이 서로 다른 일이라는 점입니다. IDE는 편집기일 뿐이고, 실제 빌드는 설치 관리자에서 함께 고른 MSVC와 Windows SDK가 합니다.
Microsoft 공식 웹사이트(visualstudio.microsoft.com)에서 Visual Studio Community를 내려받습니다. Community 버전은 Microsoft가 정한 개인과 조직별 사용 조건이 있으므로 자신의 경우에 해당하는지 확인합니다. 언리얼 엔진 5.8은 Visual Studio 2022(17.14 이상)와 Visual Studio 2026(18.0 이상)을 지원하며, Epic의 문서는 일반적인 개발에는 Visual Studio 2026을 권장합니다.
내려받은 설치 파일을 실행하면 설치 관리자에서 워크로드(workload)를 고르는 화면이 나옵니다. 언리얼 엔진 개발에는 C++를 사용한 데스크톱 개발(Desktop development with C++)과 C++를 사용한 게임 개발(Game development with C++)이 필요합니다. 엔진 5.8 기준으로 Epic의 문서는 여기에 .NET 데스크톱 개발(.NET desktop development)과 .NET MAUI 개발 워크로드도 요구하고, 게임 개발 워크로드 안에서는 Unreal Engine installer, C++ profiling tools, C++ AddressSanitizer, Windows SDK 같은 구성 요소를 선택하도록 안내합니다. Visual Studio 2026을 쓴다면 .NET 10.0도 필요합니다.
설치 관리자의 오른쪽 설치 세부 정보에서 실제로 무엇이 선택되었는지 공식 문서의 목록과 하나씩 비교합니다. 언리얼 관련 구성 요소가 항상 자동으로 선택된다고 가정하면 안 되고, 앞의 두 C++ 워크로드만으로 목록이 완성되었다고 판단해서도 안 됩니다. 선택을 마쳤으면 설치 버튼을 눌러 진행하며, 이 설치도 꽤 오래 걸릴 수 있습니다.
설치가 끝났다는 것만으로는 아직 충분하지 않습니다. C++ 프로젝트를 만들고, IDE를 열고, 첫 빌드를 하고, 그 결과가 에디터에 반영되는 작은 확인 과정을 끝까지 통과해야 실제로 개발할 수 있는 환경이 준비된 것입니다.
에디터가 Visual Studio를 인식하는지 확인하기
모든 설치가 끝났다면 언리얼 엔진이 Visual Studio를 제대로 인식하는지 확인합니다. Epic Games Launcher에서 설치한 엔진을 실행하고, 프로젝트 브라우저에서 게임(Games) 범주의 블랭크(Blank) 템플릿을 고릅니다. 이때 프로젝트 기본 설정에서 C++가 선택되어 있는지 꼭 확인해야 합니다. 블루프린트로 만든 프로젝트에는 C++ 소스 폴더가 생기지 않기 때문입니다. 프로젝트 이름을 입력하고 생성 버튼을 누릅니다.
새 프로젝트가 열리면 에디터 상단 메뉴의 Edit > Editor Preferences(편집 메뉴의 에디터 개인 설정)로 이동합니다. 왼쪽 목록의 일반(General) 아래에 있는 소스 코드(Source Code) 항목을 찾아, 소스 코드 에디터(Source Code Editor) 드롭다운에 설치한 엔진 버전이 지원하는 Visual Studio가 선택되어 있는지 확인합니다. 다른 것이 선택되어 있다면 Visual Studio로 바꾸고 에디터를 다시 시작합니다.
여기까지 확인한 것은 에디터가 선택한 Visual Studio를 소스 편집기로 인식한다는 사실입니다. 컴파일러와 SDK부터 실제 실행까지 이어지는지는, 다음 글에서 학습에 쓸 MyFirstCPPProject를 새로 만들어 그 Editor 타깃을 빌드하고 에디터를 실행해 봐야 알 수 있습니다. 이 글에서 만든 프로젝트는 소스 코드 에디터 설정을 확인하는 데만 썼으므로, 이후 실습은 다음 글의 프로젝트로 이어 갑니다.
함께 챙겨 둘 설정
Visual Studio를 설치하는 과정에서 특정 버전의 Windows SDK가 빠지는 경우가 있습니다. 컴파일 오류가 나면 Visual Studio 설치 관리자를 다시 실행해 개별 구성 요소(Individual components) 탭에서 필요한 버전의 Windows SDK를 설치합니다. 엔진 5.8 기준으로 Epic의 문서는 Windows SDK 10.0.22621.0 이상, 권장 10.0.26100 이상을, MSVC는 14.38 이상, 권장 14.50을 적고 있습니다. 어떤 버전이 필요한지는 선택한 엔진의 호환 표와 실제 빌드 로그를 함께 보고 판단합니다.
엔진 버전을 바꾸는 일은 가볍게 하지 않습니다. 버전이 바뀌면 코드와 플러그인, 에셋이 새 버전과 호환되는지 다시 확인해야 하기 때문입니다. 학습하는 동안에는 쓰고 있는 엔진 버전을 기록해 두고, 같은 환경에서 결과를 다시 만들어 볼 수 있게 합니다.
Visual Assist나 ReSharper C++ 같은 Visual Studio 확장은 C++ 코드 탐색과 분석 기능을 더해 줍니다. 필수는 아니므로 기본 환경으로 먼저 시작해도 됩니다.
설치에서 실행까지 차례로 확인하기
설치 확인에서 실행 확인까지
에디터 실행→소스 편집→Editor 타깃 빌드→같은 모듈/배치 Play의 성공 증거가 단계별로 달라진다. 각 성공이 다음 검증을 대신하지 않는 상태를 표시할 수 있다.
UNREAL C++ · CH1-2
설치 확인에서 실행 확인까지
에디터 실행, 소스 편집, Editor 타깃 빌드, 배치한 액터의 Play는 각각 다른 증거입니다.
같은 프로젝트의 에디터 실행과 소스 편집은 빌드 성공을 뜻하지 않는다. Editor 타깃 빌드를 별도로 확인하며 성공 산출물의 같은 모듈·배치에서 Play를 시험한다. 빌드 실패 시 첫 Build Output 오류를 확인한다.
관계도 해설과 예제 원자료
| 확인 | 알 수 있는 것 | 아직 확인할 것 |
|---|---|---|
| 에디터가 열림 | 선택한 엔진을 실행할 수 있음 | 프로젝트용 C++ 컴파일러와 SDK 준비 여부 |
| IDE에서 소스가 열림 | 프로젝트 파일을 편집할 수 있음 | 올바른 Editor 타깃의 UHT·컴파일·링크 결과 |
| Editor 타깃 빌드 성공 | 해당 소스의 빌드 산출물이 만들어짐 | 같은 프로젝트 에디터의 모듈 로드와 클래스 반영 |
| 배치 후 Play 확인 | 선택한 인스턴스의 동작을 시험할 수 있음 | 설정한 속성과 로그가 의도한 대상을 가리키는지 |
- 에디터가 열림
- 알 수 있는 것: 선택한 엔진을 실행할 수 있음아직 확인할 것: 프로젝트용 C++ 컴파일러와 SDK 준비 여부
- IDE에서 소스가 열림
- 알 수 있는 것: 프로젝트 파일을 편집할 수 있음아직 확인할 것: 올바른 Editor 타깃의 UHT·컴파일·링크 결과
- Editor 타깃 빌드 성공
- 알 수 있는 것: 해당 소스의 빌드 산출물이 만들어짐아직 확인할 것: 같은 프로젝트 에디터의 모듈 로드와 클래스 반영
- 배치 후 Play 확인
- 알 수 있는 것: 선택한 인스턴스의 동작을 시험할 수 있음아직 확인할 것: 설정한 속성과 로그가 의도한 대상을 가리키는지
IDE 오류 목록에는 후속 오류가 섞일 수 있습니다. 같은 프로젝트의 Build Output에서 먼저 발생한 오류부터 확인합니다.
이 예의 조건
- 본문과 원 도표에 제시된 사례의 입력·조건을 사용합니다. 설명용 수치나 독립 비교 경로는 각 단계에 표시합니다.
- 현재 상태·값과 전환 근거의 위치는 모든 단계에서 같습니다. 조건이 맞지 않거나 실행되지 않은 경로를 성공한 동작으로 해석하지 않습니다.
| 관찰·상황 | 값·보충 정보 | 변화·이유 |
|---|---|---|
| 에디터·편집 에디터 실행 뒤 소스를 편집한다. |
|
|
| Editor 빌드 선택한 Editor target을 빌드한다. |
|
|
| Play 확인 해당 모듈·배치의 동작을 플레이에서 확인한다. |
|
|
설치 확인에서 실행 확인까지
에디터 실행→소스 편집→Editor 타깃 빌드→같은 모듈/배치 Play의 성공 증거가 단계별로 달라진다. 각 성공이 다음 검증을 대신하지 않는 상태를 표시할 수 있다.
UNREAL C++ · CH1-2
설치 확인에서 실행 확인까지
에디터 실행, 소스 편집, Editor 타깃 빌드, 배치한 액터의 Play는 각각 다른 증거입니다.
같은 프로젝트의 에디터 실행과 소스 편집은 빌드 성공을 뜻하지 않는다. Editor 타깃 빌드를 별도로 확인하며 성공 산출물의 같은 모듈·배치에서 Play를 시험한다. 빌드 실패 시 첫 Build Output 오류를 확인한다.
관계도 해설과 예제 원자료
| 확인 | 알 수 있는 것 | 아직 확인할 것 |
|---|---|---|
| 에디터가 열림 | 선택한 엔진을 실행할 수 있음 | 프로젝트용 C++ 컴파일러와 SDK 준비 여부 |
| IDE에서 소스가 열림 | 프로젝트 파일을 편집할 수 있음 | 올바른 Editor 타깃의 UHT·컴파일·링크 결과 |
| Editor 타깃 빌드 성공 | 해당 소스의 빌드 산출물이 만들어짐 | 같은 프로젝트 에디터의 모듈 로드와 클래스 반영 |
| 배치 후 Play 확인 | 선택한 인스턴스의 동작을 시험할 수 있음 | 설정한 속성과 로그가 의도한 대상을 가리키는지 |
- 에디터가 열림
- 알 수 있는 것: 선택한 엔진을 실행할 수 있음아직 확인할 것: 프로젝트용 C++ 컴파일러와 SDK 준비 여부
- IDE에서 소스가 열림
- 알 수 있는 것: 프로젝트 파일을 편집할 수 있음아직 확인할 것: 올바른 Editor 타깃의 UHT·컴파일·링크 결과
- Editor 타깃 빌드 성공
- 알 수 있는 것: 해당 소스의 빌드 산출물이 만들어짐아직 확인할 것: 같은 프로젝트 에디터의 모듈 로드와 클래스 반영
- 배치 후 Play 확인
- 알 수 있는 것: 선택한 인스턴스의 동작을 시험할 수 있음아직 확인할 것: 설정한 속성과 로그가 의도한 대상을 가리키는지
IDE 오류 목록에는 후속 오류가 섞일 수 있습니다. 같은 프로젝트의 Build Output에서 먼저 발생한 오류부터 확인합니다.
이 예의 조건
- 본문과 원 도표에 제시된 사례의 입력·조건을 사용합니다. 설명용 수치나 독립 비교 경로는 각 단계에 표시합니다.
- 현재 상태·값과 전환 근거의 위치는 모든 단계에서 같습니다. 조건이 맞지 않거나 실행되지 않은 경로를 성공한 동작으로 해석하지 않습니다.
| 관찰·상황 | 값·보충 정보 | 변화·이유 |
|---|---|---|
| 에디터·편집 에디터 실행 뒤 소스를 편집한다. |
|
|
| Editor 빌드 선택한 Editor target을 빌드한다. |
|
|
| Play 확인 해당 모듈·배치의 동작을 플레이에서 확인한다. |
|
|
위 그림은 에디터가 열린 것, 소스를 편집할 수 있는 것, Editor 타깃 빌드가 성공한 것, 배치한 액터를 Play로 확인한 것이 각각 다른 사실을 알려 준다는 점을 보여 줍니다. 그림의 표처럼 에디터가 열리면 선택한 엔진을 실행할 수 있다는 것까지만 알 수 있고, 프로젝트용 C++ 컴파일러와 SDK가 준비되었는지는 아직 모릅니다. IDE에서 소스가 열리면 프로젝트 파일을 편집할 수 있다는 뜻이지만, 올바른 Editor 타깃의 언리얼 헤더 툴(UHT) 처리와 컴파일, 링크가 성공하는지는 따로 확인해야 합니다.
Editor 타깃 빌드가 성공하면 그 소스의 빌드 결과물이 만들어진 것이고, 같은 프로젝트의 에디터가 그 모듈을 불러와 클래스를 반영하는지는 그다음에 확인합니다. 마지막으로 액터를 배치하고 Play해 보면 선택한 인스턴스의 동작을 시험할 수 있으며, 이때도 설정한 속성과 로그가 의도한 대상을 가리키는지 살펴야 합니다. 단계 그림도 같은 순서로, 에디터가 열린 것이 빌드 성공을 대신하지 않고 컴파일 성공이 실제 배치에서의 동작 성공을 대신하지 않는다는 점을 한 단계씩 보여 줍니다.
빌드가 실패하면 그림 아래쪽 경로처럼 Build Output의 첫 오류부터 확인합니다. IDE의 오류 목록에는 앞선 오류 때문에 생긴 후속 오류가 섞여 있을 수 있으므로, 같은 프로젝트의 Build Output에서 가장 먼저 나온 오류와 대상 엔진, 프로젝트 경로를 함께 봅니다.
이 순서를 지키지 않으면 엉뚱한 곳에서 시간을 보내기 쉽습니다. 예를 들어 에디터와 Visual Studio에서 모두 MyFirstCPPProject를 열었더라도 두 프로젝트의 폴더가 다르면, 같은 이름의 다른 복사본을 시험하고 있을 수 있습니다. 그래서 프로젝트의 전체 경로와 선택한 엔진 버전을 먼저 맞추고, 빌드 로그에서 어떤 컴파일러와 SDK가 선택되었는지, 첫 실패 원인이 무엇인지를 확인합니다. Starter Content나 에디터 심볼이 설치되었는지는 C++ 컴파일러가 준비되었는지와 관계가 없습니다.
정리
- 언리얼 C++ 개발에는 엔진과 함께 IDE, MSVC 컴파일러, Windows SDK가 엔진 버전에 맞게 갖춰져야 합니다. 언리얼 엔진 5.8은 Visual Studio 2022 17.14 이상 또는 Visual Studio 2026 18.0 이상을 지원합니다.
- 엔진은 Epic Games Launcher의 Unreal Engine 탭 라이브러리에서 설치하며, Starter Content와 디버깅용 에디터 심볼은 선택 사항입니다.
- Visual Studio 설치 관리자에서는 C++ 데스크톱 개발과 C++ 게임 개발 워크로드를 비롯해 공식 문서가 요구하는 워크로드와 구성 요소를 직접 대조해 고릅니다.
- 에디터 개인 설정의 소스 코드 에디터 항목으로 에디터가 Visual Studio를 인식하는지 확인합니다.
- 에디터 실행, 소스 편집, Editor 타깃 빌드, Play 확인은 서로 다른 단계이며, 앞 단계의 성공이 다음 단계를 대신하지 않습니다. 빌드가 실패하면 Build Output의 첫 오류부터 봅니다.
연습 문제
1. 소스는 열리는데 빌드가 실패하면
Visual Studio에서 소스 파일은 열리지만, 첫 빌드가 필요한 Windows SDK를 찾지 못하고 끝났습니다. IDE 실행, Editor 타깃 빌드, Play 가운데 어느 단계까지 성공한 것일까요? 렌더링 품질 설정을 바꾸면 이 실패가 해결되었다고 판단할 수 있을까요?
해설 보기
소스 편집까지는 성공했지만 Editor 타깃 빌드는 실패했으므로, Play는 아직 시험할 수 없는 상태입니다. 선택한 엔진의 공식 요구 사항과 빌드 로그가 가리키는 SDK, MSVC의 설치 상태를 비교하고, 빠진 도구를 설치한 뒤 같은 타깃을 다시 빌드해야 합니다.
렌더링 품질은 도구 체인이 빠진 문제와 관계가 없는 설정입니다. 설정을 바꿨다고 빌드나 Play가 성공했다고 볼 수 없으며, 다시 빌드한 결과로 확인해야 합니다.
2. 같은 이름의 두 프로젝트
에디터에서 연 MyFirstCPPProject와 Visual Studio에서 연 MyFirstCPPProject의 폴더 경로가 서로 다릅니다. Visual Studio에서 코드를 고쳐 빌드에 성공했는데 에디터에는 바뀐 내용이 보이지 않는다면, 무엇부터 확인해야 할까요?
해설 보기
먼저 두 프로젝트의 전체 경로가 같은지 확인합니다. 경로가 다르면 Visual Studio는 다른 복사본을 빌드했으므로, 지금 에디터가 연 프로젝트에는 아무 변화가 없는 것이 당연합니다.
같은 프로젝트의 .uproject를 기준으로 에디터와 Visual Studio를 다시 열고, 선택한 엔진 버전도 같은지 확인한 뒤 Editor 타깃을 다시 빌드합니다. 빌드 성공 여부만으로는 어느 프로젝트를 빌드했는지 알 수 없으므로, 빌드 로그에 나온 프로젝트 경로도 함께 봅니다.
다음 글 첫 번째 C++ 프로젝트 생성에서는 Blank C++ 프로젝트를 만들고, 생성된 파일과 첫 빌드 과정을 살펴봅니다.