AI Coding Assistant 개인 프로젝트 그 이후 업무에 적용하기 위한 고민

 최근 사이드 프로젝트로 앱을 만들고 출시하면서 AI Agent 기반 개발을 여러 방식으로 실험해봤습니다.


개인 프로젝트에서 이것저것 부딪혀보고 나서, 실제 업무에 적용해보기 위해 회사에서 사용하던 스프린트 방식을 이 흐름에 적용해보고 싶어졌습니다.

기존의 터미널 기반 방식이나 랄프 스타일의 흐름은 분명 강력했지만, 지금 어떤 작업이 어떻게 진행되고 있는지 한눈에 파악하기 어렵고, 실제 업무처럼 플랜을 검토하고 승인한 뒤 다음 단계로 넘기는 흐름을 담기에는 아쉬움이 있었습니다.

그래서 이번에는 OpenCode Agent 기반 개발 방식을 실제 업무에서 사용하던 스프린트 프로세스와 결합해, 웹에서 진행 상황을 칸반 형태로 확인할 수 있는 Assistant Agent Kanban을 구현해봤습니다.

이 시스템은 파일 기반으로 동작하며, 플랜, 구현, 리뷰, 인간 검토, 최종 완료까지 단계를 나누고 각 단계에서 Agent와 사람이 역할을 나눠 작업하도록 구성했습니다.

플랜 에이전트가 요구사항을 바탕으로 계획을 만들고, 사람은 그 플랜을 검토하고 수정한 뒤 구현 단계로 넘깁니다.

이후 구현 에이전트와 리뷰 에이전트가 서로 주고 받으면서 작업을 반복해서 진행하고, 마지막에는 사람이 브랜치, git diff, 코멘트 기반으로 직접 검토할 수 있도록 했습니다.

또 최종 완료된 작업은 기준 브랜치 단위로 AI 회고를 남길 수 있게 해서, 단순히 작업을 끝내는 데서 그치지 않고 스프린트 단위로 작업 내용을 돌아볼 수 있도록 구성했습니다.

제가 해오던 업무 방식이 정답은 아니겠지만 이번 작업을 통해, 사람이 익숙하게 사용해오던 업무 프로세스가 AI와 협업하는 환경에서도 충분히 유효하고 강력할 수 있다는 점을 확인할 수 있었습니다.

지금은 OpenCode 기반으로 동작하고 있지만, 앞으로는 codex-cli나 Claude 기반으로도 확장할 수 있을지 검토해볼 예정입니다. 그리고 이 방식이 실제 업무 환경에서도 지속적으로 유의미하게 작동하는지 계속 실험해보려고 합니다.







+@
Coding Assistant(OpenCode + ChatGPT) 를 사용하고 경험를 토대로 만든 도구를 사용해 간단한 게임 앱을 30분 안되서 초안 만드는 것을 영상으로 담아봤습니다.

터미널을 사용할 때 하면 시각화가 조금 아쉬웠는데, 시각화 해서 단계별 진행이 되니까 조금 더 가속도가 붙는거 같았습니다.

ps. 영상은 롱테이크로 끊지 않고 한번에 녹화로 빠른배속으로 편집했습니다.

OpenCode 로 앱 개발 및 출시 회고




배경

  • 우리 회사에서는 개발 업무에 AI를 적극 도입해 활용하고 있음.
  • 업무에서의 활용을 넘어, AI Agent를 개발 파트너로 두고 실제 제품을 기획부터 출시까지 끝까지 완주해보는 경험을 해보고 싶었음.
  • 이전에 직접 사용하려고 스캔 앱을 하나 만들었고, 그걸 출시해보려고 했음.
  • 스캔 앱은 너무 타겟팅 되어 있고, 고도화 기능들이 필요하기 때문에 간단한 앱을 추가로 해서 배포를 검토함.
  • 그러던 중 지하철에서 영상 같은걸 보면서 출퇴근 시간을 보내기 보단 간단하게 뇌를 활성화 하기 위해 스도쿠 게임을 하고 싶었음.
  • 스도쿠 게임을 받았는데 광고가 너무 많고 게임 자체를 방해하는 것에 화가 나서 직접 만들기로 결정.
  • 하나만 하면 아쉬우니까 아이들이 간단하게 즐길 수 있는 게임도 하나 개발하기로 결정.

목적

  • 내가 직접 할 “스도쿠” 게임을 만들자

  • 아이들에게 시킬 간단한 게임으로 “세모 땅따먹기” 게임을 만들자

    (회고를 작성하던 도중 2일 정도 투자하여 “메모리 게임” 도 추가)

  • iOS / Android 출시까지 진행해보자

방식

  • Agent 에게 일을 시키고 직접 확인하고 다시 일을 시키고 다시 확인하고, 더 나은 방향을 검토하고 지속적으로 개선

진행

초기 뼈대 작업

  • OpenCode 를 통해서 Flutter 로 앱 개발 진행
  • 어떻게 설명해야 좋을지 LLM과 대화를 통해 방향을 같이 정하고, 어떻게 Agent 에게 일을 시켜야할지 정리를 함
  • 초기에는 작은 기능으로 시작하기로 결정하고 Agent 에게 간단한 기능 부터 구현

개발자 라이센스 취득

  • Apple Developer 등록
    • 개인 개발자 계정으로 등록
    • 1년마다 연장해야하고, 비용이 약간 있는 편, 프로세스 별로 진행을 하면 어렵지 않게 가능
  • Google Developer 등록
    • 개인 개발자 계정으로 등록 (혹시 모르니 유료 상품 가능한 계정으로 등록)
    • 한번만 결제하면 영구적, 비용 저렴
    • 다만, 계정을 생성을 하기 위해 인증을 해야하는 과정이 상당히 복잡했음
      • 현 주소를 인증할 수 있는 자료를 제공해야함. 주민등록등본 제출이 제일 간단

광고 삽입 검토

  • Google AdMob 을 통해서 앱에 광고를 심어보기로 결정
  • 역시 어떻게 가입하고 설정 해야할지 부분은 LLM과 대화를 통해 진행
  • 일단 코드 개발을 했다가, AdMob 에 앱인증이 출시 후 가능해서 .. 화면 영역에서 제거 진행

인앱 상품 검토

  • RevenueCat 이라는 서드파티를 통해서 진행 검토
  • 테스트 모드로는 손쉽게 가능해서 릴리즈에도 사용가능할 것이라는 것을 검토함
  • 코드 구현 까지 해서 연동은 했지만 초기 출시시 제외하기로 결정

앱 심사 요청

  • 앱 심사의 복잡한 절차를 어떻게 해야할지 LLM과 대화를 통해 진행

  • 심사요청은 Apple Store, Google Play 둘다 일단 어렵지 않게 올릴 수 있었음

    → 개인 정보 처리 방침 페이지가 있어야 하기 때문에 Notion 으로 생성

고난의 시작

  • 애플 심사 도중 광고가 없는데 왜 광고 있다고 하냐고 리젝 당함

    → 코드 완전 클린하게 제거해버림

  • 구글 심사 는 무난하게 통과 했지만 예기치 못한 상황에 직면

    • 수익을 내가 위한 계정으로 만들면 Google Play 에 가입 시 인증했던 “주소” 가 노출이 되어버림..
    • 수익 = 인앱 외 광고도 수입으로 보기 때문에 주소가 노출이 되버림.
    • 이건 사업자 등록도 하고 공유 오피스 같은곳의 주소로 인증을 해야하기 때문에 포기.. ㅠㅠ
  • 연관해서 애플쪽 정책도 알아 봄

    • 주소공개 같은 것 없이도 광고까지는 개인 개발자도 가능
    • 인앱 결제를 추가하려고 하면 사업자 등록을 해야 함

앱 심사 통과

  • 앱스토어는 어렵지 않은 수정으로 통과 됨
  • 플레이 스토어는 일단 포기

앱스토어 출시 후 빠르게 기능 업데이트

  • 공유를 해서 사용자가 직접 바이럴을 하면 좋을 것 같아 공유 가능한 컨텐츠 추가

  • 초기 의도가 나와 아이들이 하기 위한 것을 만드는 것이었기 때문에 아이들의 과한 플레이를 제한하기 위한 방어장치 도입

  • 제거 했던 광고를 다시 붙여보기로 결정

  • 본인과 아이들이 사용하는 환경이 iOS 이기 때문에 안드로이드 출시는 과감하게 보류

    → 그래도 아까우니까 원스토어에 출시. (원스토어는 개인 개발자도 광고를 붙일 수 있음)

    → 갤럭시 스토어도 검토를 했었으나, 해당 스토어에 앱을 등록하려면 사업자 등록증을 제출해야 했음

결과물

앱 소개 페이지

iOS (App Store)

Android (원스토어)

회고

  • 단순 개발까지는 빠르게 진행할 수 있었고, LLM 과의 핑퐁을 통해 서드파티를 사용하는 것이나 빠르게 진행가능한 방향성도 결정할 수 있었음.
    • Agent 에게 개발을 요청할 때 뼈대를 처음에 만들고.
    • 작은 기능 단위로 요청 & 확인을 반복하는 방식의 작업이 상당이 용이 했음.
    • 그리고 기능 개발을 할 때 실패하는 것에 대해서는 과감하게 되돌리고 시작할 수 있는 용기도 생겨야하기 때문에 작은단위 및 git 을 사용하며 진행해야 용이 할 수 있음.
    • 그리고 한번 만들고 나면 그 다음부터는 속도가 더 빨라졌음.
      • 진행을 하면서 관련된 지식을 획득하고, 그 기반으로 Agent 에게 요청하기 때문이라 생각함.
  • 하지만 더 어려운건 그 다음 이었음.
    • 앱 심사 및 출시를 하는 것이 의외로 스트레스 영역이었음.
    • 개발자 계정 같은것은 제대로 사전조사를 통한 검토하지 않고 시작한 문제도 있었음.
  • 앱을 만들고 내가 직접 플레이를 하고, 아이들이 재미있게 플레이를 하는 모습을 보면 뿌듯했음.
  • 하지만, 누군가 경험을 위해 앱을 만들고 소소하게 돈을 벌어보고 싶어서 앱을 만든다고 하면 말리고 싶음.
    • 그냥 웹 기반의 서비스가 훨씬도 빠르고 간편하게 셋업이 가능할 것이라고 생각했음.
    • OCI 같은것을 이용하면 비용없이 초기 서버 셋팅도 가능하고, DB 도 firebase 같은걸 활요해서 무료로 시작해볼 수 있을 것이라 생각함.

OpenCode를 활용한 문서 스캔 앱 개발 회고


배경

  • 아이 문제집 종류가 많아, 매번 외부로 갈 때 문제집을 가지고 가서 하는 것은 번거로움이 있음
  • 스캔을 해서 PDF 로 만들어서 해당 PDF 를 가지고 문제를 풀고 싶음
  • 가정용 스캐너로 많은 양의 스캔은 상당한 번거로움이 발생
  • 전문 스캐너를 통해 스캔하는 방법은 별도의 비용이 발생되고 문제집을 전부 커팅해야 함
  • 유사 앱이 존재하지만 무료버전에서는 제약이 존재하기 때문에 번거로움

목적

  • 생활속에서 필요한 부분을 직접 구현을 해보자
  • 직접 구현하기 보단 에이전트 방식의 개발로 진행을 통한 AI 시대의 개발 방법을 경험하자

사용 툴 및 LLM 모델

  • OpenCodeoh-my-opencode 를 활용
  • github copilot 에서 제공하는 모델 사용
    • gpt 5.2
    • gpt 5-mini
    • gpt 4o
    • gpt 4.1
    • claude opus 4.5
  • 직접 생각 및 고민을 위해 google gemini 추가 활용

oh-my-opencode.json

{
  "$schema": "<https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json>",
  "agents": {
    "sisyphus": {
      "model": "github-copilot/gpt-5-mini"
    },
    "librarian": {
      "model": "github-copilot/gpt-4.1"
    },
    "explore": {
      "model": "github-copilot/gpt-5-mini"
    },
    "oracle": {
      "model": "github-copilot/gpt-5-mini"
    },
    "frontend-ui-ux-engineer": {
      "model": "github-copilot/gpt-4o"
    },
    "document-writer": {
      "model": "github-copilot/gpt-4.1"
    },
    "multimodal-looker": {
      "model": "github-copilot/gpt-4o"
    }
  }
}

개발 진행

1차) 최초 진행

  • 카메라로 사진을 찍고, 해당 사진을 PC 로 이동하여 파이선으로 구현하여 cli 를 통해 진행하는 방식으로 OpenCode에게 요청.
  • 문서 영역을 잡기 위해 OpenCV 기반 파이선 라이브러리 검토
    • 원하는 퀄리티가 나오지 않음
  • 문서 영역을 더 잘잡기 위해 딥러닝 기반 라이브러리 검토
    • 어느정도 퀄리티가 나왔지만, 일부 사진을 픽해서 영역을 수정할 수 없고 오직 자동화만 가능 (cli 기반)

2차) 생각의 전환

  • 최초 진행한 파이선 cli 코드 기반으로 OpenCode에게 flutter 앱 구현 요청
  • 역시나 원하는 퀄이 나오지 않고, 진행을 할 수록 점점 이상 동작을 하기 시작

3차) 다시 생각의 전환

  • 최초 진행했던 것에 대한 소스코드 및 기반 문서 전부 폐기 후 새로 시작
  • 모든 기능을 한번에 OpenCode에게 요청을 해 한번에 “짠” 하고 싶었지만, 이 부분도 원할하게 되는 것 가지 않았음
  • “어느정도” 의 기능을 축소하여 바이브 코딩형태로 단계별 개발을 진행해보는 방법으로 전환

4차) 최종 진행

  • 단계 별로 OpenCode 에 요청 하고, 결과가 원하는 수준이 아니면 개선 요청 또는 rollback 하고 다시 요청
  • 토큰을 아껴쓰기 위해 모델 변경하며 작업
    • 큰 작업일 때만 sisyphusoracle 을 opus 4.5 와 gpt 5.2 로 전환해서 사용
    • 일반적인 작업일 때는 위 설정과 같이 gpt 5-mini 를 사용

대략적인 작업순서

  • 초기 프로젝트 요청
    • 카메라에서 이미지 추가 기능 구현
    • cunning_document_scanner 패키지 사용. 카메라로 문서를 스캔 → 이미지 목록에 추가
    • 갤러리에서 이미지 사진 선택 기능 구현
      • edge_dection 패키지 사용. 갤러리에서 이미지 사진 선택 후 문서 스캔 → 이미지 목록에 추가
    • 추가된 이미지 관리 구현
    • 추가된 이미지 클릭 시 미리보기 구현
    • 권한 관련 문제 해결하기 위해 gemini 를 통한 자료 조사 후 개선 요청
  • 버튼 UI/UX 개선 요청
  • PDF 기능 구현 (생성, 미리보기, 목록, 관리, 공유)
  • 추가된 이미지에 메모하기 기능 구현 (펜, 형광펜 메모)
  • 이미지 사진 여러장 선택 기능 추가 구현
    • 몇 번 시도해봤지만 정확히 되지 않아 gemini 와 리서치를 통해 기존 라이브러리로 불가능한 것을 깨달음
    • 해당 부분은 image_picker 후 opencv 를 통해 커스텀 구현이 필요했기 때문에 고성능 모델 활용
  • 버그 개선 및 UI/UX 개선 요청
  • 이미지 목록 그룹 기능 구현 요청
    • 단일 이미지 관리에서 복수 이미지 관리하게 개선
  • 소스코드 클린징 요청
    • 전체 코드를 읽고 잘 작업해야하는 부분이 있어 고급 모델로 수행

결과물

회고

  • flutter를 개발해본적이 없었기 때문에 초기에 어떻게 진행해야할지 고민이 있었음
    • gemini 같은 것과 간단한 검색을 통해 플루터 껍데기 돌아가는 것부터 터득해야했음
    • xcode, 인증서 관련, 실행방법 등등..
  • 코드를 직접적으로 수정을 하지 않았기 때문에 글을 작성하는 지금도 flutter 나 swfit 문법은 전혀 모름
  • 몇번의 실패는 있었음
    • 전체 요구사항을 한번에 제공을 하면 어려움이 있음
    • 기능 하나씩 작계 쪼개서 성공할때까지 작업을 하라고 하고 성공을 하면 사용성이나 진짜 내가 원하는 바와 동일하게 구현이 됐는지 확인이 필요했음
    • 만약, 이때 작게 쪼개지 않고 작업을 하면 원하는 결과물이 나오지 않았을때 rollback 하는 선택지가 쉽지 않을것 같음
  • Coding AI 를 활용하는 경험을 해볼 수 있었음.
    • 진행 전 은 아래와 같은 단편적인 작업들을 진행해봄
      • 간단한 코드 도움, 테스트 코드 작성 등을 시작으로 Coding AI 를 시작
      • 내가 작성한 코드에 Review 하는 것으로 처음 Agent 를 활용해봄
      • 조금 더 확장해보기 위해 Agent 를 통해 작은 기능 개발을 진행해 봄
    • 가끔 답답하긴 하지만 그래도 내가 하는 업무에 도움이 되고 시간을 쭐여주는 고마운 존재가 됐음
    • 새로운 걸 만들면 더 잘 할 거 같은데.. 어떻게 시작해야할지 엄두가 나지 않았을때 적절한 주제가 나타나서 시도해봄
      • OpenCode 를 활용을 적극적으로 해볼 수 있었고, 어떻게 일을 시켜야할지 조금더 꺠닫는 시간이 될 수 있었음
      • 해당 방법을 통해 현재 구현된 코드.. 현재 업무에 어떤식으로 적용을 하는게 좋을지 감을 조금더 잡을 수 있던것 같음

AI Coding Assistant 개인 프로젝트 그 이후 업무에 적용하기 위한 고민

  최근 사이드 프로젝트로 앱을 만들고 출시하면서 AI Agent 기반 개발을 여러 방식으로 실험해봤습니다. 개인 프로젝트에서 이것저것 부딪혀보고 나서, 실제 업무에 적용해보기 위해 회사에서 사용하던 스프린트 방식을 이 흐름에 적용해보고 싶어졌습니다....