모바일 앱 · 웹 서비스 · 사내 운영 시스템 개발

서비스에 필요한 전부를, 한 팀이 만듭니다.

모바일 앱과 웹, 서버, 관리자 화면까지 한 곳에서 만듭니다. 출시 후에는 운영까지 이어서 맡고, 직접 운영하시겠다면 언제든 넘겨드립니다.

만드는 일의 대부분은 저희가 만든 공정이 처리하고, 실제로 내보낼지는 담당 엔지니어가 직접 확인하고 승인합니다. 진행은 보고서가 아니라 4주마다 설치해서 실행해 볼 수 있는 결과물로 확인합니다.

결과물은 전부 귀사 것입니다. 저장소와 계정은 착수 시점부터 귀사 명의이고, 저작재산권은 검수·완납과 함께 귀사로 넘어갑니다. 어떤 도구에 무엇이 전송되는지는 착수 전에 문서로 합의합니다.

세 가지를 합니다. 대부분의 거래는 첫 번째로 시작해 세 번째로 이어집니다.

S1 — 제품을 처음부터 끝까지

기획서를 받아 화면·서버·데이터베이스·배포까지 만듭니다. 모바일 앱, 웹 서비스, 사내 운영 시스템과 백오피스가 같은 구조 안에 들어갑니다.

로그인·권한·결제·알림처럼 모든 프로젝트에 반복되는 부분은 이미 운영 중인 서비스에서 검증된 구현을 씁니다.

새로 만드는 것은 귀사 고유의 업무 로직뿐입니다.

기획 문서가 아직 없다면 범위 정리부터 함께 합니다. 만들려는 것과 지금 상황만 알려주시면 됩니다.

처음부터 범위에 들어 있는 것

테스트 코드, API·데이터 명세, 운영 문서, 그리고 버튼 하나로 배포되는 자동화까지 추가 견적 항목이 아니라 기본 납품물입니다.

프로젝트가 끝났을 때 남는 것은 동작하는 앱 하나가 아니라, 다른 팀이 이어받을 수 있는 저장소입니다.

S2 — 화면이 늘어나도 처음과 같은 품질

화면이 늘어날수록 같은 버튼이 다섯 개가 되고, 앱과 웹의 생김새가 갈라집니다.

저희는 화면을 하나씩 그리지 않고, 공통 부품을 먼저 세운 뒤 그 위에 얹습니다. 스무 번째 화면이 첫 번째 화면과 같은 규칙을 따르는 이유입니다.

우리가 만들어 쓰는 CoUI 는 130개가 넘는 컴포넌트를 모바일과 웹에서 같은 방식으로 제공합니다.

S3 — 운영·유지보수 (연간 계약)

만든 다음이 더 깁니다. 출시 후에는 연간 계약으로 이어집니다 — 대응 창구, 정해진 주기의 업데이트, 월간 운영 리포트.

매월 지난 달 배포 이력, 처리한 요청, 남아 있는 항목을 한 장으로 정리해 보내드립니다. 숫자는 저장소에서 그대로 집계되므로 귀사가 같은 기준으로 다시 세어보실 수 있습니다.

그리고 언제든 넘겨드립니다. 인수인계는 계약 종료 시점의 이벤트가 아니라 계약 안에 항상 열려 있는 선택지입니다.

저장소와 클라우드 계정은 귀사 명의로 개설하고, 최고 권한은 처음부터 귀사가 가집니다. 인수인계 요청은 계약서에 정한 통보 기간에 따라 접수하며, 저희가 거절할 수 있는 조항은 계약서에 두지 않습니다.

외주 개발의 진짜 위험은 늦게 나오는 것이 아니라, 다 만든 뒤에 아무도 손댈 수 없는 코드가 남는 것입니다.

그래서 결과물만이 아니라 만드는 공정을 공개합니다. 네 단계 모두 귀사가 그대로 이어받는 것들입니다.

  1. 01

    뼈대

    프로젝트마다 구조가 다르면 담당자가 바뀔 때마다 조직이 학습 비용을 다시 냅니다. 사내 시스템이 늘어날수록 그 비용은 시스템 수만큼 곱해집니다.

    저희는 모든 프로젝트를 같은 뼈대 위에서 시작합니다. 몇 년 뒤 다른 팀이 열어봐도, 다른 회사에 맡기셔도 같은 자리에 같은 것이 있습니다.

  2. 02

    구현

    로그인·권한·결제·알림처럼 어느 제품에나 들어가는 부분을 매번 새로 만들면, 그만큼 새로운 결함이 매번 생깁니다.

    이미 운영 중인 서비스에서 검증된 공통 부품 위에 화면과 업무 로직을 얹습니다. 새로 만드는 것은 귀사 고유의 로직뿐입니다.

    나오는 것은 특수한 형식이 아니라 사람이 그대로 읽고 고칠 수 있는 평범한 코드입니다. 저희를 거치지 않고도 이어서 개발하실 수 있습니다.

  3. 03

    검증 · 사람이 승인합니다

    기능 하나를 만들 때마다 그 기능의 명세에서 검사 항목이 함께 만들어집니다. 화면이 제대로 그려지는지, 실제 기기에서 처음부터 끝까지 동작하는지 두 가지를 봅니다.

    검사를 모두 통과해도 자동으로 넘어가지 않습니다. 담당 엔지니어가 직접 보고 승인해야 본 코드에 반영됩니다 — 승인자의 이름은 착수 때 알려드립니다.

    보안 심사나 감사에서 "이 변경을 누가 승인했는가"를 물을 때 답할 수 있어야 합니다. 통과하지 못한 것까지 기록으로 남고, 착수 첫날부터 귀사 담당자도 그대로 열람하실 수 있습니다.

  4. 04

    배포 · 나갈 것을 다시 봅니다

    빌드가 "성공"이라고 말해도 그대로 내보내지 않습니다. 나갈 산출물을 항목별로 다시 검사하고, 하나라도 걸리면 출시를 멈춥니다.

    "빌드는 통과했는데 화면이 비어 있었다" 같은 사고는 여기서 걸립니다. 사용자에게 도달한 뒤에 발견하면 되돌리는 비용이 훨씬 큽니다.

    인증서 만료처럼 반복되는 장애는 자동 복구 절차가 처리합니다. 배포 설정은 귀사 저장소 안에 함께 인도하므로, 저희 없이도 같은 방식으로 내보낼 수 있습니다.

빨라지는 이유는 절차를 건너뛰어서가 아닙니다. 손이 많이 가는 반복 작업을 공정이 처리하고, 사람의 시간이 요구사항 해석과 검증으로 옮겨가기 때문입니다. 검증 단계는 줄지 않습니다.

만드는 방식 보기

주장은 여기까지입니다. 아래는 직접 확인해 보실 수 있는 것들입니다.

이 페이지에서 지금 확인해 보실 수 있는 것
  1. 01본문이 자바스크립트 없이 서버에서 그려져 있습니다.
  2. 02한국어 페이지와 영어 페이지의 제목 개수가 같습니다.
  3. 03본문에 하이픈 없는 열 자리 이상 숫자열이 없습니다.
검수

화면 품질 대조

앱과 웹이 정말 같게 보이는지 사람 눈이 아니라 기계가 대조합니다.

컴포넌트마다 웹 렌더링과 Flutter 렌더링을 같은 화면에 나란히 놓고 대조합니다.

두 렌더링의 속성값 — 글꼴·색·테두리·여백·그림자 등 — 은 컴포넌트가 바뀔 때마다, 그리고 매일 밤 자동으로 대조됩니다. 값이 어긋나면 PR에는 코멘트가, 야간 대조에는 이슈가 자동으로 달립니다.

대조 기록은 비공개 저장소에 남아 링크로 열어드릴 수 없습니다. 실사 과정에서 실행 이력과 리포트를 화면으로 보여드립니다.

검수

이 페이지

지금 보고 계신 이 사이트가 그 결과물입니다.

이 페이지가 공개되기까지 통과한 검사는 열두 가지입니다 — 필요한 화면이 실제로 그려졌는지, 공개하면 안 되는 번호가 섞이지 않았는지, 한국어와 영어가 어긋나지 않았는지 같은 것들입니다. 하나라도 걸리면 배포가 멈춥니다. 검사 항목은 프로젝트마다 다르게 잡습니다.

브라우저에서 페이지 소스를 열어 지금 바로 확인해 보실 수 있습니다.

실체

회사

법인 정보와 사무실 주소는 이 페이지 맨 아래에 그대로 적혀 있습니다.

그리고 우리가 없어져도 귀사 서비스가 계속 운영되는 구조 — 저장소와 계정은 처음부터 귀사 명의, 앱과 서버가 같은 언어라 이어받을 사람을 구할 수 있는 스택, 인수인계는 계약 기간 중 한 번 실제로 연습.

어떤 조직이, 어떤 제약 안에서, 무엇을 맡겼는지.

진행한 프로젝트의 사례는 고객사 공개 승인을 받는 대로 올립니다. 그동안 판단하실 재료가 필요하시면 만드는 방식을 봐 주세요 — 단계마다 무엇이 만들어지고, 누가 승인하는지 적혀 있습니다.

문의 주시면 진행 중인 프로젝트의 성격과 규모를 구두로 말씀드릴 수 있습니다.

계약 전에 미리 알아두시면 좋은 것들입니다.

이럴 때 가장 잘 맞습니다

  • 처음 서비스를 만드는 초기 팀이어서, 범위 정리부터 개발과 운영까지 한 곳과 진행하고 싶을 때
  • 사내에 개발 인력이 없거나 소수여서, 만드는 것뿐 아니라 이후 운영까지 함께 맡길 곳이 필요할 때
  • 모바일 앱, 웹 서비스, 사내 운영 시스템을 하나의 구조로 묶고 싶을 때
  • 기존 서비스를 다시 만들거나 넘겨받아 이어가야 할 때
  • 산출물과 소유권을 문서로 명확히 하고 싶을 때

반대로 상주 개발이나 별도의 망 환경에서의 작업이 필요한 프로젝트는 저희 방식과 맞지 않습니다. 문의 주시면 솔직하게 말씀드리고, 어떤 조건을 갖춘 곳을 찾으셔야 하는지 정리해서 알려드립니다.

진행과 검수

구축 프로젝트는 4주 단위로 범위를 확정하고, 매 주기 끝에 설치해서 실행할 수 있는 빌드를 전달합니다. 첫 주기의 목표는 완성된 기능이 아니라 배포 경로가 열려 있다는 확인입니다.

외부 심사나 자료 제공을 기다려야 하는 항목은 주기 시작 때 미리 표시해 일정에서 분리합니다.

진행률은 문서상의 퍼센트가 아니라 배포된 빌드로 확인합니다.

단계별 산출물 제출 → 검수 기간 → 하자 대응 창구 순으로 진행하며, 기간과 범위는 계약서에 명시합니다.

계약 형태

  • 고정가 — 범위가 확정된 프로젝트
  • 4주 스프린트 기간제 — 범위를 진행하며 조정하는 프로젝트

두 경우 모두 대금은 마일스톤으로 나눕니다.

클라우드 사용료는 귀사 계정으로 직접 청구되며, 저희 대금에 포함되지 않습니다.

무엇을 받으시나요 — 인도 산출물

  • 저장소 (착수 시점부터 귀사 명의)
  • 아키텍처·데이터 구조 문서
  • 실행 가능한 테스트 스위트
  • CI/CD 설정
  • 인프라 구성 문서
  • 운영 런북
  • 계정·도메인·인증서 이관 목록
  • 제3자 오픈소스 라이선스 목록

소유권

계약에 명시

검수 완료 및 대금 완납 시 저작재산권 전부가 귀사에 귀속됩니다 — 2차적저작물작성권을 포함하며, 저희는 산출물에 대한 저작인격권을 행사하지 않습니다.

저희가 만든 컴포넌트 라이브러리(CoUI)를 사용한 경우, 사용 버전의 소스 사본과 기간·수량·지역 제한 없는 사용권 및 개작 권한을 함께 드립니다.

CoUI 에는 제3자 오픈소스에서 파생된 구성요소가 포함되며, 해당 라이선스 전문과 저작권 고지를 소스 사본과 함께 인도합니다.

산출물에 포함된 제3자 오픈소스의 라이선스 목록을 빌드 산출물과 함께 제출합니다.

착수 전에 사용하는 도구를 확인표로 드립니다. 도구별로 용도, 요금제, 모델 제공 경로, 학습 사용 여부와 그 근거가 약관인지 계정 설정인지, 벤더 보존 기간, 남용 탐지 목적 보존, 개발자 단말 로컬 보존, 근거 문서 URL 을 적습니다.

확인되지 않은 항목은 빈칸으로 두지 않고 "미확인"으로 적습니다. 추정으로 채우지 않습니다.

반입하지 않을 데이터의 범위는 착수 전에 함께 정하고, 합의가 없으면 최소한 네 가지를 반입 금지로 봅니다 — 고객 개인정보, 운영 데이터, 미공개 사업 정보, 운영 환경 인증정보.

AI 도구 외에도 이슈 트래커·디자인 도구·협업 도구를 사용하며, 이 경로로 기능 명세와 업무 규칙이 외부 서비스에 저장됩니다. 사용하는 서비스와 각각 나가는 데이터, 인증 방식, 프로젝트 단위 차단 가능 여부를 같은 확인표에 적어 착수 전에 제출합니다.

도구를 저희가 추가하거나 바꿀 때는 변경 전에 서면으로 알려드리고, 귀사가 거부하는 도구는 쓰지 않습니다. 반면 도구 제공사가 일방적으로 바꾸는 범위 — 하위 모델 제공자 라우팅, 모델 별칭이 가리키는 실제 모델, 벤더 정책 변경 — 는 사전 통지를 확약할 수 없고, 인지한 즉시 알려드립니다.

개발에는 테스트 데이터를 쓰는 것이 기본입니다. 운영 데이터 접근이 불가피하면 접근 범위·기간·처리 담당자를 사전에 서면으로 승인받고 최소 범위로 진행하며, 해당 데이터는 도구가 읽는 작업 영역 밖에서 처리합니다.

저장소와 클라우드가 모두 귀사 계정이므로 백업도 귀사 정책을 따르며, 저희는 귀사 데이터의 별도 백업을 보유하지 않습니다. 다만 개발자 단말에는 저장소 사본과 도구 작업 세션 기록이 남고, 프로젝트 종료 시 이를 삭제한 뒤 삭제 사실을 알려드립니다.

요청하시면 사용하는 도구와 데이터 취급 범위를 정리한 보안 문답서를 회신드립니다. 보안서약서는 NDA 와 함께 내용을 확인한 뒤 체결합니다.

자주 묻는 질문

AI 가 만든 코드인데 나중에 유지보수가 되나요?

결과물은 특수한 형식이 아니라 Flutter 와 Serverpod 로 작성된 평범한 코드입니다.

구조가 프로젝트마다 달라지지 않도록 같은 템플릿에서 시작하고, 테스트와 문서가 함께 들어갑니다.

다른 개발자가 저장소를 받아 그대로 이어서 작업할 수 있는 상태로 인도하는 것이 기준입니다.

cocode 가 없어지면 저희 서비스는 어떻게 되나요?

저장소와 클라우드 계정은 착수 시점부터 귀사 명의입니다. 저희가 빌려드리는 것이 아닙니다.

앱은 Flutter, 서버는 Serverpod, 데이터베이스는 PostgreSQL 로 만듭니다. 앱과 서버가 같은 Dart 언어라 Flutter 개발자가 서버 코드까지 읽을 수 있습니다. 데이터는 PostgreSQL 표준 형식이라 어느 팀에도 그대로 넘어갑니다.

저희가 만든 컴포넌트 라이브러리(CoUI)를 쓰는 프로젝트는, 사용한 버전의 소스 사본을 귀사 저장소 안에 함께 인도하고 기간 제한 없는 사용·수정 권한을 계약서에 적습니다. 저희 계정에 접근하지 못해도 빌드와 배포가 되는 상태로 인도하는 것이 기준입니다.

CoUI 에는 제3자 오픈소스에서 파생된 구성요소가 포함되며, 해당 라이선스 전문과 저작권 고지를 소스 사본과 함께 인도합니다.

첫 출시 이후 시점을 정해, 귀사 담당자 또는 귀사가 지정하고 비밀유지계약을 체결한 제3자가 저희 도움 없이 새 환경에 빌드와 배포를 재현해 보는 인수인계 리허설을 계약에 포함합니다. 일정은 착수 시 함께 잡고, 운영 환경은 건드리지 않습니다.

재현되지 않는 부분이 나오면 저희가 문서와 스크립트를 고쳐 다시 확인합니다 — 그걸 찾는 것이 이 리허설의 목적입니다.

저희 코드와 기획서가 외부 AI 모델 학습에 쓰이나요?

저희는 코드와 명세의 일부를 에이전트 도구에 전송해 개발합니다. 이 사실부터 먼저 말씀드립니다.

반입하지 않을 데이터의 범위를 착수 전에 함께 정합니다. 합의가 없으면 고객 개인정보, 운영 데이터, 미공개 사업 정보, 운영 환경 인증정보 네 가지는 반입하지 않는 것으로 봅니다.

경유지는 AI 도구만이 아닙니다. 이슈 트래커·디자인 도구·협업 도구를 거쳐 기능 명세와 업무 규칙도 외부 서비스에 저장됩니다. 어떤 서비스에 무엇이 나가는지, 프로젝트 단위로 차단할 수 있는지까지 같은 확인표에 적습니다.

메일·파일 저장소·메신저 연동처럼 계정 전체에 접근하는 것은 프로젝트 단위로 좁힐 수 없습니다. 그런 연동은 이 프로젝트 작업 중에는 연결을 해제합니다.

어떤 도구를 어떤 조건으로 쓰는지는 착수 전에 목록으로 드립니다. 저희가 도구를 바꿀 때는 변경 전에 알려드리고 귀사가 거부하는 도구는 쓰지 않지만, 도구 제공사가 일방적으로 바꾸는 것은 미리 알 수 없어 인지한 즉시 알려드립니다.

NDA 를 체결하며, 요청하시면 보안 문답서에 항목별로 회신드립니다.

코드 소유권은 누구에게 있나요?

검수 완료 및 대금 완납 시 저작재산권 전부가 귀사에 귀속됩니다 — 2차적저작물작성권을 포함합니다. 계약서에 명시합니다.

저희 회사 표준계약서를 쓸 수 있나요?

가능합니다. 발주사 양식을 기본으로 검토합니다.

다만 지식재산권 귀속, 산출물 범위, 하자 대응 기간, 손해배상 한도, 지체상금 산정 방식 다섯 가지는 저희 기준을 먼저 말씀드리고 조정을 요청드립니다.

그 외 조항은 대체로 그대로 받으며, 다만 저희가 이행할 수 없게 되는 조항이 있으면 그 조항만 따로 말씀드립니다.

아직 기획서가 없는데 문의해도 되나요?

괜찮습니다. 만들려는 것과 지금 상황을 알려주시면 범위 정리부터 함께 하고, 범위가 잡히면 견적과 일정을 말씀드립니다.

견적은 어떻게 산정되나요?

범위를 먼저 정리한 뒤 산정합니다. 문의 시 만들려는 것과 일정, 대략의 예산 범위를 알려주시면 범위 조정안과 함께 견적을 드립니다.

범위가 확정되지 않은 단계라면 4주 스프린트 기준으로 제안드립니다.

개발 기간은 얼마나 걸리나요?

규모에 따라 다르지만, 4주 단위로 끊어서 매 주기 끝에 동작하는 빌드를 전달합니다.

첫 주기가 끝나면 진행 속도를 실제 결과물로 확인하고 이후 일정을 함께 조정합니다.

유지보수는 어떻게 진행되나요?

출시 후 연간 계약으로 이어집니다. 대응 창구, 정해진 주기의 업데이트, 월간 운영 리포트가 포함됩니다.

직접 운영하기로 결정하시면 언제든 인수인계로 전환할 수 있습니다.

어떤 프로젝트를 주로 하시나요?

모바일 앱, 웹 서비스, 사내 운영 시스템과 백오피스를 주로 만듭니다.

특히 이 세 가지를 하나의 구조로 묶어야 하는 프로젝트에 강합니다.

개발 중간에 다른 업체로 옮기게 되면 어떻게 되나요?

인수인계에 저희 동의를 조건으로 걸지 않습니다. 계약서에 정한 통보 기간에 따라 접수하고, 진행 중이던 범위까지 정산한 뒤 인수인계 문서와 런북을 그 시점 기준으로 정리해 드립니다.

지금 문의하면 언제 착수할 수 있나요?

문의 시점의 진행 상황에 따라 다릅니다. 회신드릴 때 착수 가능 시점을 먼저 말씀드리고, 그 사이에 범위 정리를 함께 진행할 수 있습니다.

무엇을 만들지 아직 정리되지 않아도 괜찮습니다.

지금 상황을 알려주시면 범위부터 함께 정리해 드립니다. 담당자가 영업일 기준 이틀 안에 직접 연락드립니다.

cody@cocode.im