Deploy(CI/CD)

Dongwoo Joo·2023년 6월 5일
0

codestates bootcamp

목록 보기
42/48

학습 내용

개발 프로세스와 배포에 대해서 학습했습니다.
주관적인 생각이 담겨있으니, 간단한 참고만 해주세요.

개발 프로세스

개발 프로세스

  1. 요구분서 및 시스템 명세 작성: 프로덕트(소프트웨어) 기능 정의
  2. 설계: 시스템, 프로그램, UI 설계
  3. 구현: 코딩
  4. 테스트: 개발한 프로덕트가 요구사항을 만족하는지 검사
  5. 베포 및 유지보수: 출시 및 지속적인 개선 작업

Waterfall / Agile

이 2가지 개발 프로세스의 가장 큰 차이점은,
요구사항을 확정하냐, 변경되냐 이다.

Waterfall: 개발 요구사항이 초기에 확정된다.
Agile: 개발 요구사항이 중간에 변경된다.

즉, waterfall은 요구사항을 정해서 개발 - 배포 - 업데이트
Agile은 요구사항을 받아서 개발 - 배포의 반복이다.

질문을 해보자.
언제 요구사항을 확정할 수 있고, 언제 요구사항을 받을 수 있는가?
프로턱드를 만드는 주도권이 누구에게 있는가?

결국 개발 프로세스는,
프로덕트 개발 의사결정을 어떻게 했는가? 에 의존한다.

만약, 우리 회사는 철저히 사전 조사를 통해, 이 프로덕트를 만들거야. 라고 한다면,
Waterfall로 개발할 것이고,

만약, 우리 팀은 데모를 출시하고, 시장의 평가를 받으면서 프로덕트를 업그레이드 하며 만들거야. 라고 한다면, Agile로 개발할 것이다.

모든 회사에 해당되지 않겠지만,
회사의 규모, 사업 전략, 조직 문화에도 영향을 받을 것이다.

가장 중요한 것은,
어떤 성격의 프로덕트를 만드느냐도 중요하다.
만약 고객사의 수주를 받아 고객사의 ERP 프로그램을 만든다면, Waterfall로 개발할 것이다.
고객사 직원들의 의견을 반영해서 계속 ERP 프로그램을 바꿀 순 없다.
왜? 직원들이 사용해야 하는 툴은 학습이 필요하기 때문이다.

만약 짜투리 시간에 잠깐 할 수 있는, 모바일 게임 앱을 만든다고 하자.
수익 모델이 광고라면, 사용자 수가 중요하다.
그럼 사용자의 피드백을 받아 유연하게 프로덕트를 개발해야 한다.
이 때는 Agile이 유리할 것이다.

무조건 무엇이 좋다가 아니라,
프로덕트와 시장 상황, 회사의 전략, 조직문화 등을 고려해서 하는게 현명한 프로세스 셀렉션이 될 것이다.

DevOps

CI/CD

github action 실습

profile
pursue nature

0개의 댓글