프로젝트의 전체를 보는 흐름
2026. 4. 6.
프로젝트 시작 시 알아야 할 8단계
문제와 목표 정의
요구사항 정리
기술/구조 설계
개발 환경과 기본 인프라 세팅
기능 구현
품질 보증과 운영 장치 추가
배포
운영, 관찰, 개선
여기서 많은 사람들이 실수하는 지점은 하나다.
기능 구현을 너무 빨리 시작한다.
-> “무엇을 만들지”보다 먼저 “망하지 않으려면 뭘 먼저 깔아야 하지?”를 본다.
1. 문제와 목표 정의
제일 먼저 알아야 하는 것
이 프로젝트는 누가 쓰는가
사용자는 무엇을 하려고 들어오는가
성공은 무엇으로 판단하는가
실패하면 어디가 아픈가
예를 들면....
체크인 키오스크인가?
관리자용 대시보드인가?
일반 소비자용 앱인가?
병원 현장 직원이 대신 조작하는가?
로그인 실패가 치명적인가, 결제 실패가 치명적인가?
여기서 정해야 하는 것
핵심 사용자
핵심 시나리오 3~5개
반드시 되는 것 / 나중에 해도 되는 것
성공 지표
완료율
이탈률
오류율
응답 속도
운영 문의 건수
이 단계에서 빠지기 쉬운 것:
비정상 상황
네트워크 끊김
잘못된 입력
서버 장애
기기 재부팅
사용자 실수
2. 요구사항 정리
여기서는 “무슨 화면이 있는가”보다 무슨 행동과 상태가 있는가를 본다.
정리 항목
화면 목록
유저 플로우
API 필요 목록
데이터 모델
예외 케이스
권한/인증
기기 의존성
다국어 여부
접근성 필요 여부
좋은 요구사항 정리 방식
사용자 스토리
화면별 책임
입력/출력
성공/실패 조건
엣지 케이스
예시 질문
사용자가 중간에 뒤로 가면?
API 응답이 늦으면?
동일 요청을 연속으로 누르면?
오프라인이면?
서버는 성공인데 화면 반영이 실패하면?
3. 기술/구조 설계
여기서 정할 것
어떤 플랫폼인가
웹
React Native
Electron
키오스크 전용 앱
상태 관리는 무엇으로 하는가
네트워크 레이어를 어떻게 감쌀 것인가
에러를 어디서 잡을 것인가
폴더 구조를 어떻게 나눌 것인가
공통 컴포넌트를 어디까지 만들 것인가
디자인 토큰을 어떻게 관리할 것인가
환경변수 전략은 무엇인가
로그/분석/모니터링은 어디에 붙일 것인가
이때 같이 설계해야 하는 것
인증 구조
API 클라이언트 구조
에러 표준화
공통 다이얼로그/토스트/로딩 처리
권한 분기
라우팅 가드
feature flag 필요 여부
기능 설계와 운영 설계를 같이 해야 한다.
예를 들어 센트리는 “나중에 붙이는 도구”가 아니라, 사실은 에러를 어떻게 분류하고 추적할지에 대한 운영 설계다.
4. 개발 환경과 기본 인프라 세팅
이 단계에서 “뼈대”를 만든다.
보통 들어가는 것
프로젝트 생성
lint / formatter
TypeScript 설정
절대경로 alias
env 관리
Git 전략
브랜치 전략
CI 기본 파이프라인
테스트 러너
공통 레이아웃 / 테마 / 토큰
i18n
API client
에러 boundary
로깅 기초
분석 도구 기초
Sentry
앱 버전/빌드 관리 방식
이 시점에 붙이면 좋은 것
Sentry
Analytics
Remote Config 또는 Feature Flag
Crash 대응용 전역 핸들러
공통 API 에러 파서
loading / empty / error 상태 컴포넌트
네트워크 재시도 정책
debounce / throttle 유틸
secure storage 전략
왜 초반에 붙이냐면, 중간 이후에 붙이면 코드 전체를 뜯게 되는 경우가 많기 때문이다.
5. 기능 구현
여기서의 기본 흐름은 보통 이렇다.
기능 목표 정의
화면/상태/API/예외 정리
설계 문서 또는 작업 계획 작성
UI 골격 작성
상태 연결
API 연결
예외 처리
로딩/빈 상태/에러 상태 처리
접근성/문구/i18n 반영
테스트
문서 업데이트
기능 하나를 만들 때 꼭 체크해야 하는 것
성공 흐름이 되는가
실패 흐름이 되는가
중복 클릭 방지 되는가
로딩 중 상태가 자연스러운가
에러 메시지가 사용자 친화적인가
로그로 원인 추적 가능한가
analytics 이벤트가 필요한가
6. 품질 보증과 운영 장치
6-1. 에러 처리
에러 처리는 보통 4층
사용자 입력 에러
비즈니스 에러
네트워크/서버 에러
개발자 실수/예상 못 한 런타임 에러
좋은 구조는 보통 이렇다
API 에러를 공통 포맷으로 변환
사용자에게 보여줄 메시지와 내부 로그를 분리
recover 가능한 에러와 불가능한 에러를 분리
전역 boundary와 지역 처리 분리
예를 들면
폼 검증 실패: 화면에서 바로 안내
서버 400/409: 사용자 액션 수정 유도
서버 500: 재시도 또는 문의 유도
예상 못 한 크래시: boundary + Sentry 전송
6-2. Sentry
Sentry는 보통 이런 시점에 생각
앱 시작 시 초기화
환경별 DSN 분리
release / environment / version 설정
source map 업로드
사용자 식별 정보 연결
에러에 context 붙이기
민감 정보 마스킹
navigation / API breadcrumbs 추가
성능 추적 필요 시 transaction 연결
Sentry에서 중요한 건 “붙였다”가 아니라
어떤 에러를 수집할지
어떤 정보는 보내면 안 되는지
누가 알림을 받는지
어떤 수준에서 이슈를 triage할지
6-3. Search Advisor / 검색 / 추천 / 보조도구
네가 말한 “서치 어드바이저”가 정확히 어떤 범주의 도구인지에 따라 다르지만, 보통 이런 류의 시스템을 말한다.
검색 추천
자동완성
내부 관리자 검색
운영 보조형 질의 시스템
AI assistant / advisor
이런 건 붙이기 전에 이런 걸 먼저 정해야 함.
데이터 출처
실시간성
검색 정확도 기준
실패 시 fallback
개인정보 포함 여부
로그 저장 여부
운영자가 수정 가능한지
즉, 이런 기능은 UI 문제가 아니라 데이터/품질/운영 책임 문제다.
6-4. 테스트
테스트는 최소한 이 층위로 나눈다
단위 테스트
컴포넌트 테스트
통합 테스트
E2E
수동 QA 체크리스트
많은 프로젝트에서 현실적인 최소선은
핵심 유틸 단위 테스트
중요한 화면 흐름 통합 테스트
배포 전 수동 QA 체크리스트
치명 경로 E2E 1~3개
6-5. 로깅 / 분석
이건 후순위가 아니다. 구분해서 봐야 한다.
에러 로그: 왜 실패했는가
이벤트 로그: 사용자가 무엇을 했는가
성능 로그: 왜 느린가
운영 로그: 배포 후 어떤 환경에서 문제가 생기는가
7. 배포
배포는 “앱을 올리는 행위”가 아니라 출시 가능한 상태를 만드는 시스템이다.
여기서 필요한 것
환경 분리
local
dev
staging
production
환경변수 분리
빌드 설정 분리
앱 버전 전략
릴리즈 노트
배포 체크리스트
롤백 전략
모니터링 확인 절차
앱/프론트 배포에서 자주 놓치는 것
source map 누락
환경변수 잘못 연결
staging와 production API 혼선
앱 버전과 release 버전 불일치
feature flag 기본값 실수
배포 후 health check 없음
배포 직후 꼭 보는 것
크래시율
핵심 기능 성공률
주요 API 실패율
로그인/결제/체크인 같은 핵심 이벤트
Sentry 신규 이슈
8. 운영과 개선
진짜 프로젝트는 배포 후 시작된다.
운영 단계에서 하는 것은..
에러 triage
사용자 피드백 수집
로그 분석
성능 병목 개선
기능 우선순위 재조정
기술 부채 상환
문서 업데이트
장애 대응 프로세스 정리
한 번 더 생각할 요건들
장애를 개인 실수로 보지 않고 시스템 개선으로 본다
반복 에러는 구조 문제로 본다
자주 묻는 질문은 UX 문제로 본다
운영 문의는 기능 요구사항의 일부로 본다
프로젝트 시작 전에 머릿속에 두는 체크리스트
프로젝트를 볼 때 늘 이 질문들을 던지면 된다.
누가 왜 쓰는가?
가장 중요한 1개의 성공 시나리오는 무엇인가?
망가졌을 때 가장 위험한 지점은 어디인가?
어디서 에러를 잡을 것인가?
어디까지 공통화하고 어디부터 개별 처리할 것인가?
상태는 어디에 둘 것인가?
API 실패 시 UX는 어떻게 되는가?
로그로 원인 추적 가능한가?
배포 후 문제를 누가 어떻게 발견하는가?
나중에 기능이 2배가 되어도 구조가 버틸까?
바이브 코딩일수록 더 필요한 태도
바이브 코딩은 감으로 막 만든다는 뜻이 아니다.
작은 단위로 자른다
매 단계마다 검증한다
문서와 코드의 간격을 줄인다
“일단 만들고 나중에 정리”를 남발하지 않는다
운영 장치를 초반에 심는다
실패 케이스를 먼저 상상한다
즉, 바이브 코딩의 핵심은 자유로움이 아니라
빠른 판단 + 빠른 검증 + 구조적 복구 가능성이다.
“처음부터 끝까지” 실제 순서
아주 현실적으로 적어보면 이 순서다.
프로젝트 목적 1문장 정리
핵심 사용자와 핵심 시나리오 3개 정리
화면 목록과 기능 목록 작성
성공/실패/예외 케이스 정리
기술 스택 결정
폴더 구조, 상태관리, API 레이어 설계
디자인 토큰, 공통 컴포넌트, i18n 기초 구축
lint, format, tsconfig, env, CI 세팅
에러 boundary, API 에러 처리 공통화
Sentry, analytics, logging 기초 연결
첫 핵심 기능부터 구현
기능마다 로딩/에러/빈 상태까지 완성
테스트 추가
staging 배포
QA 체크리스트 기반 검수
production 배포
배포 후 모니터링
개선 사이클 반복
많이 빠뜨리는 항목
환경변수 전략
앱 버전/릴리즈 버전 관리
source map 업로드
개인정보 마스킹
공통 에러 스키마
재시도 정책
오프라인/타임아웃 UX
중복 요청 방지
feature flag
analytics 이벤트 설계
접근성
운영자용 로그 확인 방식
QA 체크리스트
롤백 계획
문서화 기준
장애 대응 프로세스
의사결정 기록
성능 기준선
보안 점검 항목
공부할 때의 올바른 순서
요구사항 정리
예외 케이스 정리
구조 설계
에러 처리
상태 관리
API 연결 방식
공통 UI 패턴
로깅 / Sentry / analytics
테스트
배포 / 운영
이 순서가 좋은 이유는, 대부분의 초급자는 도구부터 배우는데, 실제로는 도구는 구조 위에 올라가는 것이기 때문이다.
프로젝트의 전체 생애주기를 보는 훈련을 하자.
하나의 가상 프로젝트를 정한다
PM처럼 질문한다
AI가 답한다
빠진 요구사항, 운영 포인트, 에러 처리 포인트를 잡아준다
그 다음 AI가 설계 흐름도를 만들어준다
그 다음 구현 순서를 정리해준다
마지막으로 Sentry, 에러 처리, 배포, QA까지 체크리스트화해준다