Libplanet은 널리 쓰이는 게임 엔진인 Unity를 염두에 두어, C#으로 작성되었습니다. 따라서 C# 개발 환경이 필요합니다. 다행히 .NET은 요 몇 년 사이 여러 플랫폼에서 두루 개발할 수 있는 여건이 마련되었습니다. 이 문서는 Linux, macOS, Windows 모두에서 Libplanet 개발을 하는 데에 필요한 환경을 설정하고 빌드하는 방법을 설명합니다.
따라하면서 잘 안되는 게 있으시면 저희 Discord 서버에 있는 #libplanet-dev 채널에 오셔서 물어보셔도 됩니다.
우선 C# 컴파일러와 가상 머신을 제공하는 .NET 6.0 SDK를 설치해야 합니다.
(런타임이 아니라 SDK를 설치하셔야 합니다.)
예를 들어 macOS이고 Homebrew를 쓰신다면 brew cask install dotnet-sdk
명령으로 설치할 수 있습니다.
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에서 File
→ Open Folder…
(macOS는 Open…
)를 눌러
받은 저장소 폴더를 여시면 됩니다. 익숙하지 않다면 아래 방법을 따라하세요.
VS Code에서 Ctrl Shift P
키(macOS는 Command Shift P
키)를 눌러서 Command Palette
를 띄운 뒤, “>git clone”으로 검색하여 나오는
Git: Clone
항목을 실행합니다.
그러면 받을 저장소 주소(Repository URL
)을 묻는데, 아래 주소를 입력합니다.
그러면 저장소를 받을 폴더를 선택하는 창이 뜹니다. 평소 작업물을 두는 경로를 적당히 선택하시면, 그 아래 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 채널에 오셔서 물어보셔도 됩니다.