'염소 시간'의 미스터리: 기계 번역으로 인한 수수께끼

2025-09-25

기계 번역을 사용한 일본 사용자가 '염소 시간'이라는 런타임 오류에 대한 도움을 요청했습니다. 오류 메시지는 이상하며, '구토', '바람, 막대기, 용'과 같은 단어들이 포함되어 모두를 당황하게 합니다. '구토'는 예외를, '목재'는 로그를, '염소 시간'은 런타임 환경을 가리킬 가능성이 있습니다. '엉덩이를 때리다'는 '실행하다'의 오역이고, '기술'은 '경험'의 오역으로 추측됩니다. '아버지 돌에 대한 모욕'은 소프트웨어 종속성을 암시할 수 있습니다. '바람, 막대기, 용'은 여전히 미스터리입니다. 이것은 기계 번역으로 인한 수수께끼이며, 해결에는 추가 정보가 필요합니다.

더 보기

텍스트 어드벤처 게임에서의 LLM 평가: 새로운 접근 방식

2025-08-12

본 논문에서는 텍스트 어드벤처 게임에서 대규모 언어 모델(LLM)의 능력을 평가하는 새로운 방법을 제안합니다. 이 접근 방식은 턴 제한과 게임 내 업적을 설정하여 LLM이 이러한 제약 내에서 얼마나 진행할 수 있는지 측정합니다. 텍스트 어드벤처 게임의 높은 자유도와 분기 때문에 이 방법은 절대적인 성능 점수를 제공하는 것이 아니라 서로 다른 LLM 간의 상대적인 비교를 제공하는 것을 목표로 합니다. LLM에는 일련의 업적 목표와 이를 달성하기 위한 제한된 턴 수가 주어집니다. 최종 점수는 달성된 업적의 수를 기반으로 합니다. 강력한 LLM이라도 턴 제한 내에서 모든 분기를 탐색하는 것은 어렵기 때문에 점수는 절대적인 게임 기술이 아니라 상대적인 능력을 반영합니다.

더 보기
AI

텍스트 어드벤처 게임 개발: 범위와 디테일의 균형

2025-07-07

텍스트 어드벤처 게임 개발에서는 범위 관리가 매우 중요합니다. 저자는 자신의 경험을 바탕으로, 처음에는 너무 야심 찬 목표에서 점차 규모를 축소하여 최종적으로 게임을 완성한 과정을 이야기합니다. 이 글에서는 텍스트 어드벤처 게임 디자인에서 “넓이”와 “세세함”이라는 두 가지 측면과 그 사이의 절충점에 대해 고찰합니다. 저자는 세세한 부분에 중점을 둔 Lockout과 넓은 범위를 다룬 The Plot of the Phantom을 비교하여 각 스타일의 장점과 단점을 분석합니다. 현대 플레이어들은 세세한 경험을 선호하는 경향이 있습니다. 마지막으로 저자는 텍스트 어드벤처 게임 개발의 비용과 시간, 그리고 재미있는 게임을 만들기 위한 범위 관리의 중요성에 대해 결론짓습니다.

더 보기
게임

모나드를 사용한 FizzBuzz: 함수형 프로그래밍 접근 방식

2025-05-26

이 글에서는 모나드를 사용하여 FizzBuzz 알고리즘을 함수형 프로그래밍 방식으로 구현하는 방법을 소개합니다. 핵심 아이디어는 guard-sequence 패턴을 이용하여 숫자가 3, 5, 7로 나누어 떨어지는지 확인하고, 각각 'fizz', 'buzz', 'zork'를 생성하거나, 나누어 떨어지지 않으면 Nothing을 반환하는 것입니다. 마지막으로 `mconcat`을 사용하여 결과를 결합하고 `fromMaybe`로 Nothing 값을 처리하여 올바른 FizzBuzz 출력을 얻습니다. 이 우아한 솔루션은 함수형 프로그래밍의 강력함을 보여줍니다.

더 보기
개발

Advent of Code: 상태 변환 파서를 이용한 문제 해결

2025-04-09

Advent of Code의 최신 퍼즐은 합계에 대한 mul 명령어의 기여를 활성화하거나 비활성화하는 do() 및 don't() 명령어를 해석하는 것을 포함합니다. 정규 표현식은 상태가 없는 정규 언어를 인식하기 때문에 이러한 상태를 처리하는 데 어려움을 겪습니다. 저자는 파서 기반 솔루션을 사용하여 상태 변환기로 승격시켜 상태를 가진 파서를 생성했습니다. 이 파서는 do(), don't(), mul 명령어를 효율적으로 처리하며 약 1MB의 입력을 0.12초 만에 처리합니다. 이는 정규 표현식 기반 접근 방식보다 훨씬 뛰어납니다.

더 보기

Haskell: 놀랍도록 절차적인가?

2025-01-19

이 글에서는 Haskell에 대한 일반적인 오해에 이의를 제기하고, 절차적 언어로서의 Haskell의 장점을 주장합니다. Haskell에서 부작용을 일급 시민으로 다루는 방식, `do` 블록의 내부 메커니즘, `pure`, `fmap`, `liftA2` 등의 함수를 사용한 부작용 조작에 대해 자세히 설명합니다. 또한, 부작용 집합을 다루는 `sequenceA`, `traverse` 함수와 이러한 기능을 통한 효율적인 메타 프로그래밍에 대해서도 보여줍니다. 복잡한 예시를 통해 Haskell이 상태 관리 및 캐싱에서 다른 언어보다 뛰어난 점을 보여주고, 다른 언어의 제약과 비교합니다. 더 나은 제어와 스트리밍 결과를 얻기 위한 `State` 모나드와 같은 고급 개념도 탐구합니다.

더 보기
개발 부작용

켈리 기준: 보험 결정에 대한 수학적 접근 방식

2024-12-21

이 글에서는 켈리 기준을 사용하여 보험에 대한 합리적인 결정을 내리는 방법을 살펴봅니다. 저자는 보험에 대한 일반적인 오해를 풀고, 그것이 철학적 문제가 아니라 수학적 문제라고 주장합니다. 핵심적인 아이디어는 보험이 큰 재산 감소를 방지하여 복리 효과의 성장을 가속화한다는 것입니다. 보험 가치(V)를 계산하기 위한 공식이 제시되며, 현재 자산, 보험료, 사고 확률, 비용 등이 고려됩니다. 오토바이 보험과 헬리콥터 보험의 예를 사용하여 계산과 자기 부담금의 영향이 설명되고, 보험 회사가 어떻게 이익을 얻는지, 그리고 비용의 상대성에 대해서도 설명합니다.

더 보기