자동화 프로세스

빌드와 배포부터 크래시 대응까지, 반복되는 개발 과정을 자동화합니다.

운영 중

앱 빌드·배포

Mattermost 슬래시 명령으로 모듈, 빌드 유형, 환경을 지정해 Jenkins 빌드를 실행하고 Firebase로 배포합니다.

운영 중

배포 태그 관리

배포 버전 태그를 자동으로 남기고 관리합니다.

운영 중

유닛 테스트 자동 실행

빌드와 함께 유닛 테스트를 돌려 결과를 확인합니다.

운영 중

백엔드·프론트엔드 배포

서버와 웹 배포를 파이프라인으로 처리합니다.

운영 중

빌드 결과 알림

빌드 결과를 사실 데이터로 조립해 정책과 폴백 순서에 따라 Mattermost 등으로 알립니다.

운영 중

빌드 실패 분석·수정

실패 로그를 로컬 LLM이 분석하고 수정을 시도합니다.

개발 중

크래시 감지·알림·수정

Crashlytics API를 주기적으로 조회해 신규·재발·급증 크래시를 Mattermost로 알립니다. 앱 생성 시 Firebase 프로젝트와 알림 연결도 함께 처리합니다. 원인 분석과 수정 PR 초안 생성은 개발 중입니다.

개발 중

UI 테스트 자동화

화면 테스트를 파이프라인에서 자동으로 실행합니다.

만들고 운영하는 것

업무 밖에서 구성하고 운영하는 개발 환경과 AI 자동화입니다.

빌드·배포·검증

Jenkins CI/CD

Docker로 띄운 Jenkins에서 앱 빌드부터 배포, 검증, 알림까지 하나의 파이프라인으로 처리합니다. 파이프라인 코드도 앱 코드처럼 층을 나눠 설계했습니다.

  • Checkout, Setup, Lint(minSdk 하위 호환 게이트), 빌드, Firebase 배포, 산출물 보관 단계로 구성
  • 순수 정책 층, 파일 어댑터 층, 부수효과 서비스 층으로 분리해 Jenkins 없이도 정책을 단위 테스트
  • 배포와 CI가 같은 공용 모듈을 쓰도록 정의를 하나로 묶고, 그 계약을 테스트로 고정
  • 값과 시크릿 위치는 선언형 설정 한 곳이 소유하고, 서명 정보는 자격 증명 바인딩으로만 주입
  • 알림은 사실(facts)을 먼저 조립한 뒤 발송 정책과 폴백 순서에 따라 전달
  • 백엔드·프론트엔드 배포 파이프라인을 같은 구조로 운영하고, UI 테스트 단계는 추가 예정
Jenkins · Groovy · Docker · Pipeline as Code · Firebase App Distribution
알림·명령

ChatOps (Mattermost 연동)

메신저를 개발 작업의 입구로 씁니다. 슬래시 명령으로 빌드를 요청하고, 빌드·배포·리뷰·수익 같은 이벤트를 한 채널에서 받습니다.

  • /deploy 명령으로 앱 모듈, 빌드 유형, 환경을 지정해 Jenkins 빌드를 실행
  • Firebase App Distribution, GitHub 이벤트 수신 엔드포인트, Crashlytics 크래시 주기 조회 알림
  • Google Play 리뷰와 AdMob 수익은 주기적으로 조회해 채널에 요약
  • Claude와 Copilot에 연결한 대화형 봇 (이벤트 스트림 수신)
  • Mattermost 메시지를 Claude Code 세션과 주고받는 MCP 채널을 구성하고, 도구 승인 요청을 DM으로 중계
Mattermost · TypeScript · Express · Webhook · WebSocket
Mac mini

홈서버

하나의 리버스 프록시 뒤에 백엔드 API, 봇, CI, 메신저, 웹 대시보드를 경로별로 나눠 올리고, 외부에서도 접속할 수 있게 운영합니다.

  • 정적 프론트엔드 서빙과 API 프록시를 한 서버에서 처리하고 WebSocket 업그레이드를 지원
  • 메신저·웹훅 서비스·봇·프록시 설정을 하나의 비공개 저장소로 관리하고, 스크립트 한 번으로 새 PC에 복원 (도구 설치, 메신저, 빌드, 프록시, 프로세스 관리 순서, 여러 번 실행해도 안전)
  • 프록시 설정 적용 시 검증에 실패하면 이전 설정으로 자동 복구
  • 메신저 DB 백업·복원 스크립트와 로그인 시 자동 시작 구성, 프로세스는 pm2로 관리
nginx · Docker · pm2 · launchd · Shell
Ollama · MLX

로컬 LLM

gpt-oss, gemma, qwen, deepseek-coder 등 여러 모델을 로컬에서 돌려 보고, 작업 성격에 맞는 모델을 고릅니다.

  • 긴 로그와 코드를 다루도록 컨텍스트를 늘린 모델을 따로 구성
  • Jenkins 실패 로그 분석과 수정 시도, 단순 작업을 서브 에이전트에 위임하는 용도로 사용
  • 예정: 유닛·UI 테스트와 헬스 체크를 24시간 반복 실행
Ollama · MLX · gpt-oss · Gemma · Qwen
도구 중립

AI 개발 하네스

Claude Code, Codex, Copilot이 같은 스킬과 에이전트를 공유하도록 설계한 개발 하네스입니다. 모델에 맡길 일과 스크립트가 할 일을 나누는 것이 핵심 원칙입니다.

  • 결정적인 작업(파싱, 집계, 규칙 검증)은 모델이 아니라 스크립트가 수행
  • 에이전트 위임은 근거를 선언한 경우에만 허용하고, 선언이 없으면 린트가 막음
  • 판단 수준(티어)과 지불 예산을 다른 축으로 분리해 예산이 바뀌어도 에이전트 파일은 그대로
  • 푸시 전 검증 게이트 8단계: 구조, 티어 정합, 버전 동기화, 매니페스트, 스크립트 문법, 단위 테스트 등
  • 런타임 가드: 과금 경로 차단, 커밋 메시지 규칙, 편집 직후 정적 검사, 작업 이력 기록
  • 스킬·에이전트·스크립트의 동작을 별도 평가(evals)와 하네스 자체 테스트로 확인
Claude Code · Codex · Copilot · Skills · Agents · Python
모노레포 자동화

앱 개발 도구 체인

앱 6개를 모노레포로 만들면서, 반복되는 일과 실수하기 쉬운 규칙을 도구로 옮겼습니다.

  • 모듈과 앱 스캐폴딩 스크립트가 코드, 테스트, 문서, 모듈 등록까지 한 번에 생성
  • 의존 방향, 하드코딩 문자열, 문서 계약, 문서 속 심볼 드리프트를 검사하는 스크립트
  • testTag 규칙과 자체 구현한 Appium E2E 러너로 화면 흐름 테스트
  • 변경된 모듈만 골라 테스트하고 결과와 커버리지를 집계
  • 공개용 문서를 소스 문서에서 추려 동기화하는 스크립트
Gradle · Convention Plugin · Appium · Python · Shell
© 2026 이윤성
Built with Astro using the Astrofy template (MIT)