'Server/전반적 개발 프로세스'에 해당되는 글 1건

- 펌(소프트웨어 개발 수명주기(SDLC)): https://www.servicenow.com/kr/products/devops/what-is-sdlc.html

 

SDLC의 이점

모든 사람이 동의하고 이해할 수 있는 중앙 집중식 사전 목표를 제공함으로써, 리소스 및 관련 비용을 비롯하여 명확한 개발 계획을 세우고, 계발을 올바르게 수행할 수 있도록 역할을 할당할 수 있음

 

소프트웨어 개발 수명주기(SDLC)

1. 현재 문제 식별

2. 계획 수립

who: 프로젝트 리더

what:

- 프로젝트에서 다룰 범위 명확하게 정의

-> 프로젝트가 범위를 넘어서 확장되거나 바뀌지 않도록 프로젝트의 경계를 설정

- 인건비, 재료비 계산

- 프로젝트 조건을 평가하여 목표가 설정된 일정표 구성

- 계획에 이해 관계자, 애플리케이션으로 혜택을 얻는 사람의 피드백 사안도 포함

3. 요구 사항 정의

- 요구사항을 정의 및 문서화 하고 이해 관계자에게 승인을 얻음

* 요구사항: 애플리케이션 목적, 포함할 기능, 해당 과정에서 나타날 수 있는 장애물을 규정

* 필요조건: 리소스를 식별하고 프로젝트에 구축

4. 디자인 및 프로토타이핑

- 애플리케이션이 작동하는 방식, 디자인 요소를 모델링하는 설계 단계

  - UI: 고객이 소프트웨어와 상호작용하는 방식과 소프트웨어가 특정 입력에 응답하는 방식

  - 프로그래밍

  - 보안: 애플리케이션의 보안을 보장하기 위해 실행할 특정 조치. SSL 암호화, 암호 보호 및 안전한 데이터 저장 등

  - 통신: 애플리케이션이 중앙 서버와 같은 다른 자산과 통신하는 방법

  - 아키텍처: 업계 관행, 모든 템플릿, 전체 디자인 및 특정 프로그래밍 언어

  - 플랫폼: 소프트웨어를 호스팅할 플랫폼

- 설계 후 애플리케이션의 인터페이스, 응답 방법, 실행 기능에 대한 기본 아이디어를 보여주기 위한 프로토타입 구축

-> 애플리케이션을 승인하기 위해 이해 관계자로부터 피드백을 받음

5. 소프트웨어 개발

- SDLC 단계

-> 테스트 결과를 기다리거나 코드를 컴파일하는 것과 같이 생산을 지연할 수 있는 소프트웨어 개발 프로세스 문제를 예측, 해결

6. 테스트

- 애플리케이션 부문마다 다른 부문과 문제없이 상호작용하면서 각 기능이 실행되는지 확인

-> 사용자가 애플리케이션을 사용할 때 발생할 수 있는 버그를 줄이고, 사용율을 높이고, 사용자 만족도를 개선

7. 배포

8. 운영 및 유지관리

- 테스트 중에 발생하지 않는 버그를 발견하고 해결

-> 자체 반복 프로세스로 시작할 수도 있음

 

SDLC 방법론

1. Waterfall

- 선형모델, 이전 단계가 완전히 끝날 때까지 다음 단계를 시작할 수 없음.

- 기업이 프로세스 각 단계에 대한 연속성과 실행 가능성을 분석하는데 도움이 되어 병목 현상이나 사일로(부서 이기주의)를 제거하는데 유용

2. Agile

- 사용자 입력과 경험을 핵심적으로 강조

- 피드백에 매우 민감하게 반응하며, 급변하는 시장에 적응하기 위해 더 빠른 주기로 소프트웨어가 출시되도록 운용

3. 반복

- 소프트웨어 초기 버전을 신속하게 구축 후 간단한 반복 과정을 거쳐 개선

- 애플리케이션을 시작하고 실행할 수 있는 대규모 애플리케이션에서 일반적으로 사용되는 접근 방식

-> 비즈니스 요구를 보다 빠르게 충족함

4. DevOps

- Agile과 유사함. 설계 및 구현 단계에서 소프트웨어 사용자로부터 피드백을 수집하여 개발된 애플리케이션의 사용성과 관련성을 개선

- 구성원 팀원 간의 적극적인 공동 작업 및 커뮤니케이션을 활용하여 제품에 관한 모든 측면을 다룸. 개발, 테스트, 보안, 정보 기술 운영 역할을 맡는 담당자가 참여.

5. Spiral

- Waterfall에서와 같이 순차 프로세스로 다른 모델의 반복 접근 방식을 사용

-> 개발 과정에서 프로세스의 각 단계를 반복적으로 거치면서 Spiral 단계마다 점진적으로 출시하고 개선

 

소프트웨어 개발의 Best Practice

1. 소스 통제

- 작업 코드를 보호하기 위해 모든 코드를 단일 위치에 보관.

2. 지속적 통합

- 자산에 속한 각 구성요소가 수명주기 동안 일관성 있게 호환되어야 함

-> 모든 팀원이 유사한 프로그래밍 언어 및 라이브러리를 사용하여 충돌과 중복을 방지

3. SDLC 관리 시스템으로 프로세스 투명성 확보

- SDLC 관리 시스템은 분석, 작업 관리 시스템, 버그 추적으로 각 단계를 제어하고, 효과적으로 실행되지 않는 수명주기 영역을 개선할 수 있음.

 

 

 

 

 

 

 

블로그 이미지

uchacha

개발자 일지

,