728x90
SMALL
- 이번 카테고리에서는 TOPCIT(소프트웨어 역량검정) 시험의 첫 번째 파트이자 기술 영역인'소프트웨어 개발'에 초점을 맞추어, 소프트웨어 공학 및 여러 가지 설계 관점에서 소프트웨어를 어떻게 관리하는지에 대해 알아보도록 하겠습니다.
- 또한 TOPCIT 시험을 위해 공부한 내용들을 정리하면서 추후에도 살펴볼 수 있도록 하고자 합니다!
- 먼저 소프트웨어 공학에 대한 설명을 정리해보겠습니다.
소프트웨어 공학의 배경과 목적
✅ 소프트웨어 공학 소개
- 효과적인 소프트웨어 공학 기술 적용을 위해 다음 3가지 핵심 요소가 필요합니다.
- 프로세스: 체계적인 업무 방식 및 흐름의 정의를 적용할 수 있어야 합니다.
- 인력: 전문적인 지식을 갖춘 조직 및 사람을 구성해야 합니다.
- 인프라 기술: 정의된 업무 방식과 조직인력이 효율적으로 운영되기 위한 기술이 필요합니다.
✅ 소프트웨어 공학의 배경
- 1960년대, 소프트웨어 위기라 불리는 기술적 난제가 발생하면서 소프트웨어 공학이 발전하기 시작했습니다.
- 프로젝트의 복잡성 증가와 함께 기존의 방법으로는 대규모 소프트웨어 프로젝트의 요구사항을 충족시키기 어려워졌기 때문입니다.
✅ 소프트웨어 공학의 중요 요소 4가지!
- 방법: 방법은 프로젝트 계획 수립과 추정, 소프트웨어 분석 뿐만 아니라 알고리즘, 테스팅과 같은 작업들로 구성됩니다.
- 도구: 어떤 일을 수행할 때 생산성 혹은 일관성을 목적으로 사용하는 방법들을 자동화나 반자동화시켜 놓은 것을 말합니다.
- 절차: 방법과 도구를 결합하여, 그것으로 하여금 소프트웨어를 합리적이고 적시에 개발할 수 있도록 합니다.
- 사람: 소프트웨어 공학에서는 많은 것들이 사람과 조직에 의해서 움직이기 때문에 사람에 대한 의존성이 상대적으로 큽니다.
소프트웨어 개발 생명주기(SDLC)
✅ SDLC란?
- 사용자 환경 및 문제점 이해에서 시작하여 운용/유지 보수에 이르기까지의 모든 과정을 의미합니다.
- 일반적으로 타당성 검토 - 개발 계획 - 요구사항 분석 - 설계 - 구현 - 테스트 - 운용 - 유지보수 순으로 이루어집니다.
✅ SDLC의 목적
- SDLC의 주요 목적은 프로젝트의 기본 골격을 구성하고, 용어를 표준화하며, 관리하는 데 있습니다.
✅ SDLC는 어떻게 선정할까?
- 선정되는 모델은 프로젝트에 존재하는 리스크/불확실성을 최소화할 수 있어야 합니다.
✅ SDLC의 대표적인 모델 4가지!
- V 모델: 시스템의 요구사항이 모두 식별되고 명확할 때 이상적인 모델입니다. 프로젝트의 검증 및 확인을 강조합니다.
- VP 모델: V 모델 + Prototyping 기법인 모델로, 리스크, 불확실성 요소 해결에 강한 모델입니다.
- 점증적 모델: 시스템 개발 시간을 줄일 필요가 있을 경우 유용한 모델입니다. 시스템은 몇 번의 기능 확장을 통해 개발됩니다.
- 진화 모델: 점증적 모델과 유사하지만, 전체 시스템에 대한 개발 단계가 여러 번 반복됩니다.
소프트웨어 개발 방법론
- 소프트웨어 개발 방법론의 특징은 개발 단계를 각각 정의하고 각 단계별 수행활동, 산출물 등을 정의합니다.
- 또한, 개발 계획, 분석, 설계 및 구현의 수행 단계에 대해 정형화된 방법과 절차, 지원 도구를 정의합니다.
✅ 방법론의 필요성 4가지!
- 개발 경험의 축적 및 재활용을 통한 개발 생산성을 향상시킵니다.
- 효과적인 프로젝트 관리가 가능합니다.
- 공식 절차와 산출물을 제시하고, 표준 용어를 통일함으로써 의사소통 수단을 제공합니다.
- 각 단계별 검증과 승인된 종료를 통해 품질을 보증할 수 있습니다.
✅ 방법론의 종류 4가지!
- 구조적 방법론: 업무 활동 중심의 방법론으로, 추상화, 구조화, 단계적 상세화, 모듈화가 기본 원리입니다.
- 정보공학 방법론: 데이터 중심의 방법론으로, 정보전략계획, 업무영역분석 등이 기본 원리입니다.
- 객체 지향 방법론: 객체, 클래스 간의 관계를 식별하여 설계 모델로 변환하는 방법론입니다.
- CBD 방법론: 재사용 가능한 컴포넌트의 개발, 상용 컴포넌트들을 조합하는 방법론입니다.
✅ 소프트웨어 개발 4단계!
- 요구사항 분석: 전체 개발 과정에서 개발 비용을 감소시킬 수 있는 결정적인 단계로, 사용자의 요구에 대하여 이해하는 단계입니다.
- 설계: 물리적 실현의 첫 단계로 품질에 직접적인 영향을 주며, 시스템의 안정감이 저하될 수도 있는 중요한 단계입니다.
- 구현: 설계 명세를 기반으로 요구사항을 만족할 수 있도록 프로그래밍하는 단계로 코딩 표준을 정하고, 명확하게 코드를 작성해야 합니다.
- 테스팅: 요구사항 만족이나 예상과 실제 결과의 차이를 살펴보기 위해 검사하고 평가하는 일련의 과정을 의미합니다.
애자일 개발 방법론
✅ 애자일 방법론 중 XP란?
- XP는 보통 중소규모 개발 조직에 적합한 경량화된 개방 방식으로 반복적 개발방법론의 일종입니다.
- 최근에는 방법론 중 스크럼과 같은 추가적인 개발 방법을 함께 적용하는 사례가 늘어나고 있습니다.
✅ 그렇다면 스크럼이란?
- 스크럼은 크게 3가지 역할자가 존재하며 추정 및 조정 기반의 경험적 관리기법의 대표적인 형태입니다.
- 크게 우선순위를 조정하거나 새로운 항목을 추가하는 제품 책임자, 방해 요소를 제거하는 스크럼 마스터, 개발 기능을 도출하는 스크럼 팀이 있습니다.
✅ 스크럼 프로세스 요소 3가지!
- 스프린트: 달력 기준 1~4주 단위의 반복 개발 기간입니다.
- 3가지 미팅: 일일 스크럼, 스프린트 계획, 스프린트 리뷰가 있습니다.
- 3가지 산출물: 기능적 우선순위인 제품 백로그, 할당량인 스프린트 백로그, 남은 작업량을 보여주는 소멸 차트가 있습니다.
✅ 스크럼 특징 4가지!
- 투명성: 여러 미팅들을 통해 프로젝트의 상태나 문제점을 효과적으로 파악할 수 있습니다.
- 타임박싱: 스크럼을 진행하는 데 들어가는 시간을 제한함으로써 프로젝트 진행에만 집중하는 것이 가능해집니다.
- 커뮤니케이션: 팀원 간 커뮤니케이션을 원활하게 하기 위해 문제점을 공유하거나, 구현 난이도 및 시간을 토론합니다.
- 경험주의 모델: 스크럼은 고유의 프로세스 모델을 가지고 있지만, 많은 기법들이 프로젝트에 참여하고 있는 개인의 경험을 중시합니다.
728x90
LIST
'자격증 > TOPCIT' 카테고리의 다른 글
보안관리체계와 표준 (14) | 2024.10.04 |
---|---|
정보보안 최신 기술 (8) | 2024.09.26 |
정보보안 기반기술 (15) | 2024.09.25 |
정보보안 개념 (8) | 2024.09.19 |
데이터와 데이터베이스의 이해 (8) | 2024.09.18 |