Skip to content

Instantly share code, notes, and snippets.

@earlbread
Last active May 20, 2019 12:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save earlbread/fe5f271deec1d43e1c0d5dc950d11a58 to your computer and use it in GitHub Desktop.
Save earlbread/fe5f271deec1d43e1c0d5dc950d11a58 to your computer and use it in GitHub Desktop.
Libplanet 개발환경 설정 - Rider

Libplanet 개발 환경 설정 - Rider

Libplanet은 널리 쓰이는 게임 엔진인 Unity를 염두에 두어, C#으로 작성되었습니다. 따라서 C# 개발 환경이 필요합니다. 다행히 .NET은 요 몇 년 사이 여러 플랫폼에서 두루 개발할 수 있는 여건이 마련되었습니다. 이 문서는 Linux, macOS, Windows 모두에서 Libplanet 개발을 하는 데에 필요한 환경을 설정하고 빌드하는 방법을 설명합니다.

따라 하면서 잘 안되는 게 있으시면 저희 Discord 서버에 있는 #libplanet-users-kr 채널에 오셔서 물어보셔도 됩니다.

Mono 및 Visual Studio 2019용 Build Tools

여러분이 Linux 또는 macOS를 쓴다면 C# 컴파일러와 가상 머신을 제공하는 Mono를 설치해야 합니다. 예를 들어 Ubuntu Linux라면 sudo apt install mono-devel 명령으로 설치할 수 있습니다. macOS이고 Homebrew를 쓰신다면 brew cask install mono-mdk 명령으로 설치할 수 있습니다.

Windows라면 Visual Studio 2019용 Build Tools(Build Tools for Visual Studio 2019)에 포함된 C# 컴파일러 등을 설치해야 합니다. 설치할 때 다음 워크로드를 선택하셔야 합니다.

  • Windows.NET 데스크톱 빌드 도구 (.NET desktop build tools)
  • 기타 도구 집합 (Other Toolsets) → .NET Core 빌드 도구 (.NET Core build tools)

Rider

Rider는 Linux, macOS, Windows에서 모두 돌아가는 .NET IDE 입니다. 유료 프로그램이지만 30일의 평가기간을 제공하며, 코드 작성뿐만 아니라 테스트, 디버깅 그리고 코드 탐색 등 C# 및 .NET 개발에서 필요한 많은 기능을 지원하기 때문에, 여기서는 Rider를 쓰는 것을 예로 들겠습니다. VS Code를 사용하고 싶은 분들은 VS Code 환경설정을 참고해주세요. (원하는 편집기를 쓰고 싶으면, 해당 편집기에 OmniSharp 확장이 있는지 확인하세요. 하지만 대개 연동을 설정하는 데에 생각보다 시간이 많이 걸립니다.)

Keymap 설정

Rider를 설치하고 최초 실행 시 Do not import settings를 선택하게 되면 UI 테마, 컬러 등 여러 가지 설정을 선택할 수 있는 화면이 나오는데, 여기서 Rider의 단축키 키맵도 설정하게 됩니다. Rider는 Visual Studio, ReSharper 그리고 IDEA Default 까지 모두 세가지 키맵을 기본적으로 제공합니다. 여기서 나오는 단축키들은 모두 IDEA Default 키맵을 사용하는 기준으로 설명하도록 하겠습니다. IDEA Default 키맵은 기본설정이 아니므로 사용하려면 아래 화면과 같이 키맵 설정 화면에서 선택해야 합니다. 다른 키맵을 사용하시는 분들은 Keyboard Shortcuts Reference를 참고해주세요.

Rider 키맵을 선택하는 모습.

저장소 받기

Git에 익숙하다면 CLI 등 편하신 방법으로 Libplanet 저장소를 받으신 뒤, Rider에서 FileOpenSolution or Project를 눌러 받은 저장소 폴더에서 Libplanet.sln을 여시면 됩니다. 익숙하지 않다면 아래 방법을 따라하세요.

Rider를 실행 후 처음 나오는 화면에서 Check out from Version ControlGit을 선택합니다.

그러면 받을 저장소 주소(Repository URL)와 저장소를 받을 폴더를 선택하는 창이 뜨는데, 저장소를 받을 폴더는 평소 작업물을 두는 경로를 적당히 선택하시고, 받을 저장소 주소에는 아래 주소를 입력합니다.

https://github.com/planetarium/libplanet.git

Rider에서 Check out from Version Control -> Git을 선택한 모습.

프로젝트가 다 받아지면 Rider에 Libplanet 프로젝트가 띄워집니다.

빌드

BuildBuild Solution을 누르거나 Ctrl F9 키(macOS는 Command F9 키)를 누르면 빌드가 진행되며, 하단에 빌드 진행상황이 표시됩니다.

빌드된 결과물은 Libplanet/bin/Debug/Libplanet.Stun/bin/Debug/ 폴더 안에 생깁니다.

만약 빌드중 오류가 나면 하단 패널에 오류 메시지가 나오며, 오류 항목을 누르면 관련된 소스 코드가 열립니다.

빌드 오류 항목을 통해 문제가 있는 소스 코드를 연 모습.

테스트

Libplanet은 모든 구현 코드에 대해 가능한 모든 단위 테스트를 작성하는 것을 지향하고 있습니다. 저장소 안에는 프로젝트 폴더가 여럿 있는데, 그 중에서 LibplanetLibplanet.Stun이 구현 프로젝트로, 각각 Libplanet.dllLibplanet.Stun.dll로 컴파일되어 라이브러리로 배포됩니다.

다른 프로젝트 폴더로 Libplanet.TestsLibplanet.Stun.Tests가 있는데, 테스트 코드는 이 프로젝트들에 포함됩니다. 구현과 테스트는 이름이 규칙적으로 연관되며, 예를 들어 Libplanet.Crypto.PublicKey 클래스에 대한 테스트는 Libplanet.Tests.Crypto.PublicKeyTest 클래스에 작성되는 식입니다.

네비게이션 창에서 솔루션을 선택하고 TestsRun Unit Tests를 누르거나 Ctrl ; R 키 (macOS는 Command ; R 키) 를 누르면 전체 테스트가 실행되고, 네비게이션창에서 특정 파일을 선택하거나 에디터상의 특정 테스트에 커서를 위치시키고 테스트를 실행시키면 선택한 테스트만 실행됩니다.

테스트가 실행되면 하단 왼쪽에 테스트 진행 상황과 결과가 표시되며, 오류가 발생할 경우 하단 오른쪽 Output 창에서 확인할 수 있습니다.

테스트 실패 결과를 확인하는 모습.

그 외에 Rider를 이용하는데 다음 단축키가 유용합니다.

단축키 macOS 단축키 기능
Ctrl Alt O Command Alt O 클래스나 메소드를 이름으로 찾습니다.
Ctrl Shift O Command Shift O 파일을 파일 이름으로 찾습니다.
Ctrl과 함께 식별자 클릭 Command와 함께 식별자 클릭 해당 클래스·메소드·네임스페이스가 정의된 곳으로 이동합니다.

질문

따라 하면서 잘 안되는 게 있으시면 저희 Discord 서버에 있는 #libplanet-users-kr 채널에 오셔서 물어보셔도 됩니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment