| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- prosys opc-ua
- C# Blazor
- InteractiveServer
- OPC-UA Download
- Redundant Array of Independent
- 스프링부트 장점
- Prosys Opc-ua 다운로드
- nosql
- UaExpert download
- REST API
- cs기술면접
- 스프링부트 단점
- 프론트엔드
- C# CS
- OPC-UA
- spring spring boot 차이점 공통점
- C# InteractiveServer
- UaExpert다운로드
- C#이론
- Service Worker
- Blazor Web App
- CS
- 기술면접
- 서버저장방식
- C# @rendermode
- Blazor WebAssembly
- 스프링부트의 장단점
- 스프링 스프링부트 차이점 공통점
- jvm구성요소
- 컴퓨터과학
- Today
- Total
담비의 개발블로그
개발 방법론&테스트 종류 본문
개발 방법론
소프트웨어를 개발하기 위한 '구체적인 절차, 방법, 기술 등을 정리'한 것이다.
◇ 종류
▶ 구조적 방법론(Structured Development)
구조적 방법론은 소프트웨어 프로젝트를 더 작은 모듈로 나누는 상향식 접근법이다. 정형화된 분석절차에 따라 사용자 요구사항을 파악하여 문서화 하는 체계적인 분석 이론이다. 데이터 흐름 다이어그램(DFD)과 구조 차트 등을 사용하여 명확성과 일관성을 높이며, 체계적 문서화와 단계적 실행을 중시한다. 목표는 유지보수성과 가독성을 향상시키는 것이다.
* 장점
- 명확한 문서화로 유지보수가 용이
- 단계별 진행으로 오류 추적이 쉬움
* 단점
- 변경에 유연하지 않음
- 초기 요구사항 정의가 중요, 이후 변경 시 어려움
▶ 정보공학 방법론(Information Engineering Development)
정보공학 방법론은 비즈니스 목표와 IT 개발을 일치시키는 데이터 중심 접근법이다. 전략적 계획, 비즈니스 영역 분석, 시스템 설계 및 구축 등의 단계를 포함하며, 엔터프라이즈 데이터 모델링과 프로세스 모델링을 중점으로 한다. 엔터티-관계 다이어그램(ERD) 같은 도구를 사용한다.
* 장점
- 데이터 중심으로 명확한 시스템 설계 가능
- 비즈니스와 IT의 일치성을 높임
* 단점
- 초기 설정 및 분석에 많은 시간 소요
- 유연성 부족
▶ 객체지향 방법론(Object-Oriented Development)
객체지향 방법론은 소프트웨어 설계를 객체라는 실세계 엔티티와 그 상호작용으로 구성한다. 캡슐화, 상속, 다형성 등의 원칙을 따르며, 클래스 다이어그램과 시퀀스 다이어그램 등을 사용한다. 재사용성과 확장성, 유지보수성을 촉진한다.
* 장점
- 코드 재사용성 높음
- 시스템 확장과 유지보수가 용이
* 단점
- 초기 설계 복잡
- 객체 간 상호작용 이해 필요
▶ 컴포넌트 기반 방법론(CBD; Component Based Development)
컴포넌트 기반 방법론은 재사용이 가능한 독립적인 컴포넌트를 사용하여 소프트웨어 시스템을 구축한다. 각 컴포넌트는 정의된 인터페이스와 기능을 가진 자립적인 단위이다. 모듈성, 재사용성, 유연성을 강조하며, 빠른 개발과 유지보수를 지원한다.
* 장점
- 개발 속도 빠름
- 유지보수 용이
* 단점
- 컴포넌트 간의 호환성 문제
- 적절한 컴포넌트 선택이 어려움
▶ 애자일 방법론(Agile Development)
애자일 방법론은 유연성, 협업, 고객 만족을 우선으로 한다. 프로젝트를 작은 반복 주기인 스프린트로 나누고, 지속적인 피드백과 적응적 계획, 점진적 전달을 강조한다. 스크럼과 칸반 같은 방법론을 통해 팀이 이해 관계자와 긴밀히 협력하여 기능성 소프트웨어를 신속히 전달하고 변경에 효과적으로 대응한다.
* 장점
- 유연성 높음
- 고객의 요구사항 반영 용이
* 단점
- 명확한 계획 수립이 어려움
- 문서화 부족 가능성
▶ 제품 계열 방법론(Product Line Development)
제품 계열 방법론은 공통 자산을 사용하여 특정 시장 세그먼트를 위한 관련 제품군을 생성한다. 체계적인 재사용을 통해 시간 및 비용을 절감하면서 품질을 유지한다. 변동성 관리, 아키텍처 설계, 컴포넌트 재사용 등을 강조한다.
* 장점
- 개발 시간과 비용 절감
- 품질 유지
* 단점
- 초기 설정 복잡
- 관리 및 유지보수 어려움
테스트 종류
▶ 단위 테스트(Unit Test)
단위 테스트란 소스 코드의 독립된 특정 모듈을 개별적으로 검증하는 테스트이다. 코드의 정확성 검증이나 버그를 조기에 발견하기 위해 사용하며 코드 리팩토링 시 안정성을 확보하기 위해서도 사용한다. 프로젝트를 진행할 때 비즈니스 로직과 쿼리에 오류가 없는지 하나하나 웹서버를 켜서 확인하는 방식은 시간 소모가 너무 크기 때문에 사용한다.
* 장점
- 빠른 피드백 제공
- 버그 발견 비용 절감
- 코드 품질 향상
* 단점
- 초기 작성 시간 소요
- 유지보수 필요
▶ 통합 테스트
통합 테스트는 개별 모듈들이 결합하여 올바르게 작동하는지 확인하는 테스트이다. 모듈 간 상호작용 검증과 인터페이스 오류 발견시에 사용한다.
* 장점
- 시스템 간 연동 문제 발견
- 전체 시스템 신뢰성 향상
* 단점
- 복잡성 증가
- 실행 시간 길어질 수 있음
▶ 부하 테스트
부하 테스트는 시스템에 가해지는 예상 부하를 시뮬레이션하여 성능과 안정성을 검증하는 테스트이다. 최대 처리량 파악할 수 있고 병목지점을 발견할때와 시스템 안정성을 확인할 때 사용한다.
* 장점
- 성능 병목 제거
- 서비스 안정성 향상
* 단점
- 고비용
- 복잡한 설정 필요
