Skip to content

Instantly share code, notes, and snippets.

@longfin
Forked from dahlia/vscode.md
Created January 14, 2022 08:30
Show Gist options
  • Save longfin/0602ee939fc1710cc6579865e9c18dcc to your computer and use it in GitHub Desktop.
Save longfin/0602ee939fc1710cc6579865e9c18dcc to your computer and use it in GitHub Desktop.
Libplanet 개발 환경 설정

Libplanet 개발 환경 설정 (VS Code)

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

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

.NET SDK

우선 C# 컴파일러와 가상 머신을 제공하는 .NET 6.0 SDK를 설치해야 합니다. (런타임이 아니라 SDK를 설치하셔야 합니다.) 예를 들어 macOS이고 Homebrew를 쓰신다면 brew cask install dotnet-sdk 명령으로 설치할 수 있습니다.

Visual Studio Code

Visual Studio Code(이하 VS Code)는 Linux, macOS, Windows에서 모두 돌아가는 코딩용 편집기입니다. Microsoft에서 만든 만큼 C# 및 .NET과 연동이 잘 되기 때문에, 여기서는 VS Code를 쓰는 것을 예로 들겠습니다. (원하는 편집기를 쓰고 싶으면, 해당 편집기에 OmniSharp 확장이 있는지 확인하세요. 하지만 대개 연동을 설정하는 데에 생각보다 시간이 많이 걸립니다.)

VS Code 자체만으로는 C# 및 .NET 개발에 필요한 것들이 구비되어 있지 않습니다. 다만, Microsoft에서 직접 만든 C# 확장이 있으므로 이를 설치해야 합니다.

또, 들여쓰기 등의 기본적인 코딩 스타일을 맞추기 위해 EditorConfig 확장도 설치합니다.

저장소 받기

Git에 익숙하다면 CLI 등 편하신 방법으로 Libplanet 저장소를 받으신 뒤, VS Code에서 FileOpen Folder…(macOS는 Open…)를 눌러 받은 저장소 폴더를 여시면 됩니다. 익숙하지 않다면 아래 방법을 따라하세요.

VS Code에서 Ctrl Shift P 키(macOS는 Command Shift P 키)를 눌러서 Command Palette를 띄운 뒤, “>git clone”으로 검색하여 나오는 Git: Clone 항목을 실행합니다.

Command Palette에서 Git: Clone 항목을 선택하는 모습.

그러면 받을 저장소 주소(Repository URL)을 묻는데, 아래 주소를 입력합니다.

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

그러면 저장소를 받을 폴더를 선택하는 창이 뜹니다. 평소 작업물을 두는 경로를 적당히 선택하시면, 그 아래 libplanet.net이라는 이름의 폴더가 생기게 됩니다.

다 받아지면 편집기 창 오른쪽 아래에서 Would you like to open the cloned repository?라고 물어보는데, Open Repository 버튼을 눌러 받은 저장소를 받고 편집기에 띄웁니다.

의존 라이브러리 설치

Libplanet 폴더를 VS Code로 처음 열면 편집기 창 오른쪽 아래에 아래와 같은 질문이 뜹니다.

There are unresolved dependencies. Please execute the restore command to continue.

Source: C# (Extension)

그러면 이번에도 Restore 버튼을 누르면 Libplanet이 의존하는 다른 라이브러리를 NuGet에서 받아서 설치하게 됩니다.

빌드

Ctrl Shift B 키(macOS는 Command Shift B 키)를 누르면 선택할 수 있는 태스크들이 나오는데, 그 중에서 Build를 고릅니다.

선택할 수 있는 태스크 목록.

그러면 화면에서는 별 변화가 안 보이지만, 하단을 자세히 보면 작게 Building…라고 표시됩니다. 빌드가 성공하면 해당 표시가 조용히 사라집니다.

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

만약 컴파일하다가 오류가 나면 하단에 패널이 열리며 오류 메시지가 나옵니다. 자세한 오류 메시지를 확인하려면 패널의 탭들 중에 가장 왼쪽의 PROBLEMS를 누르면 각 오류들이 잘 정리되어 표시되며, 오류 항목을 누르면 관련된 소스 코드가 열립니다.

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

테스트

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

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

테스트를 실행하기 위해서는, 빌드할 때와 마찬가지로 Ctrl Shift B 키(macOS는 Command Shift B 키)를 눌러 태스크 목록을 띄운 뒤, 그 중에서 Test를 고르면 됩니다.

빌드와 달리 테스트는 오류 유무와 무관하게 하단 패널이 열립니다. 아쉽게도 아직 테스트나 테스트 결과를 구조적으로 표시해주는 기능은 없습니다. 하단 패널의 TERMINAL 탭에 표시된 결과를 읽고 확인하셔야 합니다.

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

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

질문

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

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