[Software Engineering] 소프트웨어 방법론 (Software Development Methodology)

서승·2025년 5월 31일

기술 지식

목록 보기
4/12

최근에 기술면접을 보았는데, 방법론과 생명주기를 혼동하는 것 같다는 피드백을 받아 개념 정리를 위해 기술합니다.

  • 방법론을 공부하면서 모델이 생명주기와 겹치는 부분이 있었다.

    폭포수, V모델, 나선형 등은 "생명주기 모델"이자 동시에 "개발 방법론"으로도 분류되는 경우가 많다.

개발에서 "방법론이란 용어가 넓게 쓰이기 때문."
용어설명예시
소프트웨어 생명주기소프트웨어의 일반적 흐름 (요구 → 설계 → 구현 → 테스트 → 유지)-
생명주기 모델생명주기를 어떻게 구조화해서 적용할지폭포수, V 모델, 나선형, 반복형
개발 방법론생명주기 모델 + 그걸 실행하는 전략 및 실천 방법좁게 보면: 스크럼, XP / 넓게 보면: 폭포수 포함

현장에서나 교재마다 이걸 나누는 기준이 조금씩 달라서 혼란스러울 수 있다.

[소프트웨어 생명주기]
   └── 소프트웨어가 태어나고, 자라고, 유지되고, 종료되는 전 과정을 의미
         (요구 분석 → 설계 → 구현 → 테스트 → 유지보수)

        ↓ "이 과정을 어떻게 적용할까?"

[생명주기 모델]
   └── 생명주기를 구조화한 개발 흐름 방식
         ├── 폭포수 모델
         ├── V 모델
         ├── 프로토타입 모델
         ├── 나선형 모델
         ├── 반복형 모델
         └── 애자일 모델

        ↓ "이 모델을 어떻게 운영할까?"

[개발 방법론]

소프트웨어 방법론이란,

소프트웨어를 개발할 때 생명주기의 각 단계를 어떻게 효과적으로 수행할지를 정리한 체계적인 절차 또는 전략.

  • 개발 과정 효율성 향상
  • 팀 간 협업 체계화
  • 품질 향상 및 위험 최소화

7가지 방법론

번호방법론유형특징 및 적합한 프로젝트 유형장점단점
1폭포수 모델 (Waterfall)전통적 방법론순차적 접근 방식으로, 요구사항이 명확하고 변경이 적은 대규모 시스템 개발에 적합명확한 단계 구분, 관리 용이요구사항 변경에 유연하지 않음, 후반 단계에서의 수정 어려움
2애자일 방법론 (Agile)애자일 계열반복적이고 점진적인 개발을 통해 빠르게 변화하는 요구사항에 대응하는 소프트웨어 개발에 적합유연성, 빠른 피드백, 고객과의 협업 중시초기 계획 부족 시 혼란 가능성, 역할 이해와 경험 부족 시 비효율 초래 가능
3나선형 모델 (Spiral)전통적 방법론위험 분석과 반복적 개발을 통해 복잡하고 대규모 시스템 개발에 적합위험 관리, 유연한 조정 가능성복잡성 증가, 높은 비용, 고숙련 인력 필요
4V-모델 (V-Model)전통적 방법론각 개발 단계에 상응하는 테스트 단계를 설정하여 품질 보장을 강조하는 소프트웨어 개발에 적합높은 품질 보장, 명확한 구조테스트 계획 수립에 시간 소요, 초기 단계에서의 오류 발견 어려움
5프로토타입 모델 (Prototype)전통적 방법론사용자 피드백을 통해 요구사항을 명확히 하고자 하는 소프트웨어 개발에 적합사용자 요구사항 명확화, 초기 피드백 반영 가능초기 단계에서의 불완전한 시스템 제공, 사용자 기대치 과도한 상승 가능
6스크럼 (Scrum)애자일 계열짧은 주기의 스프린트를 통해 반복적 개발을 수행하며, 팀원 간의 협업과 역할 분담이 중요한 프로젝트에 적합빠른 피드백, 팀 협업 강화, 역할 중심 관리역할 이해와 경험 부족 시 혼란 가능성, 스프린트 계획 수립에 시간 소요
7칸반 (Kanban)애자일 계열작업 흐름의 시각화와 작업 제한을 통해 지속적인 개선을 추구하는 소프트웨어 개발에 적합프로세스 유연성, 지속적 개선 가능명확한 역할 구분 부족 시 비효율 초래 가능, 작업 흐름의 시각화 필요(Ominext)

추가로 살펴보면 좋을 사이트 1
추가로 살펴보면 좋을 사이트 2

profile
정진 또 정진

0개의 댓글