| [없음] | 프로젝트의 독립형 실행파일 버전을 빌드하는 환경설정으로, 해당 플랫폼용 콘텐츠의 쿠킹이 필요합니다. |
| **Editor** | 언리얼 에디터에서 프로젝트를 열어 코드 변경내용이 반영된 모습을 확인할 수 있으려면, 프로젝트를 **Editor** 환경설정으로 빌드해야 합니다. |
| **Uncooked** | 이러한 유형의 환경설정을 사용해서 빌드된 프로젝트는 "-game" 플래그를 붙여 언리얼 에디터에서 열 수 있습니다. 그러면 새 창에 쿠킹되지 않은 콘텐츠로 된 게임이 실행되는데, 에디터에서 **플레이: > 새 창에서 > 디폴트 플레이어 스타트** 와 동일합니다. |
[/PUBLISH:Rocket]
[PUBLISH:Licensee]
각 빌드 환경설정에는 두 개의 키워드가 들어있습니다. 그 중 첫 번째는 엔진과 게임 프로젝트의 상태를 나타냅니다. 예를 들어 **DebugGame** 환경설정을 사용해서 컴파일을 하는 경우,
엔진 코드를 제외한 게임 코드 디버깅이 가능합니다. 둘째 키워드는 빌드 대상이 되는 타겟입니다. 프로젝트를 언리얼 에디터에서 열고자 하는 경우, 타겟 키워드를 **Editor** 로 붙여 빌드해 줘야 하지만,
서버에서 실행되는 게임 실행파일 버전을 만들려는 경우 타겟 키워드를 **Server** 로 빌드해야 합니다.
|빌드 환경설정 - 상태| 설명 |
|-------------|-------------|
| **Debug** | 엔진과 게임 코드 모두 디버그 환경설정으로 빌드합니다. |
| **DebugGame** | 엔진 최적화는 하되 게임 코드 디버깅은 가능하도록 빌드하는 환경설정입니다. 디버깅 전용 게임 모듈에 이상적인 환경설정입니다. |
| **Development** | Release 에 상응하는 환경설정입니다. 엔진과 게임 코드 모두 이 환경설정으로 빌드됩니다. |
| **Editor** | 언리얼 에디터에서 프로젝트를 열어 모든 코드 변경내용이 반영된 것을 확인할 수 있으려면, 프로젝트를 **Editor** 환경설정으로 빌드해야 합니다. |
| **Server** | `<Game>Server.Target.cs` 파일이 있는 경우, **Server** 빌드 환경설정이 유효해 집니다. |
| **Uncooked** | 이러한 유형의 환경설정을 사용해서 빌드된 프로젝트는 "-game" 플래그를 붙여 언리얼 에디터에서 열 수 있습니다. 그러면 새 창에 쿠킹되지 않은 콘텐츠로 된 게임이 실행되는데, 에디터에서 **플레이: > 새 창에서 > 디폴트 플레이어 스타트** 와 동일합니다. |
계속하기 전, 윈도우에서는 Visual Studio 2013 Professional or Visual Studio Express 2013 for Windows Desktop, 맥에서는 Xcode 가 설치되었는지 확인해 주시기 바랍니다.
[/REGION]
[REGION:tip]
Visual Studio 에서 빌드할 때는, 게임 프로젝트만 컴파일하는 것이지, 언리얼 에디터는 컴파일되지 않습니다.
[/REGION]
[/PUBLISH:Rocket]
[PUBLISH:Licensee]
[REGION:tip]
Visual Studio 에서 빌드할 때, 게임 프로젝트에 추가로 엔진도 컴파일하게 됩니다.
[/REGION]
[/PUBLISH:Licensee]
[PUBLISH:Licensee]
1. **Solution Configuration** 을 빌드하고자 하는 환경설정으로 설정합니다. 이 예제에서는 **Development Editor** 로 설정했습니다. 각각의 환경설정에 대한 설명은 [빌드 환경설정](#빌드환경설정) 부분을 참고해 주시기 바랍니다.

1. 게임 프로젝트에 우클릭한 다음 **Rebuild** 를 선택하여 리컴파일합니다.

[/PUBLISH:Licensee]
[PUBLISH:Rocket]
1. **Solution Configuration** 을 빌드하고자 하는 환경설정으로 설정합니다. 이 예제에서는 **Development** 로 설정합니다. 각각의 환경설정에 대한 설명은 [빌드 환경설정](#빌드환경설정) 부분을 참고해 주시기 바랍니다.

1. 게임 프로젝트에 우클릭한 다음 **Rebuild** 를 선택하여 리컴파일합니다.

[/PUBLISH:Rocket]
이제 컴파일된 프로젝트로 [엔진을 실행](GettingStarted/RunningUnrealEngine) 시킬 수 있습니다.
[EXCERPT:MatchEXE]
[PUBLISH:Licensee]
[REGION:note]
엔진을 실행할 때는, 프로젝트 리빌드시 선택한 빌드 환경설정에 일치하는 언리얼 엔진 실행파일을 사용하는 것이 중요합니다. 예를 들어 프로젝트를 **DebugGame Uncooked** 빌드 환경설정으로
컴파일한 경우, `UE4-Win64-DebugGame.exe` 파일에 게임 정보를 인수로 붙여 실행시켜야 할 것입니다. 바이너리 파일 작명 규칙 관련 상세 정보는 [](Programming/Development/BuildingUnrealEngine) 문서를 참고해 주시기 바랍니다.
[/REGION:note]
[/PUBLISH:Licensee]
[PUBLISH:Rocket]
[REGION:note]
언리얼을 실행할 때 중요한 점은, **Uncooked** 환경설정으로 프로젝트를 리빌드한 경우 `-game` 플래그를 붙여야 하고, **Debug** 환경설정으로 프로젝트를 리빌드한 경우 `-debug` 플래그를 붙여야 합니다.
[/REGION:note]
[/PUBLISH:Rocket]
[/EXCERPT:MatchEXE]
[PUBLISH:Rocket]
### Visual Studio 알려진 문제
| 문제 | 해법 |
| ---- | ---- |
| "Project is out of date" 라는 메시지가 항상 나타납니다. | 사실 최신 프로젝트인데도 Visual Studio 는 오래되었다 보는 것입니다. 이 메시지는 **Do not show this dialog again** 박스를 체크하고 **No** 를 선택하여 억제시켜도 안전합니다. |
| _Debug_ 환경설정 사용시 **No Debugging Information** 창이 뜹니다. | UE4editor.exe 는 _Development_ 환경설정을 사용해서 컴파일되었기 때문입니다. 이런 경고에도 불구하고 _Debug_ 환경설정으로 컴파일해도 게임 프로젝트를 디버깅할 수 있습니다. 이 메시지는 **Do not show this dialog again** 박스를 체크하고 **Yes** 를 눌러 억제시켜도 안전합니다. |
[/PUBLISH:Rocket]
[/EXCERPT:VS]
[EXCERPT:Xcode]
[PUBLISH:Rocket]
## Xcode 로 빌드하기
[REGION:tip]
Xcode 에서 빌드할 때는, 프로젝트만 컴파일하는 것이지, 에디터는 아닙니다.
[/REGION]
**프로젝트를 컴파일하려면:**
언리얼 엔진 Xcode 프로젝트는 Xcode 의 **Product > Build For > Profiling** 사용시 Development 환경설정을, **Product > Build** 옵션 사용시 Debug 환경설정을 사용하도록 되어 있습니다. 이 작동방식은 타겟 스키마를 편집하여 바꿀 수 있습니다.
이제 컴파일된 프로젝트로 [엔진을 실행](GettingStarted/RunningUnrealEngine) 할 수 있습니다.
[EXCERPT:MatchDMG]
[REGION:note]
바이너리 에디터 실행시, 프로젝트 리빌드를 **Uncooked** 환경설정으로 한 경우 `-game` 플래그를, **Debug** 환경설정으로 한 경우 `-debug` 플래그를 붙여줘야 합니다.
[/REGION:note]
[/EXCERPT:MatchDMG]
### Xcode 알려진 문제
| 문제 | 해법 |
| ----- | -------- |
| 중단점에 Xcode 가 멈추지 않습니다 | [INCLUDE:#XcodeDebug] |
<!--
[EXCERPT:XcodeDebug]
Xcode 의 LLDB 디버거 설정을 올바르게 해 줘야 언리얼 엔진 프로젝트의 중단점이 제대로 처리됩니다. 홈 폴더에 .lldbinit 파일을 생성(하거나 이미 있는 경우 편집)하여 다음 줄을 추가해 줘야 합니다:
settings set target.inline-breakpoint-strategy always