사이드 프로젝트 강의 정리 3일차
소프트웨어 개발 주기
- 소프트웨어를 개발하고 관리하는 데에 있어 가장 근간이 되는 프로세스이자 프레임워크
- 실무에서도 소프트웨어 개발 주기를 기반으로 프로젝트를 진행
- 사이드 프로젝트도 이 개발 주기를 기반으로 진행해야 체계적으로 진행하고 더 좋은 품질의 제품을 개발할 수 있다
SDLC (Software Development Life Cycle)
계획 => 분석 => 디자인 => 구현 => 테스팅 및 배포 => 유지 보수
1. 기획
- 요구사항을 수집하고 프로젝트를 기획하는 단계
- 사용자 설문, 마케팅 요구사항 등 다양한 채널을 통해 데이터를 모으는 과정으로 가장 중요하면서도 기초가 되는 단계
- QA (Quality Assurance)를 위한 요구사항과 프로젝트가 가질 수 있는 리스크 판단
2. 분석
- 제품의 요구사항을 정의하는 단계
- SRS (Software Requirement Specification)에 기록
- SRS : 디자인/구현해야 할 소프트웨어의 모든 요구사항을 기록해 둔 명세서
- IEEE 에서 제공하는 SRS 템플릿: https://web.cs.dal.ca/~hawkey/3130/srs_template-ieee.doc
3. 디자인
- 시스템을 디자인하고 설계하는 단계
4. 구현
- 디자인을 기반으로 개발자가 코드로 기능을 구현하는 단계
5. 테스팅 및 배포
- 구현 내용이 요구 사항을 충족 하는지 검증하는 단계
- 프로젝트/비지니스 성격에 따라 베타 오픈, 특정 시간에 오픈 하기도 함
6. 유지 보수
- 제품을 마켓에 배포하고 서비스를 모니터링 하면서 유지보수 하는 단계
SDLC 방법론
소프트웨어 개발에는 여러 접근 방식이 있으며, 기업에서 하나의 접근 방식으로 요구 사항을 충족할 수 있을 만큼 접근 방식마다 차이가 있습니다.
Waterfall
Waterfall 모델이 선형 방식으로 이동하는 것처럼 Waterfall SDLC는 소프트웨어 개발 초기부터 시작하여 각 프로세스 단계를 진행하는 선형 모델이지만, 이전 단계가 완전히 끝날 때까지는 다음 단계를 시작할 수 없습니다. Waterfall SDLC는 기업이 프로세스 각 단계에 대한 연속성과 실행 가능성을 분석하는 데 도움이 되어 병목 현상이나 사일로를 제거하는 데 유용합니다.
Agile
Agile 방법론은 사용자 입력과 경험을 핵심적으로 강조하므로 이전에 사용하기 더 번거로웠던 애플리케이션에서 발생하는 많은 문제를 해결할 수 있습니다. 소프트웨어는 Agile 프로세스를 거치면서 피드백에 매우 민감하게 반응하며, 급변하는 시장에 적응하기 위해 더 빠른 주기로 소프트웨어가 출시되도록 운용합니다.
반복
소프트웨어 개발자는 소프트웨어의 초기 버전을 신속하게 구축한 후 간단한 반복 과정을 거쳐 개선합니다. 이는 애플리케이션을 시작하고 실행할 수 있는 대규모 애플리케이션에서 일반적으로 사용되는 접근 방식으로, 비즈니스 요구를 보다 빠르게 충족합니다.
DevOps
Agile과 매우 유사한 DevOps는 설계 및 구현 단계에서 소프트웨어 사용자로부터 피드백을 수집하여 개발된 애플리케이션의 사용성과 관련성을 개선하면서, 구성된 팀원 간의 적극적인 공동 작업 및 커뮤니케이션을 활용하여 제품에 관한 모든 측면을 다룹니다. 이러한 팀에는 개발, 테스트 및 보안은 물론 정보 기술 운영 역할을 맡는 담당자가 참여합니다.
Spiral
Spiral 모델은 Waterfall에서와 같이 순차 프로세스와 함께 다른 모델의 반복 접근 방식을 사용합니다. 따라서 개발 과정에서 프로세스의 각 단계를 반복적으로 거치면서 Spiral 단계마다 점진적으로 출시하고 개선할 수 있습니다.
V 모델
검증 및 확인 모델이라고도 하는 V 모델은 순차적으로 단계에 접근하지만 "v"자 형태로 단일 단계에서의 테스트가 아닌 각 개발 단계와 직접 연결된 테스트를 포함하는 Waterfall 접근 방식으로 확장합니다.
빅뱅
빅뱅 모델에는 계획 사안이 거의 없으며 프로세스도 없는 경우가 대부분입니다. 이 프로세스는 필요한 자금과 리소스로 시작한 후 고객 요구 사항을 따르는 소프트웨어를 출력합니다. 이 모델은 일반적으로 정형화된 구조와 프로세스가 많이 필요하지 않은 소규모 팀이 추진하는 매우 간단한 프로젝트에 사용됩니다.
출처 : https://www.servicenow.com/kr/products/devops/what-is-sdlc.html
지금 듣고 있는 강의 : https://fastcampus.co.kr/dev_online_spdutch
사이드 프로젝트 : 10개 기술스택으로 구현하는 풀스택 서버리스 프로젝트 with React | 패스트캠퍼
언어와 프레임워크만 배운다고, 완성된 프로젝트만 따라한다고 내가 원하는 서비스를 개발할 수 있을까요? 서비스 구현 외에도 기획과 유지 보수, 적정 기술을 선택하여 문제를 해결하는 방법
fastcampus.co.kr