어둠 속에서 더듬으며: 믿음직한 동료와의 여정

발행: (2025년 12월 5일 오전 11:45 GMT+9)
8 min read
원문: Dev.to

Source: Dev.to

프로젝트 개요

이 프로젝트는 Kiroween이라는 AWS가 주최한 할로윈 테마 해커톤을 위해 제작되었습니다. 이 해커톤은 AI 코딩 에이전트 Kiro를 기념합니다.
도전 과제: 한 달 안에 Kiro와 함께 창의적인 무언가를 만들기.

저에게는 정말 어둠 속에서 몸부림치는 경험이었습니다—첫 온라인 해커톤, 영상 제작 경험 전무, 일본어로 혼자 작업하면서 모든 제출물을 영어로 작성해야 했습니다.

MairuCLI는 위험한 명령을 감지하고 차단하는 교육용 CLI 래퍼입니다.
“Mairu”(参る)는 “곤란해지다”, “패배하다”라는 뜻의 일본어이며, “Kiro”와도 말장난이 됩니다. 위험한 명령을 입력하면 할로윈 테마 경고가 나타나 그 위험성을 알려줍니다.

주요 기능

  • 🔥 11가지 위험 패턴 감지 – 예: rm -rf /, chmod 777, dd, DROP DATABASE, 포크 폭탄 등
  • 🎃 할로윈 테마 경고 – ASCII 아트와 교육 메시지
  • 📚 교육용 상세 분석 – 명령어 각 부분을 설명하고 실행 시 발생할 일을 시뮬레이션
  • 🏆 업적 시스템 – 게임화로 학습을 재미있게
  • 🚂 오타 엔터테인먼트sl을 입력하면 증기 기관차가 등장
  • 🛡️ 시스템 디렉터리 보호 – Windows, Linux, macOS의 시스템 폴더를 보호

기술적 성과

  • 300개 이상의 자동화 테스트 (100 % 통과)
  • 16개의 Steering 파일
  • 6개의 완전한 Specs
  • 크로스‑플랫폼 지원 (Windows, Linux, macOS)

리소스

  • Devpost:
  • GitHub Repository:
  • Demo Video:

직면한 장벽

  • 온라인 해커톤 경험 부족 – 제출 기준과 평가 프로세스가 불명확
  • 영상 제작 경험 부족 – 데모 영상을 어떻게 만들지 몰라서 어려움
  • 언어 장벽 – 모든 제출물(README, 영상 내레이션 등)을 영어로 해야 했지만 영어에 능숙하지 않음
  • 바쁜 일정 – 본업 사이에 개발을 끼워 넣어, 하루에 충분한 시간을 확보하지 못함
  • 단독 개발 – 회사 업무였지만 UAT를 제외한 모든 작업을 혼자 수행

개발 타임라인

  • 총 개발 시간: ≈ 30 시간
  • 첫 6 시간: 핵심 기능 완성 (내장 명령 8개, 위험 패턴 5가지 감지, 할로윈 테마 디스플레이 시스템) – Spec‑Driven Development를 처음 경험
  • display.py(400 줄)를 7개 모듈로 리팩터링: 예상 2.5–3 시간, 실제 20 분 (≈ 7.5–9배 생산성 향상)
  • 3단계 경고 시스템(Critical/Caution/Safe), IT 말장난, 자동화 테스트 35개 구현
  • Windows, Linux, macOS용 시스템 디렉터리 보호 추가
  • builtins.py(719 줄)를 7개 모듈로 분리, 카테고리 기반 변형 시스템, 일반 오타 감지, 교육용 상세 분석 스펙 작성
  • 플랫폼 별 이슈 해결(locale.getpreferredencoding() macOS, Linux에서 mkfs /dev/sda 감지 등)

AI 협업 인사이트

  • Kiro와의 페어 프로그래밍은 자연스러웠으며, AI가 먼 도구가 아니라 신뢰할 수 있는 동료처럼 느껴졌음.
  • 다른 AI 에이전트(예: Claude Code)도 매우 정확하지만, “어느 것이 최고인가”보다는 워크플로에 어떻게 맞는가가 더 중요한 비교 포인트임.
  • Steering의 한계: Steering 파일이 많아지면 컨텍스트 윈도우 제약이 여전히 존재하고, 이를 관리하는 것이 메타 과제가 됨.
  • AI “이해”: 10일 차에 발견했듯이, AI는 명령을 “위험함”이라고 라벨링할 수 있지만 실제 위험 개념을 완전히 이해하고 있지는 않음—현재 모델의 내재된 한계.

이러한 관찰은 비판이 아니라 AI 협업이 깊어질수록 해결해야 할 과제임.

ASCII 아트 실험

CLI에 게임화 외에도 재미를 더하고 싶어 자동으로 ASCII 아트를 생성하려 시도했지만(예: DALL‑E 3 사용) 결과가 실망스러워 직접 손으로 그렸습니다:

        ,.,. ,.,.
       ,d$$$$$$$$$$$b.
     ,d$$$$$$$$$$$$$$$b.
    d$$$$$$`   `'$$$$$$$b
   d$$$$$  .---.    '$$$$b
  d$$$$$  /  _  \    |$$$$b
 d$$$$$|  | (O) |    |$$$$$b
 $$$$$$|  `.___.'  , |$$$$$$
_$$$$$$|     ;     : |$$$$$$_
 `$$$$$;    / \    ; $$$$$$'
  `$$$$$b.  `-'  .d$$$$$$'
    `$$$$$b.....d$$$$$$'
      `$$$$$$$$$$$$$$'
        `"$$$$$$$$"'
   ..::;d########b;::..
 .:::::;##########;::::::.
.::::::;##########;:::::::.
'::::::'##########':::::::'

수작업으로 만든 잭‑오‑랜턴을 만드는 데 약 한 시간이 걸렸으며, 일부 작업은 여전히 인간의 손길이 필요함을 보여줍니다.

버그 경험 (“유령”)

개발 말미에 rm -rf /를 실행했을 때 상세 설명 섹션이 사라지는 현상이 발생했습니다. 이는 리팩터링 후 cd(디렉터리 변경) 작업으로 인해 상대 경로 문제가 원인이었습니다.

해결: 절대 경로로 전환하고, 유사 문제를 방지하기 위해 Steering 파일 하나를 (오푸다 부적처럼) 추가했습니다.

이 버그는 다음을 강조했습니다:

  • 다중 작업 테스트는 AI만으로는 시간이 많이 소요될 수 있음.
  • 인간이 패턴을 예측하고 AI가 만든 테스트 케이스를 검증해야 함.

교훈 및 추가 자료

이 프로젝트에서 얻은 AI 기반 개발 교훈을 더 깊이 살펴보고 싶다면 GitHub 저장소의 문서를 참고하세요.

이 글은 Kiroween 해커톤 동안 MairuCLI를 만든 저의 개인 경험을 바탕으로 작성되었습니다.

Back to Blog

관련 글

더 보기 »