이 페이지에서는 Verse 프로그래밍 언어에 대해 설명하고 Verse의 구문을 살펴봅니다. Verse를 연습해 익숙해지고 이 페이지를 참조하시기 바랍니다.
Verse를 처음 사용하거나 프로그래밍을 처음 배우는 경우, Verse 프로그래밍 문서를 확인해 시작하는 데 도움을 받으시기 바랍니다. 온보딩 가이드 문서도 도움이 되니 확인해 보시기 바랍니다.
Verse란?
Verse 는 에픽게임즈 가 개발한 프로그래밍 언어로, 포크리 디바이스를 커스터마이징하는 등 포트나이트 언리얼 에디터 에서 나만의 게임플레이를 제작하는 데 사용할 수 있는 언어입니다.
Verse의 주요 설계 목표는 다음과 같습니다.
- 간단(Simple) 하므로 초심자 프로그래머도 쉽게 학습할 수 있습니다.
- 일반적(General) 이므로 어느 유형의 코드나 데이터도 작성할 수 있습니다.
- 생산적(Productive) 이므로 팀 단위로 프로젝트를 구축, 반복, 배포하고 코드 및 콘텐츠를 통합하는 데 있어 생산성이 높습니다.
- 정적으로 검증(Statically verified) 되어 컴파일 시 최대한 많은 종류의 런타임 오류를 잡아냅니다.
- 성능이 우수(Performant) 하여 리얼타임, 오픈 월드, 멀티플레이어 게임을 만드는 데 지장이 없습니다.
- 완전(Complete) 하므로 Verse의 모든 기능을 프로그래머가 추상화할 수 있도록 지원합니다.
- 유행을 타지 않도록(Timeless) 기존 타 언어의 기능에 얽매이지 않고 오늘날 및 가까운 미래에 필요한 기능들을 위주로 설계되었습니다.
위 설계 목표들은 Verse 프로그래밍 언어의 다음 주요 기능들의 기반이 됩니다.
- 강타입(Strongly typed) 언어이므로 개발 및 배포 시 오류가 발견되지 않고 넘어갈 가능성이 작으며, 정적 체크를 지원합니다.
- 다중 패러다임(Multi-paradigm) 언어이므로 가능한 결정론적인 등 함수 프로그래밍, 오브젝트 지향 프로그래밍, 명령형 프로그래밍의 개념들을 최대한 활용합니다. 데이터가 기본적으로 변경 불가하며, 동일한 코드와 데이터에서는 항상 같은 결과가 나온다는 것이 하나의 예시입니다.
- Verse에서는 명령문과 표현식을 구분하지 않습니다. Verse에서는 모든 것이 표현식 이므로 모든 것이 결과를 가집니다.
- 실패를 컨트롤 플로로 사용합니다. Verse에서는 true / false 값을 사용해 프로그램의 흐름을 제어하는 대신, 성공 시 값을 생성하고 실패 시 값을 생성하지 않는 실패 가능 표현식 을 사용해 프로그램의 흐름을 제어합니다. 실패 가능 표현식은
if
표현식과 같은 실패 컨텍스트 에서만 실행할 수 있습니다. - 실패 컨텍스트에서 추측 실행 을 통해 커밋하지 않으면서도 특정 작업을 시도해볼 수 있습니다. 표현식이 성공하면 표현식의 이펙트가 커밋 되지만, 표현식이 실패하면 표현식이 일어나지 않았던 것처럼 표현식의 이펙트가 롤백 됩니다. 이 방법으로 변경 사항이 누적되는 여러 작업을 실행할 수 있지만, 어느 지점에서라도 실패하면 모든 작업의 변경 사항이 되돌려집니다.
- 언어 수준에서 동시성을 지원하므로 동시에 여러 작업을 수행하기 위해 시스템 수준의 스레드에 의존하지 않아도 됩니다. 컨트롤 플로를 제어하는 것과 마찬가지로, Verse에 내장된 동시성 표현식을 사용하여 타임 플로를 제어할 수 있습니다.
에픽게임즈는 계속해서 Verse 프로그래밍 언어를 개발하고 기능을 추가하고 있습니다. Verse는 하위 호환성을 제공하므로 언어가 업데이트되더라도 오늘 작성하신 Verse 코드를 계속해서 사용해 작업하실 수 있습니다.
Verse 학습하기
다음 페이지를 참고해 Verse 프로그래밍 언어에 대해 학습할 수 있습니다.