about
이재신
국내 100개 이상의 대학에 LMS(Learning Management System)를 제공하는 에듀테크 기업 자이닉스에서 AI 서비스를 설계하고 구축하는 개발자입니다. 단순한 소프트웨어 엔지니어가 아니라, 문제의 본질을 찾아내는 Problem Solver가 되고자 합니다. 현재 AI 강의 콘텐츠 생성 플랫폼(AI Commons)의 메인 개발자로서, 기획부터 개발, 테스트, 배포, 운영까지 제품의 전 주기를 담당하고 있습니다.
stack
timeline
AI Commons
AI 강의 콘텐츠 생성 플랫폼. 기획/개발/테스트 전담.
AI Chatbot / Tutor
LMS 연동 AI 튜터. 기술 검토 → 프로토타입 → 상용화.
LMS 마이페이지
마이페이지 전면 개편. 학생/교수자 뷰 6종.
자이닉스 입사
에듀테크 기업. LearningX LMS 기반 개발.
interests
요즘 이런 것들을 고민하고 있습니다.
검증 깊이(Verification Depth)와 테스트
AI가 코드를 생성하면 코드는 즉시 도착하지만, 이해는 그렇지 않습니다. 직접 코드를 작성할 때는 만드는 행위와 함께 이해가 쌓이지만, 기계가 작성하면 그 이해를 별도로 다시 쌓아야 합니다. 그래서 테스트와 옵저버빌리티가 더 중요해졌다고 느끼고 있습니다. 시스템이 동작하는 순간들을 로그와 메트릭으로 기록하고 관찰할 수 있는 구조가 갖춰져야, 문제가 생겼을 때 추측이 아니라 데이터로 원인을 찾을 수 있다고 생각합니다. 특히 테스트는 "이 코드가 무엇을 하는지" 확인하는 것이 아니라 "무엇을 해야 하는지"를 증명하는 것이라고 생각합니다. 구현 후에 작성한 테스트는 이미 만든 것에 편향되기 쉽지만, 구현 전에 작성한 테스트는 의도를 강제합니다. Mock보다 실제 코드를 실행하는 테스트를 선호하고, 테스트하기 어려운 코드는 설계가 복잡하다는 신호로 받아들이고 있습니다.
코드 품질과 YAGNI
좋은 코드란 "다음 사람이 이해할 수 있는 코드"라고 생각합니다. 다음 사람이 동료일 수도, AI 에이전트일 수도 있습니다. 지금 당장 쓰지 않을 기능을 미래를 대비해서 구현하기보다, 현재 필요한 것만 가볍게 만드는 편입니다. 세 줄의 비슷한 코드가 성급한 추상화보다 나을 때가 많고, 필요 이상의 크기를 가진 라이브러리보다 필요한 기능만 직접 구현하는 것이 나을 때도 있습니다. 주석에 대해서도 생각이 변하고 있는데, 에이전트에게 의도를 전달하는 수단으로서의 주석이 갖는 새로운 역할을 고민하고 있습니다.
지시가 아니라 위임
AI에게 세세하게 "어떻게(How)" 하라고 지시하면 오히려 결과가 나빠지는 경험을 했습니다. 대신 "왜(Why)"와 "무엇(What)"을 충분히 전달하고 판단의 여지를 주면 더 나은 결과가 나옵니다. 모호한 자연어로 완벽한 로직을 지시하려는 접근 자체가 틀렸다는 걸 배우고 있고, 명확한 명세(Specification)를 통해 모호함을 줄이는 방법을 탐구하고 있습니다.
하네스(Harness) 엔지니어링
AI 에이전트의 출력은 비결정적입니다. 어제 깔끔하게 통과하던 흐름이 오늘은 엉뚱한 결과를 내놓습니다. 그래서 "알아서 잘 해줘"를 기대하는 대신, 에이전트가 엉뚱한 짓을 하지 못하도록 파이프라인 곳곳에 결정적인 검증 장치를 덧대는 것 — 하네스를 설계하는 방법을 배우고 있습니다. 스킬을 함수처럼 책임별로 쪼개고, 한 턴에 나올 산출물을 명확히 정의하고, 파이프라인으로 조합하는 것. 프롬프트를 쓰는 게 아니라 .md로 코딩하는 것에 가깝다고 느끼고 있습니다.
직업적 자부심
도구가 아무리 바뀌어도, 디테일을 챙기고 추상화로 감싸고 계층으로 쌓는 과정은 반복됩니다. 대상이 기계어에서 코드로, 다시 비결정적 모델로 바뀌었을 뿐입니다. 아무도 보지 않을 때에도 제대로 해내는 것, 그것이 개발자라는 직업에 대한 자부심이라고 생각합니다. 아직 그 자부심에 걸맞은 실력은 아니지만, 그 방향을 향해 가고 있습니다.
workflow
팀에 기여할 수 있는 방법을 고민하다가, AI 도구 활용에서 실질적인 가치를 만들 수 있다고 느꼈습니다.
Cursor 팀 플랜 도입 주도
입사 직후 AI 코딩 도구의 가능성을 체감하고, 팀에 Cursor 도입을 제안했습니다. 커스텀 모드(Code Reviewer 등)를 직접 설정하고 사용법을 공유하며 팀 전체로 확산시켰습니다.
Claude Code 팀 플랜 도입 주도
개인적으로 Codex와 Claude Code를 1년 넘게 사용해오면서 에이전트 기반 개발의 가능성을 체감했고, Cursor가 빠르게 변하는 AI 코딩 트렌드를 따라가지 못한다고 판단하여 팀에 Claude Code 전환을 제안했습니다. 직접 비용/생산성 비교 분석과 도입 품의서를 작성하여 제출했고, 현재 팀에 도입하여 앞장서서 활용법과 워크플로우를 공유하고 있습니다.
Xinics Skill Plugin 제작
팀 개발 워크플로우를 표준화하기 위한 Claude Code 스킬 플러그인을 직접 만들었습니다. 기획→구현→리뷰→검증→커밋→보고까지 8개 스킬이 하나의 파이프라인을 이루고, 누가 작업하든 AI가 작업하든 동일한 품질 게이트를 거치도록 설계했습니다. superpowers를 래핑해 Jira 컨텍스트를 주입하고, private 레포 제약을 극복하는 로컬 마켓플레이스 배포 패턴도 함께 고안했습니다.
Night Worker 제작
팀원들이 퇴근한 뒤에도 AI가 일할 수 있도록, Claude Code CLI를 크론 스케줄로 자동 실행하는 플랫폼을 만들었습니다. 태스크를 등록해두면 지정한 시간에 Claude가 코드베이스 위에서 작업을 수행하고 NDJSON 스트림을 파싱해 실시간 로그와 결과를 기록합니다. 스킬 플러그인과 결합해, 비대화형 환경에서도 동일한 품질 게이트를 통과한 결과물이 아침에 준비됩니다.
하네스(Harness) 엔지니어링
AI 에이전트의 비결정적 출력을 결정적인 결과로 만들기 위한 하네스를 구축하고 있습니다. 스킬과 훅을 함수처럼 책임별로 분리하고 파이프라인으로 조합하는 방식으로, TDD, 플래닝, 코드 리뷰 등 개발 과정 자체를 자동화하는 워크플로우를 실천 중입니다. CLI의 headless 모드와 MCP 서버를 활용한 외부 시스템 연동, CLAUDE.md를 통한 프로젝트별 컨텍스트 관리, 커스텀 슬래시 커맨드 설계 등 에이전트가 사람 없이도 안정적으로 동작할 수 있는 구조를 계속 탐구하고 있습니다.
입사 직후 팀에 Cursor 도입을 제안하여 확산시켰고, 이후 에이전트 기반 개발의 가능성을 체감하면서 Claude Code 팀 플랜으로의 전환을 직접 주도했습니다. 도입 품의서 작성부터 팀 내 기술 공유까지 앞장서서 진행했습니다. 그 과정에서 AI 에이전트의 비결정적 출력을 결정적인 결과로 만들기 위한 하네스 엔지니어링의 필요를 느꼈고, 그 결과로 팀 개발 워크플로우를 표준화하는 Xinics Skill Plugin과 야간 자동화 플랫폼 Night Worker를 직접 만들어 팀에 배포했습니다. 스킬을 함수처럼 책임별로 분리하고 파이프라인으로 조합하여 TDD, 플래닝, 리뷰, 보고까지 개발 과정을 자동화했고, CLI headless 모드, MCP 연동, 로컬 마켓플레이스 패턴 등 에이전트가 사람 없이도 안정적으로 동작할 수 있는 구조를 실제 팀 현장에서 검증하고 있습니다.