반응형
분석 방법론
- 데이터 분석을 효과적으로 수행하기 위해 분석 절차를 체계적으로 정리한 방법
- 데이터 분석 시 품질확보를 위하여 단계별로 수행해야 하는 활동, 작업, 산출물 정의
- 일정 품질 수준 이상의 산출물과 프로젝트의 성공 가능성 제시
- 단, 프로젝트의 한 개인의 역량이나 조직의 우연한 성공 가능성은 제외
- 분석 방법론의 구성 요건
- 상세한 절차(Procedures)
- 방법(Methods)
- 도구와 기법(Tools & Techniques)
- 템플릿과 산출물(Templates & Outputs)
- 어느 정도의 지식만 있으면 활용 가능한 수준의 난이도
- 분석 방법론의 생성과정 (선순환 과정)
- 형식화
- 개인의 암묵지가 조직의 형식지로 발전
- 분석가의 경험을 바탕으로 정리하여 문서화
- 체계화
- 문서화한 최적의 형식지로 전개됨으로써 방법론 생성
- 문서에는 절차나 활동 및 작업, 산출물, 도구 등 정의
- 내재화
- 개인에게 전파되고 활용되어 암묵지로 발전
- 전파된 방법론을 학습하고 활용하여 내재화
- 형식화
계층적 프로세스 모델 구성
- 분석 방법론은 일반적으로 계층적 프로세스 모델 형태로 구성
- 단계, 태스크, 스텝 3계층으로 구성
- 최상위 계층 - 단계(Phase)
- 프로세스 그룹을 통하여 완성된 단계별 산출물 생성
- 각 단계는 기준선으로 설정되어 관리, 버전관리 등을 통하여 통제
- 중간 계층 - 태스크(Task)
- 각 태스크는 단계를 구성하는 단위 활동
- 물리적 또는 논리적 단위로 품질검토 가능
- 최하위 계층 - 스텝(Step)
- WBS의 워크패키지
- 입력 자료, 처리 및 도구, 출력자료로 구성된 단위 프로세스
- 최상위 계층 - 단계(Phase)
* WBS(Work Breakdown Structure) : 업무 분업 구조, 프로젝트의 더 작은 요소로 분해시킨 딜리버러블 지향 분업 구조
* Work Pakage : 작업 패키지, WBS의 가장 작은 단위
소프트웨어개발생명주기 활용
- 소프트웨어개발생명주기 : 소프트웨어에 대해 요구분석과 설계, 구현과정을 거쳐 설치, 운영과 유지보수, 폐기할 때까지의 전 과정을 가시적으로 표현한 것
- 소프트웨어 공학의 소프트웨어개발생명주기를 활용하여 구성
소프트웨어개발생명주기의 필요성과 구성요소
- 소프트웨어개발생명주기의 필요성
- 소프트웨어 위기를 대처
- 효과적인 소프트웨어 개발 수행
- 고품질 소프트웨어 생산성 확보
- 소프트웨어 개발 생명주기의 구성요소
단계 | 내용 |
계획 (요구명세) |
- 고객의 요구사항 명세화 - 타당성 조사 및 소프트웨어 기능과 제약조건을 정의하는 명세서 작성 - 요구사항은 일반적으로 모호하고 불완전하며 모순 되기도 함 |
요구분석 | - 대상이 되는 문제 영역과 사용자가 원하는 Task 이해 |
설계 | - 분석 모형을 가지고 세분화, 구현될 수 있는 형태로 전환 |
구현 | - 실행 가능한 코드 생성 |
테스트 | - 발생 가능한 실행 프로그램의 오류 발견 및 수정 |
유지보수 | 인수가 완료된 후 일어나는 모든 추가 개발 활동 |
폭포수 모델(Waterfall Model)
- 고전적 생명주기 패러다임
- 분석, 설계, 개발, 구현, 시험 및 유지보수 과정을 순차적으로 접근하는 방법
- 개념 정립에서 구현까지 하향식 접근 방법 사용
- 전 단계의 산출물은 다음 단계의 기초로 사용
프로토타입 모델(Prototype Model)
- 개발하려는 시스템의 주요 기능을 초기에 실제 운영할 모델로 개발하는 방법
- 폭포수 모델의 단점 보완
- 사용자의 요구사항을 충분히 분석할 목적으로 시스템의 일부분을 일시적으로 간략히 구현한 다음 다시 요구사항을 반영하는 과정을 반복하는 개발 모델
- 요구 분석의 어려움 해결을 통해 사용자의 참여 유도
- 요구사항 도출과 이해에 있어 사용자와의 커뮤니케이션 수단으로 활용
- 사용자의 니즈 파악이 어려운 경우 간단한 시제품으로 개발
- 개발 타당성을 검토하는 수단으로 활용
종류 | 내용 |
실험적 프로토타입 |
- 요구분석의 어려움을 해결하기 위해 실제 개발될 소프트웨어의 일부분을 직접 개발 - 의사소통의 도구로 활용 |
진화적 프로토타입 |
- 이미 개발된 프로토타입을 지속적으로 발전시켜 최종 소프트웨어로 발전 |
나선형 모델(Spiral Model)
- 시스템을 개발하면서 생기는 위험을 최소화하기 위해 나선을 돌면서 점진적으로 완벽한 시스템으로 개발하는 모델
- 대규모 시스템 및 위험 부담이 큰 시스템 개발에 적합
- 폭포수 모델과 프로토타입 모델의 단점 보완
- 프로젝트의 완전성 및 위험 감소와 유지보수 용이
- 관리가 중요하나 매우 어렵고 개발시간이 장기화될 가능성 존재
반복적 모델(Iterative Development Model)
- 사용자의 요구사항 일부분 혹은 제품의 일부분을 반복적으로 개발하여 최종 시스템을 완성하는 모델
- 폭포수, 프로토타입, 나선형이 혼합된 모델
- 재사용성, 객체지향, RAD의 기반 제공
* RAD(Rapid Application Development) : 짧은 개발주기(60~90일)동안 소프트웨어를 빠르게 개발하기 위한 순차적 프로세스 모델
- 증분형(점증적) 모델과 진화형(점진적) 모델로 분류
증분형 모델(Incremental Model) : 폭포수 모델의 변형으로 각 증분을 따로 개발하여 통합
- 사용자 요구사항과 제품의 일부분을 반복적으로 개발하여 대상범위를 확대해 나아가서 최종제품을 완성하는 방법
- 첫 번째 검증은 핵심제품, 몇 사람만으로 구현 가능
- 프로토타입 모형과 같이 반복적이나 각 증분이 갖는 제품 인도에 초점
- 규모가 큰 개발 조직일 경우 자원을 각 증분 개발에 충분히 할당할 수 있어 각 증분의 병행 개발로 기간 단축
- 증분의 수가 많고 병행 개발이 빈번하게 이루어지면 관리가 어렵고, PM은 증분 개발 활동 간 조율에 많은 노력 필요
진화형 모델(Evolutionary Model) : 시스템 요구사항을 사전에 정의하기 어려운 경우 사용
- 시스템이 가지는 여러 구성요소의 핵심 부분을 개발한 후 각 구성요소를 지속적으로 발전시켜 나가는 방법
- 다음 단계로의 진화를 위해 전체 과정에 대한 개요 필요
- 프로토타입을 만들고 이를 다시 분석하여 요구사항을 진화시키는 방법
- 프로토타입의 시스템은 재사용을 전재로 함
소프트웨어개발생명주기의 대표적 유형 비교
유형 | 내용 | ||
폭포수 모델 | 검토 및 승인을 거쳐 순차적, 하향식으로 개발 진행 | ||
장점 | - 이해하기 쉽고 관리 용이 - 다음 단계 진행 전 결과 검증 |
||
단점 | - 요구사항 도출의 어려움 - 설계 및 코딩과 테스트 지연 - 문제점 발견의 늦음 |
||
프로토타입 모델 | 시스템의 핵심적인 기능을 먼저 만들어 평가 후 구현 | ||
장점 | - 요구사항 도출과 시스템 이해 용이 - 의사소통 향상 |
||
단점 | - 사용자의 오해(완제품) 발생 가능성 존재 - 폐기되는 프로토타입 존재 |
||
나선형 모델 | 폭포수 모델과 프로토타입 모델의 장점에 위험분석 추가 | ||
구현 단계 | 계획수립 | 목표, 기능 선택, 제약조건 설정 | |
위험분석 | 기능 선택의 우선순위 및 위험요소 분석 및 제거 | ||
개발 | 선택된 기능 개발 | ||
고객평가 | 개발 결과 평가 | ||
장점 | - 점증적으로 개발 시 실패 위험 감소 - 테스트 용이, 피드백 존재 |
||
단점 | - 관리 복잡 | ||
반복적 모델 | 시스템을 여러 번 나누어 릴리즈 하는 방법 | ||
증분형(점증적) 모델 | 기능을 분해한 후 릴리즈별 기능 추가 개발 | ||
진화형(점진적) 모델 | 전체 기능을 대상으로 릴리즈를 진행하면서 기능 지속 발전 |
소프트웨어개발생명주기 모형 선정 기준
- 프로젝트의 규모와 성격
- 개발에 사용되는 방법과 도구
- 개발에 소요되는 시간과 비용
- 개발과정에서의 통제수단과 소프트웨어 산출물 인도 방식
KDD 분석 방법론
- Knowledge Discovery in Database의 약자
- 통계적인 패턴이나 지식을 탐색하는 데 활용할 수 있도록 체계적으로 정리한 프로파일링 기술 기반의 데이터 마이닝 프로세스
- 데이터 마이닝, 기계학습, 인공지능, 패턴인식, 시각화 등에 응용
- 데이터에서 패턴을 찾는 과정을 9개의 프로세스로 제시
KDD 분석 방법론의 9가지 프로세스
- 분석 대상 비즈니스 도메인의 이해
- 분석 대상 데이터셋 선택과 생성
- 데이터에 포함되어 있는 잡음(Noise)과 이상값(Outlier) 등을 제거하는 정제작업이나 선처리
- 분석 목적에 맞는 변수를 찾고 필요시 데이터의 차원을 축소하는 데이터 변경
- 분석 목적에 맞는 데이터 마이닝 기법 선택
- 분석 목적에 맞는 데이터 마이닝 알고리즘 선택
- 데이터 마이닝 시행
- 데이터 마이닝 결과에 대한 해석
- 데이터 마이닝에서 발견된 지식 활용
KDD 분석 방법론의 분석절차
- 데이터 분석은 총 5단계에 걸쳐 진행
- 데이터셋 선택(Selection)
- 비즈니스 도메인에 대한 이해 및 프로젝트 목표 설정 필수
- 데이터베이스 또는 원시 데이터에서 분석에 필요한 데이터 선택
- 필요시 목표 데이터를 추가적으로 구성하여 활용
- 데이터 전처리(Preprocessing)
- 잡음(Noise), 이상치(Outlier, 일반적 추세에서 많이 벗어난 값), 결측치(Missing Value)를 식별하고 필요시 제거
- 데이터가 추가적으로 필요한 경우 데이터셋 선택 절차부터 다시 실행
- 데이터 변환(Transformation)
- 데이터의 차원을 축소하여 효율적으로 마이닝 할 수 있도록 변경
- 학습용 데이터와 검증용 데이터로 데이터 분리
- 데이터 마이닝(Data Mining)
- 목적에 맞는 데이터 마이닝 기법 선택
- 필요시 데이터 전처리와 데이터 변환 절차를 추가로 싱행하여 데이터 분석 결과의 품질을 높임
- 데이터 마이닝 결과 평가(Interpretation/Evaluation)
- 분석 결과에 대한 해석과 평가 및 분석 목적과의 일치성 확인
- 발견된 지식을 업무에 활용하기 위한 방안 모색
- 필요한 경우 데이터셋 선택부터 데이터 마이닝 절차까지 반복하여 수행
- 데이터셋 선택(Selection)
CRISP-DM 분석 방법론
- Cross Industry Standard Process for Data Mining의 약자
- 계층적 프로세스 모델로 4계층으로 구성된 데이터 마이닝 프로세스
- 데이터 탐색과 이해 및 데이터를 통한 문제 인식과 해결이 가능
- 비즈니스 요구사항에 맞게 데이터 마이닝을 반복적으로 수행
CRISP-DM 분석 방법론의 4계층
- 최상위 레벨 : 여러 개의 단계(Phases)로 구성
- 일반화 태스크(Generic Tasks) : 데이터 마이닝의 단일 프로세스를 완전하게 수행하는 단위
- 세분화 태스크(Specialized Tasks) : 일반화 태스크를 구체적으로 수행
- 프로세스 실행(Process Instances) : 데이터 마이닝을 구체적으로 실행
CRISP-DM 분석 방법론의 분석절차
- 총 6단계에 걸쳐 진행, 각 단계별로 세부업무 정의
단계 | 내용 | 세부업무 |
업무 이해 (Business Understading) |
- 비즈니스 관점에서 프로젝트의 목적과 요구사항 이해 단계 - 도메인 지식을 데이터 분석을 위한 문제정의로 변경 - 초기 프로젝트 계획 수립 |
- 업무 목적 파악 - 상황 파악 - 데이터 마이닝 목표 설정 - 프로젝트 계획 수립 |
데이터 이해 (Data Understading) |
- 인사이트 발견 단계 - 분석을 위한 데이터 수집 및 데이터 속성 이해 - 데이터 품질 문제 식별 |
- 초기 데이터 수집 - 데이터 기술 분석 - 데이터 탐색 - 데이터 품질 확인 |
데이터 준비 (Data Preparation) |
- 수집된 데이터를 분석 기법에 적합한 데이터로 변환 | - 분석용 데이터셋 선택 - 데이터 정제 - 분석용 데이터셋 편성 - 데이터 통합 - 데이터 포맷팅 |
모델링 (Modeling) |
- 다양한 모델링 기법과 알고리즘으로 모형 파라미터 최적화 모델링 결과를 테스트용 프로세스와 데이터셋으로 평가하여 모델 과적합 등의 문제 확인 - 데이터셋을 추가하기 위해 데이터 준비 절차 반복 |
- 모델링 기법 선택 - 모델 테스트 계획 설계 - 모델 작성 - 모델 평가 |
평가 (Evaluation) |
- 분석 모델이 프로젝트의 목적에 부합하는지 평가 - 데이터 마이닝 결과를 수용할 것인지 최종 판단 |
- 분석결과 평과 - 모델링 과정 평가 - 모형 적용성 평가 |
전개 (Deployment) |
- 완성된 분석 모델을 업무에 적용하기 위한 계획 수립 - 모니터링과 분석 모형의 유지보수 계획 마련 - 프로젝트 종료 관련 프로세스를 수행하여 프로젝트 완료 |
- 전개 계획 수립 - 모니터링과 유지보수 계획 수립 - 프로젝트 종료 보고서 작성 - 프로젝트 리뷰 |
CRISP-DM과 KDD 분석 방법론 비교
CRISP-DM 분석 방법론 | KDD 분석 방법론 |
업무 이해(Business Understanding) | |
데이터 이해(Data Understanding) | 데이터셋 선택(Selection) |
데이터 전처리(Preprocessing) | |
데이터 준비(Data Preparation) | 데이터 변환(Transformation) |
모델링(Modeling) | 데이터 마이닝(Data Mining) |
평가(Evaluation) | 데이터 마이닝 결과 평가 (Interpretation/Evaluation) |
전개(Deployment) |
SEMMA 분석 방법론
- Sample, Explore, Modify, Model and Assess의 약자
- SAS Institute의 주도로 만들어진 기술과 통예 중심의 데이터 마이닝 프로세스
* SAS Institute : 미국의 통계분석 소프트웨어 기업
SEMMA 분석 방법론의 특징
- SAS Institute의 데이터 마이닝 도구와 손쉽게 접목하여 활용
- 주로 데이터 마이닝 프로젝트의 모델링 작업 중점
SEMMA 분석 방법론의 분석절차
- 데이터 분석은 총 5단계에 걸쳐 진행
단계 | 내용 | 세부요소/산출물 |
추출(Sample) | - 분석할 데이터 추출 - 모델을 평가하기 위한 데이터 준비 |
- 통계적 추출 - 조건 추출 |
탐색(Explore) | - 분석용 데이터 탐색 - 데이터 오류 확인 - 비즈니스 이해 - 이상 현상 및 변화 탐색 |
- 그래프 - 기초통계 - Clustering - 변수 유의성 및 상관분석 |
수정(Modify) | - 분석용 데이터 변환 - 데이터 표현 극대화(시각화) - 파생 변수 생성, 선택, 변형 |
- 수량화 - 표준화 - 변환 - 그룹화 |
모델링(Modeling) | - 분석 모델 구축 - 패턴 발견 - 모델링과 알고리즘의 적용 |
- Neural Network - Decison Tree - Logistic Regression - 통계기법 |
평가(Assess) | - 모델 평가 및 검증 - 서로 다른 모델 동시 비교 - Next Step 결정 |
- Report - Feedback - 모델 검증 자료 |
참고
- 2023 이기적 빅데이터 분석기사 필기 도서
- 위키백과 - 업무 분업 구조
- Indeed - Career development - What Is a Work Package in Project Management?
- 해시넷 위키 - 폭포수 모델
- IT위키 - 프로토타이핑 모델
- 네이버 지식백과 - 나선형 모델의 특성
- IT위키 - RAD
- 바보상자의 개발 블로그 - 소프트웨어 공학 - 반복 점증적 모델
- AAAI(인공지능 발전 협회) - AI 매거진 Vol.17 No3
- 위키독스 - 개발자가 데이터 분석 준전문가 되기 - 분석 방법론
- IBM - SPSS Modeler - CRISP-DM 도움말 개요
- koreascience - 임문영,박승범님 논문 - 데이터 마이닝을 활용한 가짜뉴스의 선제적 대응을 위한 연구
반응형