Raku 간단 소개
Raku 간단 소개 (Brief introduction)
Raku 공식 문서를 처음 여는 순간, 어디서부터 손을 대야 할지 막막할 수 있어요. 공식 문서의 소개 페이지가 바로 그 길잡이 역할을 해줘요. 이 문서는 Raku를 처음 접하는 사람이 문서의 구조를 파악하도록 돕는 짧은 소개예요.
본문
이 공식 문서는 다양한 전달 스타일을 다뤄요. 각 스타일의 문서 목록은 메인 /introduction과 /reference 페이지에서 찾을 수 있어요.
-
Raku는 유니코드 지원 수준이 높아요. 유니코드 연산자도 여럿 있어요. ASCII 환경에 익숙했던 사람에게는 이게 부담스러울 수 있는데, 프로그램에서 유니코드를 쓰는 방법을 소개하는 도움말이 준비돼 있어요. 그래도 정말 ASCII를 고집하고 싶다면 대부분의 경우 ASCII만으로도 충분해요.
-
다른 언어를 경험한 프로그래머를 위해 **마이그레이션 가이드(Migration Guides)**가 있어요. Perl, JavaScript, Haskell 같은 언어와 Raku의 특징을 비교·대조해주는 문서들이죠.
-
Signatures— 서브루틴과 메서드를 포함한 모든 루틴에는 시그니처가 있어요. 서브나 메서드의 시그니처가 주는 정보를 이해하면, 그 루틴의 동작과 효과를 빠르게 파악할 수 있어요. 시그니처에 이미 나와 있는 내용은 본문에서 굳이 반복하지 않는 경우가 많아요. -
Containers— 변수는 컴퓨터 언어에서 명사 같은 존재로, 정보를 저장하는 컨테이너예요. 컨테이너 이름의 첫 글자를 시길(sigil)이라고 하는데, 그 컨테이너에 대한 정보를 담고 있어요. 예를 들어$my-variable의$,@an-array-of-things의@,%scores-by-name의%가 그 역할을 해요.참고로
Array를$컨테이너에 담아 하나의 객체처럼 취급할 수도 있어요. -
Classes and Roles— Raku는 기본적으로 객체 기반 언어로, 객체를 클래스와 롤(role)로 표현해요. 다른 언어들과 달리 Raku는 객체지향 프로그래밍 방식을 강제하지 않아서, 절차적 스타일로도 유용한 프로그램을 충분히 작성할 수 있어요. 다만 Rakudo 컴파일러 같은 복잡한 소프트웨어는 객체지향 관용구로 작성하는 편이 훨씬 단순해져요. 그래서 Raku 문서를 잘 이해하려면 클래스가 무엇이고 롤이 무엇인지 먼저 살펴보는 것이 좋아요. -
Traps to Avoid— 흔한 몇 가지 가정 때문에 프로그래머가 의도한 대로 동작하지 않는 코드가 생기기 쉬워요. 이 문서가 그중 몇 가지를 짚어줘요. -
raku.org 사이트에는 유용한 리소스가 여럿 정리돼 있어요. 기사, 책, 슬라이드 발표자료, 영상 등이 포함돼요.
이 문서 곳곳에서 다음과 같은 예시를 만나게 될 거예요.
my @a = 1, 2, 3;
@a»++;
say @a; # OUTPUT: «[2 3 4]»
마지막 줄에 달린 주석을 주목해보세요. # OUTPUT:으로 시작하는 주석은 그 예시가 무엇을 출력하는지 알려줘요. 출력은 «» 따옴표로 감싸져 있고, 실제 출력에서 리터럴 줄바꿈이 나타나는 위치를 (유니코드 문자 "Symbol for Newline")로 표시해요. («» 따옴표는 Raku에서 유효한 인용 구성이지만 특별한 의미를 가지니 참고만 해두세요.)