각진 세상에 둥근 춤을 추자

프로젝트 기획과 프로젝트 과정 본문

프로젝트/사이드프로젝트

프로젝트 기획과 프로젝트 과정

circle.j 2024. 11. 28. 11:23

✨ 기획 순서

 

  1. 사업 분석
  2. 기능 정의서 (주요 기능 정의)
  3. 기능 명세서 (요구사항 정의/ 기술 요구사항/ 정책 정의서)
  4. 개발 일정 수립
  5. 스토리보드/화면 설계서 작성 

 


📌 사업 분석 

- 목적:  프로젝트의 목표와 비전을 설정하고 시장 조사 및 경쟁 분석을 수행 

- 산출물 

  • 프로젝트 목표
  • 타겟 유저 정의
  • 경쟁사 분석 자료
  • 성공 기준 (KPI)

 

 

📌 기능 정의서 (주요 기능 정의) 작성 

- 목적: 시스템이 수행할 주요 기능을 정의하고 각 기능 간의 관계와 흐름을 이해 

- 작업 내용

  • 주요 기능 리스트 작성 
  • 각 기능 간의 상호작용 정의
  • 심플한 플로우 차트 작성 (이래도 되나 싶을 만큼 심플하게, 상세 스펙은 상세 기획서에) 

- 산출물

  • 기능 정의서
  • 플로우 차트 (간단한 흐름도)

(예시) 기능 정의서 / 플로우 차트

 

 

📌 기능명세서 (요구사항 정의서) 작성 

- 목적: 각 기능에 대한 구체적인 요구사항과 동작 방식을 정의 

- 작업 내용

  • 각 기능의 입력, 출력, 예외 처리 정의
  • 동작 조건과 관련 데이터 구조 명시
  • 플로우 차트를 참고하여 IA를 기반으로 기능 위주의 상세한 요구사항 작성 

- 산출물

  • 기능 명세서
  • 플로우 차트와 연계된 상세 요구사항 

 

 

📌 개발 일정 수립 

- 목적: 개발 작업의 우선 순위와 일정을 수립하여 팀 간 조율 

- 작업 내용

  • 주요 기능과 개발 단위를 기준으로 작업량과 소요 시간 산정 
  • 마일스톤 설정

- 산출물

  • 개발 일정표 
  • 주요 마일스톤 리스트

 

 

📌 스토리보드 작성 

- 목적: 사용자 경험(UX) 중심으로 화면 간의 흐름을 정의하고 화면 요소를 간단히 표현

- 작업 내용

  • 각 화면의 동작 흐름 정의
  • 사용자 행동에 따른 화면 전환 표현

- 산출물

  • 스토리보드

(예시) 스토리보드

 

 

 

📌 화면 설계서 

- 목적: 스토리보드를 기반으로 UI/UX 디자인을 구체화

- 작업 내용

  • 각 화면의 레이아웃, 버튼 위치, 색상이나 폰트 등 디자인 요소 정의

- 산출물

  • 화면 설계 문서
  • 와이어프레임 또는 초기 디자인 시안 

 

 

 


✨ 프로젝트 과정

 

점선은 선택적인 과정을 의미

 

 

1. 전통 기업

개발 코드 작성
- 개발자는 로컬 환경에서 기능을 구현 
- 사내 표준에 따라 코드 스타일과 기능을 준수하며 작성 

로컬 검증 
- 작성한 코드가 로컬 환경에서 정상적으로 작동하는지 테스트
- 간단한 단위 테스트나 스크립트를 실행해 코드 품질 확인 
배포 CI/CD QA가 브랜치 또는 UAT 환경에서 검증
- QA 팀이 테스트 환경(UAT)에서 코드를 검증
- 기능 동작 확인 및 예상치 못한 문제점(버그) 식별

QA가 발견한 문제 수정
- QA에서 발견한 문제를 개발자가 수정하고 다시 테스트

릴리즈 후보 브랜치에 병합
- 모든 문제가 해결되면 릴리즈 브랜치에 병합
- 최종 테스트 및 승인을 거쳐 배포 준비
출시 프로덕션 푸시
- 예정된 일정에 따라 프로덕션 환경에 코드를 배포
- 안정성을 확보한 상태에서 릴리즈 진행
출시 이후 고객 피드백 수집
- 고객의 피드백을 수집하여, 다음 업데이트 또는 패치에 반영
- 버그나 기능 요청을 제품 개선의 데이터로 활용

 

2. 스타트업

개발 코드 작성
- 개발자는 기능을 빠르게 구현하며 종종 간단한 프로토타입을 작성

로컬 검증
- 로컬 환경에서 간단히 동작 여부를 확인
- 대규모 테스트보다는 기능 구현의 속도와 결과물 중심
배포 CI/CD 코드 리뷰 & CI 검사 
- 동료 개발자가 코드 리뷰를 통해 품질 확인
- CI (Continuous Integration) 시스템에서 기본적인 테스트와 빌드 검증 수행

트렁크 병합
- 모든 검증이 통과되면 트렁크(메인 브랜치)에 바로 병합
- 브랜치 전략을 간소화하여 빠른 릴리즈 주기를 유지 
출시 프로덕션 푸시
- 코드가 곧바로 프로덕션 환경에 배포 
- 출시 주기가 짧고 반복적으로 릴리즈를 진행
출시 이후 고객이 버그 리퍼트
- 고객이 발견한 버그를 직접 리포트
- 고객 피드백은 즉각적으로 다음 업데이트에 반영 

 

3. 빅테크 (글로벌 IT 기업: Google, MicroSoft, Amazon, Apple) 

개발 코드 작성
-  개발자는 엄격한 표준과 도구를 사용해 코드를 작성

로컬 검증
- 자동화된 단위 테스트를 포함한 정교한 로컬 검증 프로세스 
배포 CI/CD 코드 리뷰 & CI 검사 
- 다단계 코드 리뷰를 통해 코드 품질 보장
- CI (Continuous Integration) 시스템에서 기본적인 테스트 수행

자동화된 추가 테스트
-  CI를 넘어 더 복잡하고 비용이 많이 드는 통합 테스트 실행


병합 충돌 테스트
- 병합 과정에서의 충돌 가능성을 테스트

트렁크 병합
- 검증된 코드만 트렁크(메인 브랜치)에 병합
출시 기능 플래그를 이용한 단계적 출시
- 새로운 기능은 기능 플래그로 특정 사용자 그룹에게만 활성화
- 문제가 없으면 점진적으로 전체 사용자에게 적용
출시 이후 모니터링, 알림, 온콜
- 배포된 기능의 성능과 오류를 실시간으로 추적
- 문제가 발생하면 알림을 통해 담당자가 즉각 조치
- 온콜 체계 (대기 근무)를 통해 24/7 대응 가능 

 

4. 메타의 핵심 서비스 (소셜 미디어, 커뮤니케이션 서비스: Facebook, Instagram, WhatsApp) 

개발 코드 작성
- 메타의 개발자는 원격 서버에서 바로 코드를 작성하거나 실행 
- 로컬 환경보다 더 실제와 가까운 검증이 가능

원격 서버 검증
- 로컬 대신 원격 서버에서 코드를 빌드하고 테스트
- 테스트 환경이 더 현실적이며, 문제를 조기에 발견 
배포 CI/CD 코드 리뷰 & CI 검사 
- 다단계 코드 리뷰 및 CI 테스트 진행

병합 충돌 해결
- 병합 과정에서 충돌이 발생하면 자동으로 해결하거나 수동으로 처리


브랜치 병합
- 병합된 코드는 기능 단위의 브랜치에 추가 
출시 4단계의 자동화된 카나리아 출시
- 소규모 사용자 그룹에 배포 
- 점진적으로 범위를 확대하며 안정성을 검증
- 문제 발생 시 자동 롤백
출시 이후 모니터링, 알림, 온콜
- 고급 분석 도구를 통해 사용자 행동, 오류, 성능을 추적
- 시스템 알림으로 잠재적 문제를 실시간 파약
- 문제가 발생하면 대기 중인 개발자가 즉각적으로 해결
- 글로벌 서비스를 운영하는 만큼 24/7 체계를 유지