일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 자바스크립트
- 모던자바스크립트
- algorithms
- 스택
- 프로그래머스
- Python
- 백준
- 자료구조
- frontend
- 큐
- SSAFY
- programmers
- 로보어드바이저
- algoritms
- 혁신금융서비스
- dfs
- JavaScript
- 자문형
- React #Web #프런트엔드
- 일임형
- Algorithm
- 신한투자증권
- BAEKJOON
- 파이썬
- Ai
- BFS
- 알고리즘
- pyhton
- RPA
- JS
- Today
- Total
Step by Step
애자일 방법론 vs 폭포수 방법론 본문
애자일 방법론 vs 폭포수 방법론
💡소프트웨어 개발 방법론 이란?
소프트웨어를 개발하기 위한 '구체적인 절차, 방법, 기술 등을 정리'한 것입니다.
💡애자일 방법론이란?
애자일 소프트웨어 개발 방법론의 핵심은 작동하는 소프트웨어의 작은 구성 요소를 신속하게 제공하여 고객의 만족도를 개선하는 것입니다.
이러한 방법은 적응형 접근 방식과 팀워크를 활용한 지속적인 개발에 중점을 두고 있습니다. 일반적으로, 애자일 소프트웨어 개발은 소프트웨어 개발자와 비즈니스 담당자가 자체적으로 조직한 소규모 팀으로 이루어지며, 이들은 소프트웨어 라이프 사이클 전체에 걸쳐 정기적으로 직접 만나 협업합니다. 애자일 개발은 소프트웨어 도큐멘테이션에 대한 경량화 방식을 선호하며 라이프사이클의 모든 단계에서 변화를 적극 수용합니다.
즉, 요구사항이 빈번하게 추가되고 비즈니스의 속도에 따라가기 위해 적용하면 좋은 방법론으로 지속적인 점검과 대응이 가능하다는 점에서 유연성이 높은 소프트웨어 개발 방법론 입니다
💡 폭포수 방법론(Waterfall Methodology)이란?
소프트웨어 개발 방법론 중 하나로 개발 생명 주기를 폭포수가 내려오는 것처럼 순차적으로 ‘일련의 단계’로 나누어 개발하는 방법을 의미합니다.
해당 방법론을 통해 각 단계는 이전 단계의 결과물을 입력으로 받아 다음 단계의 결과물을 출력하는 구조를 가지고 있습니다.
(방법론의 원칙적으로 완료된 단계(이전 단계)로 돌아갈 수는 없습니다)
계획 및 분석(Discover) - 설계(Design) - 개발(Develop) - 테스트 - 운영/유지보수 단계를 가집니다.
장점 - 수직적으로 진행되기에 각 과정에 대한 이해가 용이합니다.
단점 - 수직적으로 진행되기 때문에 개발 도중에 요구사항이 변경되었을 경우
추가적인 비용과 시간이 들게 됩니다.
폭포수 모델 적용하기 좋은 조건
- 고객의 요구사항이 단순하고 변경 가능성이 높지 않은 경우
- 프로젝트의 규모와 난이도가 높지 않은 경우
- 각 단계 종료 후 나올 산출물의 결과가 명확한 경우
결론 : 저는 폭포수 방법론을 선호합니다. 일련의 단계로 나누어 개발하며 수직적으로 진행되기 때문에 각 과정에 대한 이해가 용이하여 프로젝트에 대한 높은 이해를 가질 수 있기 때문입니다.또한, 폭포수 방법론은 개발 전 단계에서 요구 사항을 명확하게 정의하고 계획을 수립하는 것을 강조합니다. 이를 통해 개발 프로세스를 예측 가능하고 통제 가능하게 만들기 때문입니다.
설계가 중요한가 vs 개발이 중요한가
저는 설계가 훨씬 중요하다고 생각합니다.
모 개발자가 말하길 "설계하는 것에 3시간만 더 투자하면 개발하는데 3일이 줄어든다" 라고 말한 것을 들은 적이 있습니다.
설계는 프로젝트의 기반을 마련하는 과정입니다. 잘 설계된 시스템은 개발 및 유지보수가 쉽고 효율적이며, 더 나은 성능과 안정성을 제공할 수 있다고 생각합니다.
설계를 통해 프로젝트의 요구 사항을 명확하게 이해하고 문제를 사전에 식별할 수 있습니다. 이를 통해 개발 및 수정 비용을 줄이고 프로젝트의 시간을 단축할 수 있습니다.
'Java' 카테고리의 다른 글
HTTP Request/Response (1) | 2024.04.26 |
---|---|
미니 프로젝트 회고 (0) | 2024.04.17 |
내가 생각하는 객체 지향이란? (0) | 2024.04.11 |
인터페이스를 사용해야 하는 이유(Java 4일차) (0) | 2024.04.08 |
페어 프로그래밍(3일차) (0) | 2024.04.05 |