만화영화 주제가 주제에 은근히 나를 두근거리게 만드는 노래
'취미 그리고 생각' 카테고리의 다른 글
| 불교음악-독경,반야심경 (0) | 2007.12.20 |
|---|---|
| 자기 표현에 솔직하지 못한 불이익 (0) | 2007.11.30 |
| 러시아워3 (0) | 2007.09.25 |
| UCC동영상 마이클잭슨의 땡뻘 (0) | 2007.09.01 |
| 피랍자 사건에 대한 생각 (0) | 2007.08.12 |
| 불교음악-독경,반야심경 (0) | 2007.12.20 |
|---|---|
| 자기 표현에 솔직하지 못한 불이익 (0) | 2007.11.30 |
| 러시아워3 (0) | 2007.09.25 |
| UCC동영상 마이클잭슨의 땡뻘 (0) | 2007.09.01 |
| 피랍자 사건에 대한 생각 (0) | 2007.08.12 |
| 자기 표현에 솔직하지 못한 불이익 (0) | 2007.11.30 |
|---|---|
| 세일러문 (0) | 2007.10.16 |
| UCC동영상 마이클잭슨의 땡뻘 (0) | 2007.09.01 |
| 피랍자 사건에 대한 생각 (0) | 2007.08.12 |
| 전문가가 되기 위해서 필요한 기술들 (0) | 2007.08.08 |
데이터베이스 백업과 복구전략 (1) - 오라클의 데이터베이스 백업
"복구에 실패한 DBA는 용서받을 수 있어도, 백업에 실패한 DBA는 용서받을 수 없다"
데이터베이스 백업과 복구전략 (1) - 오라클의 데이터베이스 백업
"복구에 실패한 DBA는 용서받을 수 있어도, 백업에 실패한 DBA는 용서받을 수 없다"
이 길을 들어서서 제일 먼저 사수에게 들었던 전설과 같다는 말이다.
아무리 시스템의 성능이 고도화되고, 성능개선을 위해 숱한 시간을 허비했어도, 다음날 출근했을 때 어제의 작업, 심지어 그동안의 모든 작업이 허사가 되도록 시스템이 주저앉아버린다면 아무런 소용도 없게 된다.
본 문서는 ORACLE사의 RDBMS를 사용하는 사용자 및 운영자들이 적절한 수준에서 백업전략을 수립하고, 이에 맞는 복구전략을 숙지할 수 있도록 가이드를 하는 목적으로 작성하게 되었다.
본 장은 일반적인 데이터베이스 백업전략에 대해 정리해 보았다.
1. DATABASE-데이터베이스 백업
1.1 백업의 개요 및 목적
데
이터베이스 백업이라 함은 기간시스템의 장애가 발생할 경우 이를 복구하기 위한 “보험”과 같은 개념이다. 관계형 데이터베이스를
사용하는데 있어서 가장 큰 장점중의 하나는 데이터베이스의 이상 발생시 언제든지 데이터베이스 RECOVERY를 수행하여 현재의
상황으로 복구할 수 있다는 점이다. 이러한 복구가 가능하기 위해서는 데이터베이스 관리자는 복구가 가능한 상태로 데이터베이스를
운용하여야 한다. 예를 들어 사용자가 NO ARCHIVE MODE로 운용할 경우에는 불행히도 데이터베이스를 처음 생성한 시점이나
전체 백업 받은 시점으로만이 복구가 가능하기 때문이다.
일반적인 경우 백업 정책이 없이 무작정 과다한 양의 백업을 받을 경우 일정 기간이 경과하면 백업에 대한 의미가 희미해지게 되고
정상적인 작업을 수행하지 않을 때, 백업파일이 꼭 필요한 경우 작업을 할 수 없는 경우가 발생할 수도 있다.
데이터베이스 관리자는 백업에 대한 정책을 수립하여 꼭 필요한 데이터를 최소의 약으로 백업을 받고 최소의 시간을 소비- 고객의
MTTR(MEAN TIME TO RECOVERY)을 만족할 수 있는 시간-하면서도 항시 복구가 가능한 상태를 유지하여야 한다.
1.2 주요 고려사항
데
이터베이스는 기존의 파일시스템과는 달리 전체 사용자 OBJECT를 하나의 TABLESPACE로 관리하거나 필요에 따라 나누어
사용 및 관리하므로 백업뿐 아니라 복구 시에도 상당히 주의를 요한다. 만일 ARCHIVE LOG 상태에서 운용하고 있는 상태에서
이상이 발생할 경우 복구작업에 필요한 LOG FILE중에 하나의 파일이라도 없어지거나 사용할 수 없는 경우에는 정상적인 복구가
불가능하게 된다.
이러한 불행한 경우를 방지하기 위해서 DBA는 항시 복구가 가능한 상태로 작업하기 위한 백업정책을 수립하여 정확하게 작업하여야 한다.
또한 24 X 7(1년 365일) DOWN TIME없이 운용되는 시스템의 경우 백업 정책의 수립에 COLD BACKUP과 같은
FULL IMAGE 백업이 불가능 할 수 있기에 HOT BACKUP 혹은 EXPORT를 통한 LOGICAL 백업만이 가능할 수
있다. 이런 제약사항으로 인해 혹시 발생할 수 있는 장애에 적절한 대응을 하지 못할 수 있다.
이러한 결정상황을 파악하여 백업정책 수립에 심혈을 기울여야 할 것이며 , 시스템 운용의 묘를 살려야 할 것이다.
또한 HOT BACKUP등의 ONLINE상에서 데이터베이스를 백업하기 위해서는 반드시 ARCHIVE MODE로 운영되어야 한다.
1.3 백업 전략
DBA 가 어떠한 방법으로 백업을 유지하느냐에 따라 복구 성공률이나 복구 속도 등이 결정된다 물론 매일 작업 종료 후 전체 데이터베이스에 대하여 FULL BACKUP을 한다면 가장 안전한 백업이라고 볼 수 있으나 실질적으로 백업을 받는데 많은 시간을 요구하므로 현실적으로는 불가능한 작업이라 볼 수 있다.
예 : XXX시스템의 특징은 24시간 365일 무중단 운영을 원칙으로 하고 있고, 타 시스템과의 INTERFACE 대상의 DATA LOAD가 야간에 대량으로 발생하며, 정산 및 온라인 통계작업을 통한 대량의 TRANSACTION이 발생한다.이는 다시 말해 COLD BACKUP을 위한 시스템 중단이 사실상 불가능하다는 말과 같다.
이런 시스템의 특성을 반영한 백업시스템 정책은 현실적으로 적용 가능한 HOT BACKUP을 업무가 집중하지 않는 시간에 수행하는 것으로 정하여야 하며, 단위 업무별로 대량의 변화가 발생할 경우에 데이터의 수정 혹은 삭제, 변화가 발생하기 전에 각 단위 팀의 별도 APPLICATION을 통해 데이터 BACKUP을 수행하는 것으로 한다.
가. 업무수행에 지장을 받지 않는 시간대에 HOT BACKUP을 수행한다.
나. 업무변화가 대량으로 발생하기 전에 APPLICATION을 통한 BACKUP수행
다. 자주 read-write되는 tablespace는 자주 online backup을 수행.
라. 데이터베이스에 구조적인 변화가 생기기 前,後로 full backup을 수행.
마. 이전의 backup본을 최소한 2본 이상 가지고 있을 필요가 있다.
바. 특정 테이블들에 대한 data의 입력 오류로 인해 과거 특정 시점으로의 회귀가 필요하거나, 특정 테이블 데이터의 분실로
인해 다시 복귀를 하고자 할 경우를 대비하여 Logical Backup인 Export를 수시로 받아놓도록 한다.
사. Unrecoverable로 Creation된 Object는 redo log file에 logging되지 않기에 이러한
Object들에 대해서는 Export Utility를 사용하여 Backup하도록 하는 것이 좋으며, 초기 생성 후 정상적인
데이터 입력/수정이 이루어질 경우에는 logging으로 변경하도록 한다.
1.4 백업 방법
1.4.1 Physical Backup
물 리적인 데이터베이스 파일을 한 위치에서 다른 위치로 COPY하는 물리적인 복제를 Physical Backup이라 한다. 또한 Physical Backup은 Offline, Online Backup(Without Archiving / With Archiving)으로 나눌 수 있다. 즉 데이터베이스 상태가 Down인 상황에서 Backup을 수행하면 Offline Backup이며 이 백업은 Archive Log파일의 Backup은 불필요하나, 데이터베이스가 Online인 상황에서 Backup을 수행하는 Online Backup인 경우에는 Backup도중에도 Transaction이 발생할 수 있고, 이 기간 중에 발생한 데이터의 보존을 위해 Archive Log를 반드시 백업하고 있어야 한다.
1.4.1.1 Cold Backup (Offline Backup)
데이터베이스를 Shutdown 한 이후 아래와 같은 파일들을 백업 Library로 COPY하여야 한다.
가. DataFiles (V$datafile확인자료)
나. Redo Log Files (V$logfile확인자료)
다. Control Files (V$controlfile확인자료)
라. Parameter Files(initSID.ora, spfileSID, configSID.ora, etc)
1.4.1.2 HOT Backup(Online Backup)
데이터베이스가 구동중인 상태에서 datafile을 복사하는 방식으로 Archive Log Mode로 운영되어야 한다.
SQL> ALTER TABLESPACE …… BEGIN BACKUP;
$ *.DBF의 COPY수행
SQL> ALTER TABLESPACE ….. END BACKUP;
이
런 명령을 수행하는 기간 동안에는 해당 TABLESPACE가 HOTBACKUP MODE로 운영중이어서 해당
TABLESPACE안에 있는 TABLE에 대한 DML이 발생할 경우 DATAFILE WRITE가 불가능하기 때문에 REDO
LOG에만 기록하는 기록하게 되고, 백업이 완료된 시점에서 LOG에 저장된 변경사항을 다시 Data file에 기록하기 위해
적지 않은 부하가 발생할 수 있다. 그러므로 ONLINE HOT BACKUP을 수행하는 시간은 작업량이 적고, 사용자의 접근을
최소화 할 수 있는 시간을 선정하여야 하며, 최소한의 시간에 HOT BACKUP을 수행할 수 있어야 한다.
또한 BACKUP의 시작과 끝에는 HOT BACKUP의 시작 바로 전까지 발생한 TRANSACTION의 REDO LOG를
CHANGE하도록 하여 ARCHIVING하도록 한다.또한 BACKUP이 종료한 후에도 LOG CHANGE를 하도록 하여
BACKUP중에 발생한 DATA에 대한 REDO LOG 내 변경분을 DATAFILE에 기록 및 ARCHIVING을 통한
ARCHIVE FILE BACKUP을 동시에 수행할 수 있도록 하여야 한다.
SQL> ALTER SYSTEM ARCHIVE LOG CURRENTS;
1.4.2 Logical Backup
Export
Utility를 이용한 데이터 백업은 보통 DML 발생빈도가 높아 데이터블록의 활용도나 Capacity를 높이지 못할 경우
데이터블록을 최적화하기 위해 사용할 수 있고, 사용자의 실수 혹은 구조상의 문제로 인해 데이터의 손실을 최소화하기 위해 데이터의
보존을 목적으로 사용하는 방법이다.
Export Utility를 이용한 데이터 백업방법은 Full, User, Table단위의 Export Mode가 있다.
1.4.3 Archive Log File의 Backup
1.4.3.1 Archive Log Mode 구조
오라클에서 Online Backup을 받거나 완벽한 복구작업을 수행하기 위해서는 데이터베이스를 “Archive Log Mode”로 운영하여야 한다.
오라클의 log File기록방법은 “순환”기록방법을 채택하고 있다. 첫 번째 log File을 기입하고 나면 두 번째 것을
기입하고, 그것이 끝나면 세 번째 log를 기록한다. 그리고 마지막 Online Redo Log File을 쓰고 나면 Log
Writer(LGWR)가 첫번째 Log File을 다시 선택하여 덮어쓰기 시작한다.
Oracle Archive Log Mode에서 작동하고 있을 때에는 Archive Background Process(ARCH)는 각각의 Redo Log File을 덮어쓰기 전에 그에 대한 복사본을 지정된 디렉토리에 만들게 된다.

[그림 1 No Archive Log Mode]
CheckPoint가 발생할 때 까지는 Redo Log File은 재사용되지 않으며 ARCH에 의해 물리적으로 Redo Log File은 다시 backup된다.

[그림 2 Archive Log Mode]
1.4.3.2 Archive Mode와 No-Archive Mode의 비교
위 그림에서 보는 바와 같이 Redo Log가 덮어 쓰이기 시작하고 Archive Mode가 아니면 Media Recovery는 마지막으로 Full Backup받은 시점으로 밖에 복구가 불가능 하다. 반면에 Archive Mode로 운영되는 데이터베이스는 가장 나중의 변화까지도 복구가 가능하다. Archive Log Mode로 운영 시 log_archive_dest Directory밑에 Archive File이 계속 발생하여 할당된 Space가 부족할 경우 log Change가 발생하지 않아 데이터베이스가 Hang-Up이 될 수 있으므로 Space관리를 유의하여야 한다.
1.4.3.3 Archive Log의 백업
데이터베이스 백업주기 결정시 archive log의 backup주기도 결정되어야 한다.
Archive log는 O/S Backup 을 통해 보관하고, Archive Log가 너무 많이 발생하지 않도록 Archive
Log의 Size 즉 Redo Log의 사이즈를 적절히 조절하여야 복구를 위한 필요시간을 줄일 수 있다.
Archive Log는 데이터베이스 백업수행과는 별도로 Space의 여유분을 Check하여 일정수치 이상 Free Space가 부족할 경우 자동적으로 Copy한 다음 삭제하도록 스케쥴링하여야 한다.
1.5 백업 주기
1.5.1 백업주기의 결정
백업의 주기 및 백업 시기, 시간은 어떠한 백업방법을 적용할 것인가와 어느 정도의 Down Time을 허용할 것인가에 따라 결정된다.
즉 Hot Backup만을 허용하는 사이트에는 Transaction양이 최소화되는 시간을 선택하여 백업을 수행할 것이고,
시스템을 사용할 수 없는 최대한의 시간을 1~3시간으로 선정었다면 복구를 위해 주어진 시간이 1~3시간으로 판단되어 이에 맞는
백업주기가 결정되게 된다.
전체 시스템을 모두 Backup하는데 걸리는 시간을 산정하여야 한다. 예를 들어 전체 시스템을 Hot Backup하는데 걸리는
시간이 최대 3시간이 걸린다 할 경우 이를 3일 주기로 전체시스템을 백업할 수 있도록 나눈다면 하루에 백업에 소요되는 시간은
대략 1시간이 될 것이다.
그런데 3일 주기로 백업의 한 사이클이 종료되는 관계로 월요일에 백업한 테이블스페이스에 속한 데이터파일에 문제가 생긴 시기가
수요일 오후라면 약 이틀간 발생한 Archive Log를 이용하여 복구를 하여야 하는데 DataFile, Archive Log
Restore 및 복구를 마치는데 주어진 Down Time안에 해결할 수 있는지 판단하여야 한다.
일반적으로 백업의 주기는 1년,1분기,1월,1일에 두고 주기 및 방법을 정한다. 또한 백업의 주기 뿐 아니라 백업한 Media의 보관 주기 또한 백업 및 복구에 큰 영향을 미치는 요소이다.
1.5.2 백업 주기 별 대상 결정
백업의 주기(일단위,주단위,월단위,분기단위,년단위,기타)별로 백업 대상을 선정하여 백업 매체를 선정하고, 백업대상을 LIST-UP한 다음 백업하도록 한다.
1.5.2.1 백업 주기
| 요일 대상 | 월 | 화 | 수 | 목 | 금 | 토 | 일 |
| 백업 대상 | A | B | C | D | E | F | ALL TBS |
| 백업사이즈 | 354G | 296G | 338G | 354G | 296G | 338G | 998G |
| 공개웹방화벽을 이용한 보안대응 (0) | 2008.01.11 |
|---|---|
| 공개SW라이센스가이드(20007.11) (0) | 2008.01.05 |
| 간략한 보안취약점 점검 (0) | 2007.08.13 |
| 선점형 비선점형 운영체제 (0) | 2007.08.13 |
| 할로윈문서-MS의 공개SW 보고 (0) | 2007.08.09 |
| 세일러문 (0) | 2007.10.16 |
|---|---|
| 러시아워3 (0) | 2007.09.25 |
| 피랍자 사건에 대한 생각 (0) | 2007.08.12 |
| 전문가가 되기 위해서 필요한 기술들 (0) | 2007.08.08 |
| UCC 오페라 (0) | 2007.08.03 |
기능점수(Function Point)산정 및 활용 방안
발주지원센터 | 송기호(khsong@software.or.kr)
소프트웨어 프로젝트들은 환경,기술력, 자본, 개발규모 등 다양한 환경적인 요소들이 동반되기 때문에 소프트웨어 개발비용을 예측하는 것은 어려운 문제
최근 수년 동안 정보시스템 구축과 운영 사업의 증가로 국가예산에서 정보화예산이 차지하는 비중이 커짐에 따라 정보화 예산 관리의 과학화와 효율화를 위해 사업의 소요 비용을 초기에 보다 정확하고, 정밀하게 예측하는 것이 중요한 문제로 대두
이러한 문제점을 해결하기 위하여 기존의 본수(本數) 방식이나 스텝(step)수 방식의 모호성과 부정확성을 보완하기 위하여 개발자 관점이 아닌 사용자 관점에서 사용기술과는 무관하게 소프트웨어 개발규모를 측정할 수 있는 국제 표준 기법인 기능점수(Function Point)방식을 기본 산정 방식으로 하는 대가기준에 대한 연구를 수행
소프트웨어개발비 산정의 현황
2004년 2월 소프트웨어규모산정 방식을 본수 방식에서 기능점수 방식 중심으로전환
기능점수방식으로 전환됨에 따라 합리적으로 규모를 수량화 할 수 있게 되었고, 이를 기반으로 사업초기 단계에서 개발비용을 예측할 수있는 근거가 마련
기획예산처에서는 좀더 근거 있고 합리적인 예산 반영을 위하여 소프트웨어개발비와 관련하여 예산 요구 자료를 기능점수방식으로 제출하도록 권고
하지만, 2004년 소프트웨어개발비 산정방식을 본수에 기능점수 방식으로 전환 후 대다수의 기관에서 기능점수의 개념에 대한 이해 부족과 적용의 어려움으로 이를 잘 활용 하지못하고 있는 실정
1. 소프트웨어사업대가기준 소개
정보통신부 고시로 규정하고 있는 소프트웨어사업 대가의 기준은 국가기관 등이 소프트웨어 개발, 데이터베이스 구축, 정보전략계획 수립 등의 정보화사업을 추진함에 있어 정보통신기술의 발전 및 사회적 여건변화에 유연하게 대처하고, 소프트웨어 산업과의 선순환적 구조를 가질 수 있도록 소프트웨어사업에 대한 예산수립이나 발주시 적정비용 등 을 산정하기 위한 기준을 제공하는 것을 목적
[ 표 1. 소프트웨어사업대가기준 구성 ]
구분 | 비용산정(방식 | 비용구성 |
소프트웨어개발비 | 기능점수 | 개발원가,직접경비,이윤 |
코드라인수 | 직접인건비,제경비,기술료,직접경비 | |
투입인력과기간 | 유지보수시점에서 소프트웨어개발비의 10~15% | |
유지보수및재개발비 | 유지보수 | |
재개발 | ||
시스템운용환경구축비 | 시스템운용환경설계비 | 공사비요율 기본설계비,실시설계비 |
시스템운용환경조성비 | 공사비 | |
DB구축비 | 원시자료유형별데이터량 | 인건비,제경비,이윤,직접경비 |
ISP수립비 | 컨설팅지수 | 공수×(컨설팅지수)0.95 +10,000,000원 |
소프트웨어개발비
소프트웨어개발비는 국제 표준인 ISO 12207의 소프트웨어 개발 기본공정을 적용한 소프트웨어 개발의 단계별 공정을 수행하는데 필요한 개발원가와 직접경비 그리고 이윤의 합으로 구성
첫째는 소프트웨어개발규모에 의한 산정방식에 따라 소프트웨어개발비를 산정하는 방식이 있고, 두 번째는 Mam/Month방식으로 이미 우리에게 친숙한 투입인력과 기간에의한 산정방식으로 구분
또한 소프트웨어개발규모에 의한 산정방식은 기능점수 방식과 코드라인수(Line of Code) 방식으로 구분
[ 표 2. 소프트웨어개발원가 산정 방법 ]
소프트웨어개발원가 산정방법 | 산정(방법 | |
개발규모에 의한 산정방법 | 기능점수 | 기능점수×기능점수단가×보정계수 |
코드라인수 | 코드라인수×코드라인수단가×보정계수 | |
투입인력수와 기간에 의한 산정방법 | 투입인력수×투입기간×기술자등급별단가 |
소프트웨어 개발규모에 의한 산정 방식인 기능점수 방식과 코드라인수 방식은 개발하려는 소프트웨어의 개발 크기(기능점수, 코드라인수)를 산정하고 여기에 단가(기능점수당 단가, 코드라인당 단가)와 보정요소를 곱하여 산정하는 방식
2. 기능점수(Function Point) 산정 방법
기능점수 방식은 사용자 관점에서 소프트웨어 규모를 산정하는 방법으로, 주로 논리적 설계를 기초로 하여 소프트웨어가 사용자에게 제공하는 기능의 수를 수치로 정량화하고 소프트웨어의 규모를 산정하는 방식
기능점수 방식은 먼저 개발하려는 소프트웨어의 범위 및 경계를 설정하고 데이터기능(Data Function)과 트랜잭션기능(Transaction Function)을 도출한 후 복잡도 가중치를 적용하여 기능점수를 산출하는 방식
즉, 데이터기능점수와 트랜잭션기능점수의 합계를 [그림 1]에서와 같이 구한다음, 시스템의 특성에 따라 그 값을 보정함으로써 최종적인 소프트웨어의 기능점수를 계산하는 방식
데이터기능점수와 트랜잭션기능점수의 합을 보정전 기능점수라고 하고, 보정전 기능점수에 보정요소를 곱한 것을 보정기능점수라고도함
[그림 1. 데이터 기능과 트랜잭션 기능 및 기능점수 산정]

데이터기능
데이터기능점수는 내부 및 외부 자료 요구사항을 만족시키기 위해 사용자에게 제공되는 기능
내부논리파일(ILF: Internal Logical File)과 외부연계파일(EIF: External Interface File)로 구성
내부논리파일은 응용시스템에서 유지되고 사용자가 식별 가능한 논리적으로 연관된 자료 및 제어정보(control information)의 그룹
다시 말해서 내부논리파일의 기본적인 용도는 개발하려는 응용시스템의 내에서 단위프로세스(elementary process)에서 유지되는 데이터를 저장
외부연계파일은 개발하려는 응용시스템에서 참조되지만 다른 응용시스템에서 유지되며 사용자가 식별 가능한 논리적으로 연관된 자료 및 제어정보의 그룹
즉, 외부연계파일의 용도는 개발하려는 해당 응용시스템내의 단위 프로세스에서 참조되는 데이터를 저장
외부연계파일은 반드시 다른 응용시스템의 내부논리파일임.
데이터기능의 기능점수는 내부논리파일과 외부연계파일 모두 데이터요소유형(DET:Data Element Type)3)과 레코드요소유형(RET:Record Element Type)4)의 개수에 따라 [표 3]와 같이 복잡도를 결정하고, 그 복잡도에 따라 [표 4]와 같이 가중치를 정하여 각 기능별 기능수에 가중치를 곱하여 산정
[ 표 3. ILF/EIF 복잡도 ]
레코드요소유형(RET)의 개수 | 데이터요소유형(DET)의 개수 | ||
1~19 | 20~50 | 51이상 | |
1 | 낮음 | 낮음 | 보통 |
2~5 | 낮음 | 보통 | 높음 |
6이상 | 보통 | 높음 | 낮음 |
[ 표 4. ILF/EIF 가중치 ]
복잡도 | 가중치 | |
ILF | EIF | |
낮음 | 7 | 5 |
낮음 | 10 | 7 |
낮음 | 15 | 10 |
ㅁ데이터요소유형(DET): 사용자가 식별가능하고 비 반복적인 유일한 필드
ㅁ레코드요소유형(RET): ILF나 EIF안에서 사용자가 식별 가능한 데이터요소의 서브그룹
트랜잭션기능
데이터를 처리하기 위해 사용자에게 제공되는 기능
외부입력(EI: External Input), 외부출력(EO: External Output), 외부조회(External inQuiry)의 세 가지 기능
외부입력은 응용시스템 외부에서 들어오는 데이터 및 제어정보를 처리하는 단위프로세스. 외부입력은 주로 내부논리파일을 유지하거나 변경하는데 사용
외부출력은 응용시스템 밖으로 데이터나 제어정보를 보내는 단위프로세스. 외부출력은 주로 데이터 및 제어정보의 조회 외에 처리 로직을 통해서 사용자에게 정보를 제공하는데 사용
처리 로직은 수학적 공식 및 계산식을 포함하거나 유도되는 데이터를 생성해야 함
외부조회는 응용시스템 외부에 데이터나 제어정보를 보내는 단위프로세스.
외부조회는 주로 데이터나 제어정보 조회를 통해 사용자에게 정보를 제공
트랜잭션기능의 기능점수는 외부입력, 외부출력, 외부조회 모두 참조파일유형(FTR: File Type Reference)과 데이터요소유형(DET:Data Element Type)의 개수에 따라 [표 5],[표 6]와 같이 복잡도를 결정하고, 그 복잡도에 따라 [표 7]와 같이 가중치를 정하여 각 기능별 기능수에 가중치를 곱하여 산정
[ 표 5. EI의 복잡도 ]
참조파일 유형(FTR)의 개수 | 데이터요소유형(DET)의 개수 | ||
1~4 | 5~15 | 16이상 | |
0~1 | 낮음 | 낮음 | 보통 |
2 | 낮음 | 보통 | 높음 |
3이상 | 보통 | 높음 | 낮음 |
[ 표 6. EO/EQ의 복잡도 ]
레코드요소 유형(RET)의 개수 | 데이터요소유형(DET)의 개수 | ||
1~5 | 6~19 | 20이상 | |
0~1 | 낮음 | 낮음 | 보통 |
2~3 | 낮음 | 보통 | 높음 |
4이상 | 보통 | 높음 | 낮음 |
[ 표 7. EI/EO/EQ의 가중치 ]
복잡도 | 가중치 | |
EI/EQ | EO | |
낮음 | 3 | 4 |
낮음 | 4 | 5 |
낮음 | 6 | 7 |
ㅁ참조파일유형(FTR) : 트랜잭션 기능에 의해 읽히거나 유지되는 내부논리파일 또는 트랜잭션기능에 의해 읽히는 외부연계파일
3. 소프트웨어 개발비 산정을 위한 간이기능점수 모형
예산수립 시나 사업제안단계에서는 기능 수준만 도출해 내고 분석/설계단계에서 기능의 속성까지 상세하게 도출되므로, 속성의 개수(DET,RET, FTR의 개수)를 고려하여 기능의 복잡도와 가중치를 도출하는 것은 사업초기단계에 현실적으로 무리
따라서 소프트웨어사업대가기준에서는 사업초기 각 기능의 복잡도와 가중치를 결정하기 어려운 현실을 반영하여 [표 8]의 평균복잡도가중치를 제시하여 보다 기능점수 방식을 사용하기 편리하게 유도
평균복잡도가중치는 기능이 도출되고 복잡도를 결정하는 단계를 생략하고, 제시된 평균복잡도 가중치를 바로 각 기능의 수에 곱하게 된다. 평균복잡도가중치란 과거 수행된 소프트웨어의 기능점수 산정결과를 통계분석하여 내부논리파일,외부연계파일, 외부입력, 외부출력, 외부조회에 적용된 복잡도에 대해 계산한 가중치들의 평균값
평균복잡도가중치의 적용은 예산수립단계 및 사업제안단계, 사업초기에 기능점수 산정에 필요한 자료가 충분하지 않은 경우 또는 정상적인 기능점수 산정 결과에 대한 검증이 필요한 경우 사용
평균복잡도 가중치를 사용한 기능점수 방식을 간이기능점수 방법이라함
[ 표 8. 2007년도 평균복잡도가중치 ]
유형 | 내부논리파일 | 외부연계파일 | 외부입력 | 외부출력 | 외부조회 |
가중치 | 7.4 | 5.5 | 3.9 | 5.1 | 3.8 |
따라서, 소프트웨어사업대가기준에서 제시하고 있는 기능점수 방식은 복잡도 적용방법에 따라 크게 국제기능점수사용자그룹에서 정의하는 정규기능점수법과 소프트웨어사업 대가기준에서 제시하는 간이기능점수법 두 가지로 구분
[ 그림 2. 정규기능점수법과 간이기능점수법 ]

4. 기능점수 활용 방안
기능점수 방식의 기본 정신은 사업초기에 개발하려는 소프트웨어의 범위와 경계를 식별하고 사용자관점에서 기능들을 도출하여 요구사항을 명확히 하고 이를 수치로서 정량화하는 것
구현하려는 소프트웨어 기능들의 목록과 이에 점수를 부여하여 소프트웨어의 개발규모를 정량화 한다는 것은 사업관리 측면에서는 범위관리, 일정관리, 형상관리에서 기능점수 목록을 활용하여 프로젝트 편성 및 변경통제를 강화
개발공정에서는 기존 산출물의 추가 보완을 통하여 기능점수를 상세 모형으로 유지관리가 가능
시험단계와 검수단계에서는 기능점수 목록이 기준선(Baseline)으로서 역할을 하며 프로젝트의 위험을 감소시키는 역할
가장 대표적으로 기능점수 모형이 활용되는 것은 요구사항관리(Requirement Management)가 크게 향상
기능점수는 예산수립이나 사업의 제안 단계에서 요구사항을 정리 할 수 있으며, 이를 정량화 할 수 있기 때문에, 근거 있는 예산 및 사업비를 산정에 도움
잘 만들어진 기능점수 목록은 소프트웨어개발사업의 관리에 중요한 수단으로 활용
| 현재폴더에서 도스창 실행 (0) | 2007.10.22 |
|---|---|
| SW품질평가-ISO9126 (2) | 2007.10.18 |
| 80x15 배너이미지 만들기 (0) | 2007.08.02 |
| RSS 관리 (0) | 2007.08.02 |
| 자바에 사용되는 용어들 (0) | 2007.07.26 |
| 공개SW라이센스가이드(20007.11) (0) | 2008.01.05 |
|---|---|
| [펌]오라클 OCP 데이터베이스 백업과 복구전략 (0) | 2007.09.06 |
| 선점형 비선점형 운영체제 (0) | 2007.08.13 |
| 할로윈문서-MS의 공개SW 보고 (0) | 2007.08.09 |
| 오픈소스 스택(Stack) 전략 (0) | 2007.08.02 |
| [펌]오라클 OCP 데이터베이스 백업과 복구전략 (0) | 2007.09.06 |
|---|---|
| 간략한 보안취약점 점검 (0) | 2007.08.13 |
| 할로윈문서-MS의 공개SW 보고 (0) | 2007.08.09 |
| 오픈소스 스택(Stack) 전략 (0) | 2007.08.02 |
| 소셜북마킹 del.icio.us (0) | 2007.08.02 |
법정스님
| 러시아워3 (0) | 2007.09.25 |
|---|---|
| UCC동영상 마이클잭슨의 땡뻘 (0) | 2007.09.01 |
| 전문가가 되기 위해서 필요한 기술들 (0) | 2007.08.08 |
| UCC 오페라 (0) | 2007.08.03 |
| 학점인정 정보 (0) | 2007.07.09 |
| 간략한 보안취약점 점검 (0) | 2007.08.13 |
|---|---|
| 선점형 비선점형 운영체제 (0) | 2007.08.13 |
| 오픈소스 스택(Stack) 전략 (0) | 2007.08.02 |
| 소셜북마킹 del.icio.us (0) | 2007.08.02 |
| 기업들의 오픈소스 스택(Stack) 전략 (0) | 2007.08.01 |
| UCC동영상 마이클잭슨의 땡뻘 (0) | 2007.09.01 |
|---|---|
| 피랍자 사건에 대한 생각 (0) | 2007.08.12 |
| UCC 오페라 (0) | 2007.08.03 |
| 학점인정 정보 (0) | 2007.07.09 |
| 몸을 움직여 사는 사람 (0) | 2007.07.07 |