이 페이지에서는 Verse 프로그래밍 언어와 그 구문에 대해 설명합니다. Verse를 연습해 익숙해졌다면 이 페이지를 참조하시기 바랍니다.
Verse를 처음 사용하거나 프로그래밍을 처음 배우는 경우, Verse 프로그래밍 문서를 확인해 시작하는 데 도움을 받으시기 바랍니다. 온보딩 가이드도 도움이 되니 확인해 보세요.
Verse란?
Verse는 에픽게임즈가 개발한 프로그래밍 언어로, 포크리 장치를 커스터마이징하는 등 포트나이트 언리얼 에디터에서 나만의 게임플레이를 제작하는 데 사용할 수 있는 언어입니다.
Verse의 주요 설계 목표는 다음과 같습니다.
간단하므로 초심자 프로그래머도 쉽게 학습할 수 있습니다.
일반적이므로 어느 유형의 코드나 데이터도 작성할 수 있습니다.
생산적이므로 팀 단위로 프로젝트를 구축, 반복, 배포하고 코드 및 콘텐츠를 통합하는 데 있어 생산성이 높습니다.
정적으로 검증되어 컴파일 시 최대한 많은 종류의 런타임 오류를 잡아냅니다.
성능이 우수하여 리얼타임, 오픈 월드, 멀티플레이어 게임을 만드는 데 지장이 없습니다.
완전하므로 Verse의 모든 기능을 프로그래머가 추상화할 수 있도록 지원합니다.
유행을 타지 않도록 기존 타 언어의 기능에 얽매이지 않고 오늘날 및 가까운 미래에 필요한 기능들을 위주로 설계되었습니다.
위 설계 목표들은 Verse 프로그래밍 언어의 다음 주요 기능들의 기반이 됩니다.
엄격한 타입 언어이므로 개발 및 배포 시 오류가 발견되지 않고 넘어갈 가능성이 적으며, 정적 체크를 지원합니다.
다중 패러다임 언어이므로 가능한 한 결정론적인 함수 프로그래밍, 오브젝트 지향 프로그래밍, 명령형 프로그래밍을 최대한 활용합니다. 데이터가 기본적으로 변경 불가하며, 동일한 코드와 데이터에서는 항상 같은 결과가 나온다는 것이 하나의 예입니다.
Verse에서는 명령문과 표현식을 구분하지 않습니다. Verse에서는 모든 것이 표현식이므로 모든 것이 결과를 가집니다.
실패를 컨트롤 플로로 사용합니다. Verse에서는 true/false 값을 사용해 프로그램의 플로를 변경하는 대신, 성공 시 값을 생성하고 실패 시 값을 생성하지 않는 실패 가능 표현식을 사용합니다. 실패 가능 표현식은 if 표현식과 같은 실패 컨텍스트에서만 실행할 수 있습니다.
실패 컨텍스트에서 추측 실행을 통해 커밋하지 않으면서도 특정 작업을 시도해 볼 수 있습니다. 표현식이 성공하면 표현식의 이펙트가 커밋되지만, 표현식이 실패하면 표현식이 일어나지 않았던 것처럼 표현식의 이펙트가 롤백됩니다. 이 방법으로 변경 사항이 누적되는 일련의 액션을 실행할 수 있지만, 실패 컨텍스트에서 실패하는 경우 해당 액션의 변경 사항이 실행 취소됩니다.
언어 수준에서 동시성을 지원하므로 동시에 여러 작업을 수행하기 위해 시스템 수준의 스레드에 의존하지 않아도 됩니다. 컨트롤 플로를 제어하는 것과 마찬가지로, Verse에 내장된 동시성 표현식을 사용하여 타임 플로를 제어할 수 있습니다.
에픽게임즈는 계속해서 Verse 프로그래밍 언어를 개발하고 기능을 추가하고 있습니다. Verse는 하위 호환성을 제공하므로 언어가 업데이트되더라도 오늘 작성하신 Verse 코드를 계속해서 사용해 작업할 수 있습니다.
Verse 언어 살펴보기
다음 페이지를 Verse 프로그래밍 언어의 레퍼런스로 활용하세요.
Verse 언어 버전 1 업데이트 및 지원 중단
Verse 언어 버전 1의 새로운 업데이트 및 지원 중단 사항에 대해 알아봅니다.
표현식
Verse의 모든 것은 표현식이며 결과를 갖습니다. 이 페이지에서는 Verse의 모든 표현식을 설명합니다.
코멘트
코드 코멘트는 코드를 설명합니다. 코멘트는 프로그램 실행 시 무시됩니다.
상수와 변수
변수와 상수는 프로그램이 사용하는 정보 또는 값을 저장합니다.
일반 타입
일반 타입은 대부분의 프로그램이 사용하는 기본 연산을 지원합니다.
연산자
연산자는 Verse 프로그래밍 언어에 정의되어 있는 특수한 함수로, 덧셈과 곱셈의 수학 연산과 같은 액션을 수행합니다.
그룹화
Verse 표현식을 그룹화하여 평가 순서를 지정하고 가독성을 높입니다.
코드 블록
코드 블록은 표현식 그룹이며 변수 및 상수에 새로운 스코프를 도입합니다.
함수
함수는 액션을 수행하고 제공한 입력에 따라 다양한 출력을 생성하는 재사용 가능 코드입니다.
Failure
실패는 프로그램이 액션을 수행하는 순서를 제어하는 방법이며, 이를 컨트롤 플로라고 합니다.
지정자와 어트리뷰트
지정자와 어트리뷰트에 대해 알아보고 Verse 코드에 추가 시맨틱과 행동을 적용하는 방법을 학습합니다.
Control Flow
컨트롤 플로는 컴퓨터가 인스트럭션을 실행하는 순서입니다. Verse에서는 몇 가지 방법으로 프로그램의 컨트롤 플로를 변경할 수 있습니다.
타임플로와 동시성
Verse에 내장된 동시성 표현식을 사용하여 표현식을 동시에 실행함으로써 타임 플로를 컨트롤 플로와 같은 방식으로 작성할 수 있습니다.
컨테이너 타입
컨테이너 타입을 사용하여 여러 값을 함께 저장합니다.
복합 타입
복합 타입에서 나만의 고유한 타입을 생성합니다.
Verse 타입으로 작업하기
Verse에서 타입으로 더 다양한 작업을 하는 방법에 대해 알아봅니다.
모듈과 경로
Verse 모듈은 재배포되거나 다른 코드가 종속될 수 있는 아토믹 코드 단위로, Verse 파일에 모듈을 임포트하여 다른 Verse 파일의 코드 정의를 사용할 수 있습니다.