🍞개요

1주일 1포스트를 이어가는 와중에 주말출근이 잡혀서 급하게 글을 작성한다. 어떤 내용을 작성할지 고민할 시간도 부족해서 이번 포스팅은 내용이 좀 부족할까봐 걱정이다 ㅠ...그래도 개발지식과 관련해서 소프트웨어 개발 생명주기(SDLC)를 정리해보자 한다.


🍞소프트웨어 개발 생명주기(SDLC)란?

소프트웨어 개발 생명주기(SDLC)는 소프트웨어 개발 과정을 체계적으로 관리하기 위한 프로세스를 의미하며, SDLC는 프로젝트의 각 단계를 정의하고, 이를 통해 효율적인 개발과 품질 높은 소프트웨어를 제공하는 것을 목표로 한다.


🍞SDLC 모델 종류

  1. 폭포수 모델: 각 단계가 순차적으로 진행되며, 이전 단계로 돌아갈 수 없는 모델이다. 간단한 프로젝트에 적합하지만, 변경에 유연하지 않다.

  2. 애자일 모델: 반복적이고 점진적인 개발을 강조한다. 고객의 피드백을 통해 지속적으로 개선하는 방식으로, 변화에 유연하게 대응할 수 있다.

  3. V자 모델: 개발 단계와 테스트 단계를 동시에 진행하는 모델로, 각 단계에서 테스트가 이루어진다. 품질 확보에 중점을 둔다.


🍞소프트웨어 개발 생명주기(SDLC)의 단계

1. "요구사항 분석" 단계

  • 정의 :

    해당 단계는 고객이나 이해관계자와의 인터뷰, 설문조사 등을 통해 시스템이 충족해야 할 요구사항을 수집한다.

  • 핵심 포인트 :

    사용자의 필요를 정확히 이해하고, 기능적 요구사항과 비기능적 요구사항을 명확히 정의하는 것.

  • 산출물 및 도구들 :

    ex) 요구사항 명세서, 사용자 스토리, 페르소나 등

2. "설계" 단계

  • 정의 :

    요구사항을 기반으로 시스템의 구조와 아키텍처를 설계한다. 이때 데이터베이스 설계, UI/UX 설계도 포함된다.

  • 핵심 포인트 :

    개발자 혹은 팀 단위로 요구사항을 이해하고, 구현할 수 있도록 구체적인 설계 문서를 작성하는 것.

  • 산출물 및 도구들 :

    ex) UML 다이어그램, 와이어프레임, 프로토타입 툴 등

3. "개발" 단계

  • 정의 :

    설계 문서를 바탕으로 실제 코드를 작성하고, 기능을 구현하는 단계로 버전 관리 시스템을 활용하여 코드를 관리한다.

  • 핵심 포인트 :

    고품질의 코드를 작성하고, 기능을 구현하여 소프트웨어를 현실화하는 것(코드 잘 짜자...)

  • 산출물 및 도구들 :

    ex) IDE(인텔리제이), 버전 관리 시스템(Git) 등

4. "테스트" 단계

  • 정의 :

    개발된 소프트웨어가 요구사항을 충족하는지 확인하기 위해 다양한 테스트를 수행한다.
    (단위, 통합, 시스템, 성능 등 <-제안서 쓰면서 각각에 대해서 많이 상세하게 알게 되었다.)

  • 핵심 포인트 :

    버그를 발견 및 소프트웨어의 품질을 높이는 것.

  • 산출물 및 도구들 :

    ex) Selenium, JUnit, TestNG 등

5. "배포" 단계

  • 정의 :

    최종 테스트가 완료된 소프트웨어를 실제 환경에 배포하는 단계이다.

  • 핵심 포인트 :

    사용자가 소프트웨어를 사용할 수 있도록 하는 것

  • 산출물 및 도구들 :

    ex) 배포 자동화 툴, CI/CD 파이프라인 등을 활용
    실제 사용해본 도구) aws, git-hub, koyeb

6. "유지보수" 단계

  • 정의 :

    소프트웨어가 배포된 후 발생하는 문제를 해결하고, 기능 개선을 위한 업데이트를 진행한다.

  • 핵심 포인트 :

    소프트웨어의 안정성을 유지하고, 사용자 요구에 맞게 지속적으로 개선하는 것

  • 산출물 및 도구들 :

    ex) 이슈 트래킹 시스템(Jira, Trell), 유지보수or하자보수 정의서 등

0개의 댓글

Powered by GraphCDN, the GraphQL CDN