TRICK 2025 콘테스트 개요 및 심사 과정
TRICK 콘테스트는 루비 회의에서 비정기적으로 개최되며, 이번이 다섯 번째 대회입니다. 미디어 아티스트, 해커, 에소랭(Esoteric Programming Language) 전문가, 루비 개발자 등 8명의 심사위원이 익명 심사(blind review) 방식으로 참여했습니다. 심사위원들은 작품의 저자 정보를 알지 못한 채 10점 만점으로 평가했으며, 이번 대회는 역대 최다 출품작 수를 기록하며 높은 경쟁률을 보였습니다. 총 13개의 작품이 수상작으로 선정되었으며, 평균 점수가 높은 상위 5개 작품과 각 심사위원이 선정한 특별상 8개 작품이 포함됩니다.
주요 수상작 소개
TRICK 2025에서는 루비 언어의 경계를 허무는 다양한 작품들이 출품되었습니다.
심사위원 특별상
- Most Harmful (요시타카 씨):
goto
문과 유사한 동작을 루비에서 구현한 작품입니다. 파일 전체를 읽어 특정 줄 이후를eval
하는 방식으로, 히어 도큐먼트 기법을 활용하여 파서의 한계를 우회하는 창의성을 보여주었습니다. - Most Shifty (Y하라 씨): 루비의 메서드 이름을 재정의하여 코드의 의미를 완전히 뒤바꾼 작품입니다. 겉보기에는 평범한 루비 코드처럼 보이지만, 실제로는 완전히 다른 동작을 수행하는 ‘이세계의 루비’를 구현했습니다.
- Best Fade Away (신이치로 씨): 문학의 ‘리프로그램(Lipogram)’ 기법에서 영감을 받아, 특정 알파벳이 등장할 수 있는 컬럼을 제한하는 엄격한 제약 조건 하에 작성된 코드입니다. 실행 시 문자가 점차 사라지는 애니메이션을 출력합니다.
- Most Ruby on Ruby (이마무라 켄스케 씨): Ruby/WASM 환경에서 동작하는 콰인(quine) 프로그램으로, 자신을 브라우저에 표시할 뿐만 아니라 HTML
<ruby>
요소를 사용하여 키워드와 식별자에 대한 구문 하이라이팅을 구현했습니다. CSS를 활용하여 코드 크기 제한을 우회한 점이 돋보였습니다. - Most Uncovered (발표자): 코드 커버리지 측정 결과를 바코드로 시각화하는 작품입니다. 코드의 실행 여부(0 또는 1)를 활용하여 14자리 ISBN 바코드를 표현하며,
if
분기 및 람다 호출 방식을 조작하여 특정 라인의 실행 여부를 제어하는 트릭을 사용했습니다. - Most Natural (베타 첼시 씨): 터미널에서 ASCII 아트를 활용하여 회전하는 꽃 애니메이션을 구현한 작품입니다. 수직선과 슬래시 등을 섬세하게 사용하여 자연스럽고 부드러운 움직임을 표현했습니다.
- Most Intensive (호이치 씨): 루비 3.4에 도입된
it
키워드를 활용하여 모든 코드를 ‘1’로만 구성한 작품입니다.to_s
메서드 오버라이드를 통해 인코딩된 코드를 문자열로 변환하고eval
하여 현재 시각을 출력합니다.
상위 5개 작품
- 5위: Most Maintainable (토밍 씨): FizzBuzz 프로그램을 루비의 상수 대입을 활용한 복잡한 DSL(Domain Specific Language)로 구현하여, 코드가 계산 가능한 수준으로 복잡해질 수 있음을 보여주었습니다.
- 4위: Best ASMR (토밍 씨): ASCII 아트 애니메이션과 함께 파도 소리(ASMR)를 생성하는 작품입니다. 여러 개의 단순한 음원을 합성하고 타이밍을 조절하여 복잡한 파도 소리를 만들었으며, 시각과 청각을 동시에 만족시키는 독창성을 보여주었습니다.
- 3위: Most Arithmetric (토밍 씨): IRB의 구문 하이라이팅을 활용하여 두 자리 덧셈을 구현한 작품입니다. 지역 변수 정의 여부에 따라 정규 표현식 리터럴로 해석되는 특성을 이용해 색상 변화를 제어하고, 이를 통해 덧셈 연산을 시각적으로 표현했습니다.
- 2위 (발표자):
patch
명령어로 자신을 변형시키는 콰인(quine) 프로그램입니다.P.rb
파일을 생성하고, 이 파일이 다시 자신을D.rb
(diff)로 패치하며,git am
명령어를 통해 30개의 커밋으로 원본 코드를git log --oneline
형태로 표현하는 복합적인 트릭을 선보였습니다. 추가로 ‘다른 그림 찾기’ 퍼즐 기능도 포함되어 있습니다. - 1위: Most Revolutionary (돈얀 씨): ‘ROT13 필터’라는 이름으로, 텍스트를 13회 회전시키는 기능 외에도 프로그램 코드 자체를 회전시키거나, 브레인퍽(Brainfuck) 언어와 루비를 결합한 폴리글랏(polyglot) 형태로 동작하는 등 다층적인 트릭을 선보였습니다. 이는 루비 프로그래밍의 한계를 넘어서는 혁신적인 시도로 평가받았습니다.