TRICK 2025 에피소드 1 콘테스트 결과 발표

[JA] TRICK 2025: Episode I / mame & the judges @tric

작성자
RubyKaigi
발행일
2025년 05월 27일

핵심 요약

  • 1 루비 언어의 기묘한 프로그래밍 콘테스트 'TRICK 2025 에피소드 1'의 최종 결과가 발표되었으며, 독창적인 수상작들이 소개되었습니다.
  • 2 이번 제5회 TRICK 대회는 역대 최다 출품작을 기록하며 루비 커뮤니티의 높은 관심과 참가자들의 기발한 아이디어를 입증했습니다.
  • 3 코드 커버리지, HTML 루비 태그, 구문 하이라이팅 등 루비의 다양한 특징을 활용한 창의적이고 예술적인 프로그램들이 높은 평가를 받았습니다.

도입

TRICK 2025 에피소드 1 콘테스트는 루비 프로그래밍 언어의 유연성과 숨겨진 특성을 기발하게 활용하는 데 중점을 둔 대회입니다. 일반적인 효율성이나 가독성을 넘어, 루비의 경계를 탐구하고 예술적으로 승화시키는 독창적인 아이디어를 발굴합니다. 이번 발표는 제5회 TRICK 대회의 결과 보고로, 지난 한 해 동안 모집된 작품들 중 엄격한 심사를 거쳐 선정된 수상작들을 소개하며 루비 커뮤니티의 창의성을 공유하는 자리입니다.

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) 형태로 동작하는 등 다층적인 트릭을 선보였습니다. 이는 루비 프로그래밍의 한계를 넘어서는 혁신적인 시도로 평가받았습니다.

결론

TRICK 2025 에피소드 1 콘테스트는 루비 언어의 유연성과 개발자들의 무한한 창의력을 다시 한번 확인시켜준 자리였습니다. 단순한 코드 작성에서 벗어나 언어의 숨겨진 특성을 탐구하고 예술적으로 승화시킨 작품들은 루비 커뮤니티에 깊은 영감을 주었습니다. 특히 이번 대회에서 선정된 상위 5개 작품은 루비 공식 저장소에 샘플 프로그램으로 커밋되어, 향후 출시될 루비 3.5 버전에 포함될 예정입니다. 이는 TRICK 콘테스트가 단순한 놀이를 넘어 루비 언어의 발전과 탐구에 기여하고 있음을 보여주는 중요한 성과입니다. 참여해주신 모든 분들께 감사드립니다.

댓글 0

댓글 작성

0/1000
정중하고 건설적인 댓글을 작성해 주세요.

아직 댓글이 없습니다

첫 번째 댓글을 작성해보세요!