Posted On 2026년 04월 06일

도시를 짓는 즐거움, 시스템을 디자인하는 희열

nobaksan 0 comments
여행하는 개발자 >> 기술 >> 도시를 짓는 즐거움, 시스템을 디자인하는 희열

어린 시절 놀이터 모래밭에서 철로를 그리며 놀았던 기억이 있다. 막대기로 땅을 긁어 선로를 만들고, 종이 상자를 전철로 삼아 상상 속 승객들을 태워 목적지까지 데려다주곤 했다. 그때는 몰랐지만, 그 단순한 놀이가 사실은 복잡한 시스템을 설계하는 행위였다. 출발지와 도착지를 정하고, 경로를 계획하며, 예상치 못한 장애물(모래밭에 굴러든 돌멩이 같은)을 해결하는 과정은 오늘날의 도시 계획이나 소프트웨어 아키텍처와 놀랍도록 닮아 있다.

NIMBY Rails는 바로 그런 종류의 놀이를 성인 버전으로 승화시킨 게임이다. 단순히 철도를 건설하는 것이 아니라, 도시의 성장과 주민들의 요구, 정치적인 압력, 그리고 경제적 제약까지 고려해야 하는 시스템 디자인의 미학을 담고 있다. 이 게임이 흥미로운 이유는 기술적 도전 그 자체가 아니라, 그 기술이 만들어내는 ‘균형’에 있다. 개발자가 코드를 짜는 행위와 도시 설계자가 철로를 그리는 행위 사이에는 공통된 희열이 존재한다. 바로 ‘제한된 자원 안에서 최적의 해답을 찾아내는 과정’이다.

소프트웨어 개발에서 가장 어려운 부분 중 하나는 요구사항의 충돌을 해결하는 일이다. 사용자는 더 빠른 성능을 원하지만, 서버 비용은 제한되어 있다. 보안성을 높이려면 사용자 경험이 저하되고, 새로운 기능을 추가하면 기존 시스템의 안정성이 흔들린다. 이런 트레이드오프는 마치 도시 계획에서 마주치는 딜레마와 같다. 주민들은 편리한 대중교통을 원하지만, 자신의 집 근처에 철도가 들어서는 것은 반대한다(NIMBY, Not In My Backyard). 교통 체증을 해결하려면 고속도로를 확장해야 하지만, 그러려면 녹지를 희생해야 한다. 이 게임은 그런 현실적인 제약을 게임 메커니즘으로 구현해, 플레이어가 시스템적 사고를 자연스럽게 익히도록 유도한다.

특히 주목할 점은 이 게임이 ‘완벽한 해답’이 없다는 것을 인정한다는 사실이다. 현실의 시스템 디자인과 마찬가지로, 모든 이해관계자를 만족시키는 해결책은 존재하지 않는다. 대신 게임은 플레이어에게 ‘차선의 선택’을 강요한다. 예를 들어, 저소득층 거주 지역에는 저렴한 대중교통을 제공해야 하지만, 그러려면 고급 주택가 주민들의 세금 부담이 커진다. 이런 선택의 순간마다 플레이어는 자신이 어떤 가치를 우선시하는지, 어떤 희생을 감수할 준비가 되어 있는지 스스로에게 묻게 된다. 이는 소프트웨어 개발에서 마주치는 윤리적 고민과도 닮았다. 사용자의 편의를 위해 개인정보를 수집해야 하는가? 기술적 효율성을 위해 소수의 접근성을 희생해야 하는가?

“모든 시스템은 설계자의 가치를 반영한다. 그것이 의도적이든 아니든.”

이 게임이 던지는 또 하나의 질문은 ‘누구를 위한 시스템인가?’이다. 철도망을 설계할 때, 플레이어는 종종 경제적 효율성을 우선시하게 된다. 가장 많은 승객을 실어 나를 수 있는 경로를 선택하고, 건설 비용을 최소화하기 위해 기존 인프라를 활용한다. 그러나 이런 결정은 결국 특정 지역이나 계층을 배제하게 된다. 외곽에 위치한 소규모 마을은 철도망에서 소외되고, 저소득층은 비싼 요금 때문에 대중교통을 이용하지 못한다. 이는 소프트웨어가 가진 편향성 문제와도 맞닿아 있다. 알고리즘이 특정 인종이나 성별을 차별하는 경우가 대표적인 예다. 시스템을 설계하는 사람이 자신의 무의식적인 편견을 인식하지 못하면, 그 시스템은 결국 불평등을 재생산하게 된다.

흥미로운 것은 NIMBY Rails가 이런 복잡한 문제를 ‘게임’이라는 형식으로 풀어냈다는 점이다. 게임은 실패해도 괜찮은 공간이다. 플레이어는 다양한 시도를 통해 어떤 결정이 어떤 결과를 낳는지 직접 경험할 수 있다. 도시가 교통 체증으로 마비되거나, 주민들의 반발로 프로젝트가 취소되는 상황을 겪으면서, 시스템 설계의 어려움을 몸소 체감하게 된다. 이는 마치 개발자가 프로토타입을 만들고 테스트를 반복하며 최적의 솔루션을 찾아가는 과정과 유사하다. 게임은 플레이어에게 ‘학습의 자유’를 제공하고, 그 과정에서 시스템적 사고의 중요성을 자연스럽게 깨닫게 한다.

물론 이 게임이 현실의 복잡성을 모두 담아낼 수는 없다. 도시 계획에는 게임이 다루지 않는 변수들이 무수히 많다. 정치인들의 이해관계, 기업의 로비, 예상치 못한 자연재해 등등. 하지만 중요한 것은 이 게임이 시스템 디자인의 본질을 포착했다는 점이다. 모든 결정에는 대가가 따르며, 그 대가는 결국 누군가가 치러야 한다는 것. 그리고 그 ‘누군가’를 정의하는 것이 바로 설계자의 역할이라는 것.

기술이 발전할수록 우리는 더 복잡한 시스템을 설계하고 관리해야 한다. 인공지능, 스마트 시티, 자율주행 자동차 등등. 이런 시스템들은 단순한 기술적 문제가 아니라 사회적, 윤리적 문제를 동반한다. NIMBY Rails는 그런 복잡성을 게임이라는 친숙한 형식으로 풀어내, 우리가 시스템을 설계할 때 어떤 질문을 던져야 하는지 일깨워준다. 그것은 “어떻게 하면 더 빠를까?”가 아니라, “누구를 위해 이 시스템을 설계하는가?”일 것이다.

이 게임에 대한 더 자세한 정보는 여기에서 확인할 수 있다.


이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Related Post

전자서명보다 빠른 동의, 이메일이 정당성을 부여할까?

오래된 편지 봉투를 열 때마다 문자가 흐르는 듯한 기분을 느낀 적이 있다. 그 봉투 안에는…

클라우드 시대의 ‘분산’이라는 환상, 그리고 Aspire의 조용한 반란

분산 시스템이란 말은 이제 개발자들 사이에서 거의 종교적 신념처럼 쓰인다. "마이크로서비스로 쪼개라", "클라우드 네이티브로 가야…

The Next Four Years, an experimental novel — 40대 개발자의 메모

AI 시대에도 결국 남는 건 ‘기본기’다. 오늘은 The Next Four Years, an experimental novel 같은…