정보처리기사_5과목_정보시스템 구축관리(1)

2021. 4. 26. 13:55공부/정보처리기사

728x90
반응형
소프트웨어 개발 방법론

소프트웨어 생명주기 모형(SDLC)

1. 폭포수형 모형(선형순차형, 전형적인 생명주기 모형 : Boehm, 1979)

i. 개요
- 소프트웨어의 개발 시 프로세스에 체계적인 원리를 도입할 수 있는 첫 방법론이다.
- 적용 사례가 많고 널리 사용된 방법이다.
- 단계별 산출물이 명확하다
- 각 단계의 결과가 확인된 후에 다음 단계로 진행하는 단계적, 순차적, 체계적인 접근 방식이다.
- 기존 시스템 보완에 좋다.
- 응용분야가 단순하거나 내용을 잘 알고 있는 경우 적용한다.
- 비전문가가 사용할 시스템을 개발하는 데 적합하다.

ii. 단계 ** 획 -> 분석 -> 설계 -> 구현 -> 테스트 -> 운영,유지보수
1) 계획 단계
- 문제를 파악하고 시스템의 특성을 파악하여 비용가 기간을 예측한다
- 개발의 타당성을 분석하고 전체스스템이 갖추어야 할 기분기능과 성능 요건을 파악한다.

2) 요구 분석 단계
- 사용자 요구를 정확히 분석, 이해하는 과정으로 구현될 시스템의 기능이나 목표, 제약사항 등이 정확히 파악한다.
- 소프트웨어의 기능, 성능, 신뢰도 등 목표 시스템의 품질을 파악하는 것이다.
- 개발자(분석가)와 사용자간의 의사소통이 중요하며, 명확인 기능 정의를 해야한다.

3) 설계 단계
- 요구사항을 하드웨어 또는 소프트웨어 시스템으로 분배하는 과정이다.
- 모든 시스템의 구조를 결정하게 되는, 소프트웨어 설계는 프로그램의 데이터 구조, 소프트웨어 구조, 인터페이스 표현, 알고리즘의 세부 사항들에 초점을 맞춰 진행한다.
- 한 개 이상의 실행 가능한 프로그램으로 변환할 수 있는 형태로 소프트웨어의 기능을 표현한 것이다.

4) 구현 단계
- 설계의 각 부분을 실제로 프로그래밍 언어를 이용하여 코드화 하는 단계이다.
- 각 모듈(module) 단위로 코딩을 한다.

5) 시험 단계
각 프로그램 단위의 내부적으로 이상 여부 및 입력에 따라 요구되는 결과로 작동하는지의 여부를 확인다.

6) 운영(operation) 및 유지보수(maintenance) 단계
- 사용자에서 전달되어 실제로 사용되며, 전달 이후에 발생하는 변경이 있다면 변경 요구를 수용하고 계속적인 유지를 해주어야한다.

iii. 폭소수 모델의 문제점
- 단계별로 구현되지만, 병행되어 진행되거나 다시 거슬러 올라 갈 수 없으며, 반복을 허용하지 않는다.
- 모든 분석은 프로젝트가 시작되기 전에 완성되어야 한다. 즉, 프로그램의 모든 요구사항을 초기에 완전히 파악하도록 요구하므로 개발 프로젝트의 불명확성을 미연에 방지할 수 없다.
- 개발 과정 중에 발생하는 새로운 요구나 경험을 설계에 반영하기 힘들다.

2. 프로트타이핑 모형(Prototyping Model) **분석단계에서 사용자의 요구사항을 신속하고 정확하게 파악 하기위해 시제품을 제작=프로토타입 모델

i. 개요
- 폭포수 모형에서 요구사항 파악의 어려움을 해결하기 위해 실제 개발될 소프트웨어의 일부분을 직접개발하여 사용자의 요구 사항을 미리 정확하게 파악하기 위한 모형이다.

ii. 특징
- 요구사항을 미리 파악하기 위한 것으로 개발자가 구축한 S/W 모델을 사전에 만듦으로써 최종 결과물이 만들어지기 전에 사용자가 최종 결과물의 일부 또는 모형을 볼 수 있다.
- 프로토 타입 모델에서 개발자는 시제품을 빨리 완성하기 위해 효율성과 무관한 알고리즘을 사용해도 되며, 프로토 타입의 내부적 구조는 크게 상관하지 않아도 된다.
- 프로토 타입은 고객으로부터 feedback을 얻은 후에는 버리는 경우도 있다.

iii. 순서 : 요구사항분석 -> 신속한 설계 -> 프로토타입 작성 -> 사용자 평가 -> 프로토 타입 정제(세련화) -> 공학적 제품화

iv. 장점 
- 사전에 사용자의 요구사항을 신속하고 정확히 파악
- 시스템 개발 초기에 사용자가 개발에 참여함으로써 오류를 조기에 발견할 수 있다.

v. 단점
- 사용자는 실제 제품과 혼동할 수 있다.
- 비효율적인 알고리즘이나 언어로 구현될 수 있다.
- 프로토타입은 임시로 만드는 것이기때문에 중간 과정을 점검할 수 있는 계획표나 결과물 자체가 없다.

3. 나선형 모형(spiral model)
i. 개요
- 폭포수 모델과 프로토타이핑 모델의 장점을 수용하고, 새로운 요소인 위험 분석을 추가한 진화적 개발 모델이다.
- 프로젝트 수행 시 발생하는 위험을 관리하고 최소화하려는 것을 목적으로 한다.
- 계획수립, 위험분석, 개발, 사용자 평가의 과정을 반복적으로 수행한다.
- 개발 단계를 반복적으로 수행함으로써 점차적으로 완벽한 소프트웨어를 개발하는 진화적(evolutionary)모델이다.

ii. 단계
1) 계획 수립(planning) : 요구사항 수집, 시스템의 목표 규명, 제약 조건 파악
2) 위험 분석(risk analysis) : 요구사항을 토대로 위험을 규명하며, 기능 선택의 우선순위, 위험
3) 개발(engineering) : 선택된 기능의 개발/개선된 한 단계 높은 수준의 제품을 개발
4) 평가(evaluation) : 구현된 시스템을 사용자가 평가하여 다음 계획을 세우기 위한 피드백을 받는다.

프로젝트 개발비용 산정
인간, 기술, 환경, 정치 등과 같은 많은 변수들이 소프트웨어 최종비용과 소프트웨어를 개발하는 데 적용되는 노력에 영향을 줄 수 있으므로 소프트웨어 비용측정은 결코 정확한 과학은 되지 못한다.

하향식 : 전문가의 감정, 델파이식 감정, 그룹에 의한 감정
상향식 : LOC, 인원수
수학적 : COCOMO, putnam, FP

1. 개발비용 산정 시 고려요소
- 시스템의 정의 및 개발전략 수립단계에서는 개발비용 산정이 개괄적으로 이루어진다.

2. 하향식 산정 방법
- 전체 시스템 차원에서 비용을 산정한 후 서브모델의 비용을 산정

i. 전문가의 감정
- 경험과 지식을 갖추고 있는 2명이상의 전문가에게 의뢰하는 기법이다.

ii. 델파이식 산정
- 조정자를 통해 려어 전문가의 의견 일치를 얻어내는 기법으로 전문가 감정 기법의 문제점(편견, 선입견)을 보환하기 위한 방법이다.

3. 상향식 산정방법
- 세부적인 작업 단위별로 비용을 추정하여 전체적 비용산정
- WBS(업무분류구조) - LOC(원시코드라인수)기법, 개발단계별인월수기법

i. LOC(원시코드라인수) 기법
- WBS상에서 분해된 각각의 기스템 기능들에 필요한 원시코드 라인수를 산정함에 있어 PERT의 예측 공식을 이용한다.
- 이 공식은 확률론에서의 배타 분포도(Beta distribution)에 근거한 낙관치(Optimistic Estimate), 기대치(Most Likely Estimate) 및 비관치(Pessimistic Estimate)의 확률적 집합으로, 예측치(Expected Value)와 이의 작업평방편자(Variance)가 산출되도록 유도한다.

※ LOC기법으로 예측된 총 라인수가 30,000라인일 경우 개발에 투입될 프로그래머의 수가 5명이고 프로그래머들의 평균생산성이 월당 300라인일때, 개발에 소요되는 기간을 구하는 계산식와 기간 (개월)을 구하여 쓰시오(단 프로젝트에 참여하는 개발자들의 평균 생산성은 모두 동일 하다고 가정) => 정보처리기사 기풀문제입니다.계산식알아둬서 나쁠껀 없는거 같아요~
(총라인수 / 월당 라인) / 개발자 인원 == (30000 / 300) / 5 = 20개월

ii. 개발 단계별 인월수(MM : Man Month)기법
- 각 기능을 구현시키는 데 필요한 노력을 생명주기 각 단계별로 산정하여 LOC보다 정확성을 기하기 위한 기법
- 각 단계별 인월수의 산정시 PERT의 예측공식을 적용할 수 있다.

※ WBS(Work Break-down Structure, 업무 분류 구조) **비지니스(업무)별 분류와 프로세스적 분류로 나눌수 있다.
- WBS는 도표내에 있는 각 관리 단위의 성분을 밝힌다.
- WBS를 작성하는 목적은 프로젝트 진행에서 일어나는 모든 작업을 찾아내기 위해 프로젝트의 목표를 작은 중간 목표로 세분화 한것이다.
- WBS의 각 노드에 작업 소요일, 책임자, 작업시작 및 마감일을 표시하여 쉽게 확장할 수 있다.



4. 수학적 산정 방법
- 개발비 산정의 자동화가 목표이며 과거 프로젝트로부터 공식을 유도한다. 
- 시스템을 구성하고 있는 모듈과 서브시스템 비용의 합계로서 소프트웨어 시스템 추정 비용을 계산할 수 있는 상향식 비용 산정 기법이다.

i. COCOMO(Constructive Cost Model)
1) 특징
- Boehm(1981)이 제안한 산정기법으로 원시 프로그램의 규모에 의한 비용예측 모형이다.
- 과거 수많은 프로젝트의 실적을 통계 분석한 공식을 이용하여 지금 진행예정인 프로젝트의 여러 특성을 고려할 수 있다.

2) COCOMO의 계층(비용추정단계 및 적용 변수에 따른 분류)
- (기본)Basic COCOMO : 단순히 소프트 웨어의 크기와 개발모드에 의하여 구함
- (중간)Intermediate COCOMO : Basic의 확장으로 15개의 비용요소를 가미하여 곱한 가중치 이용하여 구함
- (고급)Detail COCOMO : 시스템을 모듈, 서브시스템으로 세분화 한후 Intermediate COCOMO방법으로 구함

3) COCOMO의 프로젝트 모드(제품의 복잡도에 따른 프로젝트 개발 유형)
- 유기적(organic model) : 5라인 이하로 소규묘 팀이 수행할 수 있는 아주 작고 간단한 소프트웨어 프로젝트
- 중간형(semi-detached model) : 30만라인 이하의 프로젝트
- 내장형(embedded model) : 30만라인 이상의 프로젝트

ii. Putnam의 생명주기 예측 모형
- Rayleigh-Norden 곡선에 기초하며 소프트웨어 개발 비용을 산정하는 공식을 유도한다.
- 동적모형으로 각 개발기간마다 소요인력을 독립적으로 산정 할 수 있다.
- 시간에 대한 함수로 대형 프로젝트의 노력 분포 산정에 이용된다.
- SLIM 비용 추정 자동화 모형의 기반이 된다.

iii. FP(기능 점수) 모형
1) 개요
- 소프트웨어의 각 기능에 대하여 가중치를 부여하여 요인별 가중치를 합산해서 소프트웨어의 규모나 복잡도, 난이도를 산출하는 모형이다.
- 소프트웨어 생산성 측정 위해 개발 됐으며, 자료의 입력/출력, 알고리즘을 이요한 정보의 가공/저장을 중시한다.
- 최근 유용성과 간편성 때문에 관심이 집중되고 있으며, 라인 수에 기반을 두지 않는다는것이 장점이 될 수 있는 방법이다.

2) 기능증대 요인과 가중치
- 기능 점수의 각 항목에 처리의 복잡도를 고려하여 단순, 보통, 복잡으로 나누어지는 가중치를 곱하여 누적된 점수를 기능점수로 산출한다.

국제 표준 제품 품질 특성

1. IOS/IEC 9126

2. CMM(Capability Maturity Model)
- 소프트웨어 조직이 높은 품질의 소프트웨어를 일관성 있고 예측 가능하게 생산 할 수 있는지의 능력을 정량화 하는 시도이다.(개발 경험의 성숙도에 따라 5개 수준으로 나누고 각 수준별로 기본적으로 해야 할 관리 활동과 프로세스를 정의)

CMM 목적 
- 조직의 소프트웨어 개발 체계의 구축, 발전 및 유지보수 능력을 지속적으로 향상시키고 위험요소를 최소화 시키고 교육시키는 것이다.

CMM성숙도 5단계


3. SPICE(Software Process Improvement and Capability dEtermination)
- 소프트웨어 프로세스 평가를 위한 국제 표준을 제정하는 국제적인 표준화 프로젝트이다.
- CMM과 유사한 프로세스 평가를 위한 모델 제시 및 심사과정을 제안한다.
- SPICE를 기준으로 함 심사와 평가가 양성된 심사원에 의해 이루어 지고 있다.


4. CMMI(Capability Maturity model Integration, 역량 성숙도 모델 통합)
- CMM의 여러 모델간 존재하는 상이한 평가방법에 대한 통합이 필요 했고, 소프트웨어 개발 프로세스 위주인 기존 CMM의 문제점을 해결하여 다양한 분야에 적용하고 공통의 framework를 제공하기 위해서이다.

단계적 모델
level 1 : Initial
level 2 : Managed
level 3 : Defined
level 4 : Quantitatively Managed
level 5 : Qptimizing

테일러링(Tailoring) 개발 방법론

1. 소프트웨어 테일러링 정의
- 프로젝트 특성 및 상황에 적용하기 위해 기정의된 개발방법론의 절차나 기법, 산출문 들을 수정 및 보완하여 적용하는 작업니다.

- 프로세스 테일러링 : 여러 다른 개발 환경하에서 개발되는 다양한 종류의 프로젝트에 일관된 하나의 개발 프로세스를 적용하기 어렵기 때문에 프로젝트의 특성에 적합한 프로세스를 적용해야하고, 이를 위해 프로세스를 수정하는 과정을 프로세스 테일러링이라 한다.

2. 소프트웨어 테일러링 필요성
1) 내부적 요건
- 목표환경 : 시스템의 개발 유형 및 환경이 상이
- 요구사항 : 프로젝트의 생명주기 활동 측면에서 개발/운영/유지보수 등 프로젝트에서 우선 고려할 요구사항이 필요
- 프로젝트 규모 : 사업비, 참여인력, 개발기간 등 규모별로 적용될 프로젝트 규모가 상이
- 보유기술 : 프로세스, 방법론, 산출물, 인력의 숙련도 등 상이

2) 외부적 요건
- 법적 제약사항 : 프로젝트 별로 적용된 IT 컴플라이언스가 상이
- 표준 품질기준 : 금융, 제조, 의료 업종별 표준 품질 기준이 상이하므로 방법론의 테일러링이 필요

테일러링 기법

3. 테일러링 기법
1) 규모와 복잡도에 따른 테일러링
프로젝트 기간, 작업범위, 참여 인원
규모 : 대/중/소 로 구분
복잡도 : 상/중/하로 구분

2) 프로젝트 구성원에 따른 테일러링
- 구성원의 기술적 성숙도, 방법론에 대한 이해 정도 파악 및 수준 결정

3) 팀내 방법론 지원에 따른 테일러링
- 팀 별로 방법론 및 모델링 지원 인력 선정하여 개별 교육

4) 자동화에 따른 테일러링
- 중간산출물 자동화 도구 사용
- 자동화는 보조적인 역할도 활용

4. 테일러링의 절차
1) 프로젝트 분석 : 프로젝트가 내포한 문제점과 향후 활용할 수 있는 정보를 수집, 분석
2) 범위 정의 : 분석 결과 기반 특화 프로세스 개발 시 집중적 개선 영역을 정의
3) 프로세스 확장 : 프로세스에 특화, 필요 부가 프로세스 추가
4) 프로세스 구성 : 실질적 요구사항 지원시 적합 규모 구성
5) 프로세스 준비 : 프로젝트에서 효력 발휘 정의
6) 프로세스 공표 : 프로젝트 멤버에게 공표해 수시 참고
7) 프로세스 유지보수 : 다양한 이슈와 신규 도출 특성에 대응해 프로세스 지속 유지보수

IT프로젝트 정보시스템 구축관리
네트워크 구출관리

1. 네트워크 장비

1) 라우터
- 리피터와 브릿지, 허브가 비교적 근거리에서 네트워크(LAN)를 통합하거나 분리하기 위해서 사용하는 반면, 라우터는 원거리에서 네트워크간 통합을 위해서 사용되는 장비이다.
- 경로 설정

2) 스위치 
- 스위치는 일반적으로 스위칭 허브를 말하여, 더미허브의 가장 큰 문제점인 LAN을 하나의 세그먼트로 묶어버린다는 점을 해결하기 위해서 세그먼트를 여러개로 나누어준다.

3) 브리지
- 브리지는 하나의 네트워크 세그먼트를 2개 이상으로 나누어서 관리하기 위해서 만들어진 장비이다.

4) 허브 
- 허브는 일반적으로 더미허브(dumy hub)말하며, 허브 본래의 목적에 충실한 허브이다.

5) 리피터 == 증폭기와 비슷함
- LAN의 영역에서 다른 LAN영역을 서로 연결하기 위한 목적으로 사용된다.

6) 게이트웨이
- 컴퓨터 네트워크에서 서로 다른 통신망, 프로토콜을 사용하는 네트워크 간의 통신을 가능하게 하는 컴퓨터나 소프트웨어를 두루 일컫는 용어, 즉 다른 네트워크로 들어가는 입구 역할 을 하는 네트워크 포인트 이다.

2. 라우팅 프로토콜

1) 라우팅의 목표 : 모든 목적지로부터 가장 좋은 경로(가장 빠른길)를 찾기 위함이다.

2) 가장 좋은 경로 
- 경로상의 데이터 통신망 링크를 통과하는 비용의 합이 가장 작은 경로이다.

3) 라우팅 프로토콜
- 라우팅 테이블의 효율적인 설정과 갱신을 위해 라우터 상호간에 교환하는 메시지의 종류, 교환 절차, 메시지 수신 시의 행위 규정이라 할 수 있다.
- 자치 시스템(AS, Autonomous System) 내에 운영되는 라우팅 프로토콜을 IGP라고 하며, AS 간에 라우팅 정보를 교환하기 위한 프로토콜을 EGP라고 한다.
- 자치 시스템(AS, Autonomous System) : 인터넷상의 개별적인 라우팅 단위(ISP, 대형 기관 등)이며, 전체 인터넷을 여러개의 AS로 나누고 각 라우터는 자신의 AS내의 라우팅 정보만 유지한다.

4) 내부 라우팅과 외부 라우팅으로의 분류
i. 내부 라우팅(Interior Routing) : AS내의 라우팅
- RIP(Routing Information Protocol)
- OSPF(Open Shortest Path First)
- IGRP(Interior Gateway Routin Protocol)
- EIGRP(Enhanced Interior Gateway routin Protocol)
- IS-IS(Intermediate System-toIntermediate System)
ii. 외부라우팅(Exterior Routing) : AS간 라우팅
- BGP(Border Gateway Protocol) ** 외부라우팅 1개

5) RIP v1/v2
- 대표적인 내부 라우팅 프로토콜이며, 가장 단순한 라우팅 프로토콜이다.
- Distance-vector 라우팅을 사용하며, hop count를 메트릭으로 사용한다.
- Distance vector Routing : 두 노드 사이의 최소 비용 경로의 최소거리를 갖는 경로이며, 경로를 계산하기 위해 Bellman-Ford 알고리즘을 사용한다.
- RIP의 경우 자신의 라우터에서 15개 이상의 라우터를 거치는 목적지의 경우 unreachable(갈수 없음)로 정의하고 데이터를 보내지 못하기 때문에 커다란 네트워크에서 사용하기는 무리가 있다.

※ IGRP(Interior Gateway Routing Protocol)
- 시스코사의 고유 프로토콜이며, RIP의 단점을 개선하여 15홉이상의 인터네트워크를 지원할 수 있다는 것과 매트릭 계산 요소를 개선했다.

6) OSPF(Open Shortest Path First)
- Link State Routing 기법을 사용하며, 전달 정보는 인접 네트워크 정보를 이용한다.
- 모든 라우터로부터 전달 받은 정보로 네트워크 구성도를 생성한다.
- Link State Routing : 모든 노드가 전체 네트워크에 대한 구성도를 만들어서 경로를 구한다. 최적 경로 계산을 위해서 Dijkstra's알고리즘을 이용한다.

7) BGP(Border Gateway Protocol)
- 대표적인 외부 라우팅 프로토콜이며, Path Vecter Routing을 사용한다.
- Path Vecter Routing : 네트워크에 해당하는 next router과 path가 매트릭에 들어있으며, path에 거쳐가는 AS번호를 명시한다.

서버장비 운영

1. 보안 운영체제(Secure OS)

i. 기존 운영체제의 보안상의 결함으로 인한 각종 침해로부터 시스템을 보호하기 귀하여 기존의 운영 체제 내에 보안 기능을 통합시킨 보안커널을 추가적으로 이식한 운영체제이다.

ii. 보안 커널을 통해 사용자의 모든 접근행위가 안전하게 통제되는 것을 목적으로 한다.

iii. 보안 운영체제의 보안기능
1) 사용자 식별 및 인증
- 접근 통제가 사용자의 신분 증명에 의해 이루어질 경우 정확한 신분증명을 위해 보안 운영체제는 개별 사용자의 안전한 식별을 요구하며, 각각의 사용자는 고유하게 식별될 수 있어야 한다.
2) 강제적 접근 통제와 입의적 접근 통제
3) 객체 재사용 보호
- 사용자가 새로운 파일을 작성하려고 할 때, 이를 위한 기억장치의 공간이 할당된다. 할당되는 기억공간에는 이전의 데이터가 삭제되지 않고 존재하는 경우가 많은데, 이러한 데이터를 통해 비밀 데이터가 노출될 수도 있다.
4) 완전한 조정 : 모든 접근을 통제한다.
5) 안전한 경로 : 패스워드 설정 등 보안관련 작업시 안전한 통신을 제공한다.
6) 감사 및 감사 기록 축소
7) 침입탐지

2. NAS(Network-Attached Storage)
- 컴퓨터 네트워크에 연결된 파일 수준의 컴퓨터 기억장치로, 서로 다른 네트워크 클라이언트에 데이터 접근 권한을 제공한다.
- 네트워크에 연결된 파일 수준의 데이터 저장 서버로, 네트워크 상의 다른 기기들에게 파일기반 데이터 저장 서비스를 제공한다. 

3. DAS(Direct Attached Storage)
- 데이터 서버와 외장형 저장장치를 전용 케이블로 직접 접속하는 방법이다.

4. SAN(Storage Area Network)
- DAS의 장점이 되는 전용 케이블로 물리적 직접 연결을 하고, NAS처럼 네트워크를 활용한다.
- 스토리지와 서버는 SAN, 서버와 클라이언트는 LAN으로 연결. 여러대의 서버를 하나의 스토리지에 광케이블로 연결 하고 전용 네트워크를 통해 파일을 공유한다.

728x90