sw 개발 방법론
1. 절차지향형 개발 방법론
- 문제를 해결하기 위한 절차(Flow)를 중심으로 구성
- 데이터 처리보다 기능 흐름 중심
- 입력(Input) → 처리(Process) → 출력(Output) 구조
- 유지보수 및 기능 추가의 어려움 발생
2. 객체지향형 개발 방법론
- 데이터와 기능을 하나의 단위로 묶어 설계하는 방식
-시스템을 독립적인 객체 간의 상호작용으로 구성
- 각 객체가 명확한 책임을 가질 수 있도록 분리
- 재사용 가능한 구조 설계 가능
3. 함수형 개발 방법론
- 프로그램을 상태 변화 없이 순수 함수의 조합으로 구성하는 방식
- ‘무엇을’ 할지 기술 → 선언형 접근 방식
- 불변성(Immutable): 변수 상태 변경 없이 새로운 값 반환
- 순수 함수 중심 구조 → 테스트 및 디버깅 용이
- 함수 간 결합도 낮음 → 코드 유지보수 용이
개발 프로세스 모델
1. 폭포수 모델(Waterfall Model)
- 선형적으로 순차 진행
- 요구사항 → 설계 → 구현 → 테스트 → 유지보수
- 문서화 중심 → 단계별 산출물과 계획이 명확
- 요구사항 변경에 취약
- 비효율적인 반복 대응
2. 애자일(Agile) 개발 방법론
- 변화에 유연하게 대응하는 반복적·점진적 개발 방식
- 소규모 단위로 나누어 빠르게 구현
- 요구사항을 개발 과정 중 지속적으로 반영
핵심 가치(4대 원칙)
- 프로세스와 도구보다 → 개개인과의 상호작용
- 방대한 문서보다 → 작동하는 소프트웨어
- 계약 협상보다 → 고객과의 협업
- 계획 수립보다 → 변화에 대한 대응
유형 1) 스크럼(Scrum)
- 짧은 반복 주기(Sprint)를 기반으로 기능 단위 개발과 피드백을 반복 수행
- 2~4주 단위의 짧은 개발 주기
- 계획 → 개발 → 테스트 → 회고 과정을 반복
- 매 주기마다 실행 가능한 결과물을 도출
유형 2) 익스트림 프로그래밍(XP: eXtreme Programming)
- 소규모 팀이 요구사항 변화에 유연하게 대응
- Pair Programming: 두 명의 개발자가 하나의 작업을 함께 진행하며 코드 품질 향상
- 테스트 주도 개발(TDD): 기능 구현 전 테스트 코드를 먼저 작성해 오류 예방
- 지속적 통합(CI): 코드 변경 사항을 즉시 통합하고 자동화된 테스트 수행
- 작은 릴리즈(Small Releases): 기능 단위의 자주 배포를 통해 고객 피드백을 빠르게 반영
- 공유 코드베이스: 모든 팀원이 코드에 접근 가능하도록 하여 협업 강화
'[KT AIBLE SCHOOL]에이블스쿨' 카테고리의 다른 글
[KT 에이블스쿨] 05.27 클라우드 개요 (0) | 2025.05.27 |
---|---|
[KT 에이블스쿨] 05.21 온프레미스 아키텍처 - 서비스 흐름도 (0) | 2025.05.21 |
[KT 에이블스쿨] 05.19 온프레미스 아키텍처 -하드웨어 (0) | 2025.05.19 |
[KT 에이블스쿨] 05. 16 온프레미스 아키텍쳐 (1) | 2025.05.16 |
[KT 에이블스쿨] 05. 15 리눅스 (0) | 2025.05.15 |