응용 S/W 구현 관리
디지털 저작권 관리(DRM)
- ★ 저작권자가 배포한 디지털 콘텐츠가 저작권자가 의도한 용도로만
사용되도록 디지털 콘텐츠의 생성, 유통, 이용까지의 전 과정에
걸쳐 사용되는 디지털 콘텐츠 관리 및 보호기술
- 콘텐츠의 크기에 따라 음원이나 문서와 같이 크기가 작은 경우에는
사용자가 콘텐츠를 요청하는 시점에서 실시간으로 패키징을 수행하고
크기가 큰 경우에는 미리 패키징을 수행한 후 배포
- 패키징을 수행하면 콘텐츠에는 암호화된 저작권자의 전자 서명이 포함되고
저작권자가 설정한 라이선스 정보가 클리어링 하우스에 등록
흐름도
소프트웨어 형상관리(SCM- S/W Configuration Management)
S/W 생산물을 확인하고 S/W 통제, 변경 상태를 기록하고 보관하는 일련의 작업
S/W 변경의 원인을 알아내고 제어, 적절히 변경되고 있는지 확인, 해당담당자에게 통보
S/W 개발의 전체비용을 줄이고 개발과정에서의 여러 방해요인이 최소화도록 보증하는 것을 목적
지속적인 S/W의 변경사항을 체계적으로 추적하고 통제 가능
S/W에서 발견된 버그나 수정 사항을 추적할 수 있음
SCM 기능
형상식별
: 형상관리대상에 이름과 전화번호를 부여하고 계층 구조로 구분하여
수정 및 추적이 용이하도록 함
버전 제어
: S/W업그레이드나 유지보수 과정에서 생성된 다른 버전의 형상항목을 관리
이를 위해 특정 절차와 도구를 결합시키는 작업
변경관리(형상제어)
: 식별된 형상 항목에 대한 변경 요구를 검토하여 현재의 기준선이 잘 반영
되도록 조정하는 작업
형상 감사
: 기준선의 무결성을 평가하기 위해 확인, 검증, 검열 과정을 통해 공식적으로 승인하는 작업
형상기록
: 형상의 식별, 통제, 감사, 작업의 결과를 기록 관리하고 보고서 작성하는 작업
공유 폴더 방식
버저관리자료가 로컬 PC의 공유폴더에 저장되어 관리되는 방식으로
개발자들은 개발이 완료된 파일을 지정된 공유폴더에 매일 복사
담당자는 공유폴더의 파일을 PC로 복사한 후 컴파일하여 이상 유뮤를 확인
파일 오류 확인되면 해당 파일을 등록한 개발자에게 수정을 의뢰
종류
SCCS, RCS, PVCS, QVCS 등
클라이언트-서버 방식
버전관리자료가 서버에 저장되어 관리되며 서버의 자료를 개발자별로
자신의 PC로 복사하여 작업한 후 변경된 내용을 서버에 저장
모든 버전관리는 서버에서 수행
서버에 문제 발생 시 서버가 복구되기 전까지 다른 개발자와의
협업 및 버전관리 작업은 중단됨
종류
CVS, SVN, CVSNT, Clear Case, CMVC 등
분산 저장소 방식
버전관리 자료가 하나의 원격 저장소와 분산된 개발자 PC의 로컬저장소에
함께 저장되어 관리되는 방식
종류
GIT, GNU, Bazaarm Mercurial 등
SVN(Subversion)
오픈 소스로 CVS를 개선한 프로그램
서버에 최신 버전의 파일들과 변경내역이 관리
서버의 자료를 클라이언트로 복사해서 작업한 후 변경 내용을 다시 서버에 저장
모든 개발작업은 trunk 디렉토리에서 수행, 추가작업은 branches 디렉토리
안에 별도의 디렉토리를 만들어 작업을 완료한 후 trunk디렉토리와 병합
Commit할 때 마다 리비전이 1씩 증가
GIT
분산관리 시스템으로 로컬 저장소와 원격 저장소가 존재
지역저장소 : 개발자들이 실제 개발을 진행하는 장소로 버전 관리가 수행됨
원격저장소 : 여러 사람들이 협업을 위해 버전을 공동 관리하는 곳으로 자신의
버전 관리 내역을 반영하거나 다른 개발자의 변경 내용을 가져올때 사용
브랜치를 이용하면 기본버전관리 틀에 영향을 주지 않으면서 다양한 형태의 기능 테스팅이 가능
회복(Recovery)
장애 종류 : 트랜잭션 장애, 시스템 장애, 미디어 장애
★ 회복(Recovery) : 손상된 DB를 손상되기 이전의 정상적인 상태로 복구시키는 작업
회복관리기(Recovery Management)
: DBMS의 구성요소로써 트랜잭션 실행이 성공적으로 완료되지 못하면
트랜잭션이 DB에 생성했던 모든 변화를 취소(Undo)시킨 후
트랜잭션 수행 이전의 상태로 복구하는 역할 담당
회복수행 : 메모리 덤프(DB복사), 로그(갱신 전 후 내용을 별도의 파일로 기록)
병행제어
동시에 여러개의 트랜잭션을 병행 수행할 때 이들 명령이 DB의
일관성을 파괴하지 않도록 트랜잭션 상호작용을 제어하는 기술
목적
DB 공유 최대화
시스템의 활용도 최대화
DB 일관성 유지
사용자 응답 최소화
병행수행의 문제점
갱신분실(Lost update)
: 2개이상의 트랜잭션이 같은 데이터를 공유하여 갱신할 때 갱신 결과의 일부가 없어지는 현상
비완료 의존성(Uncommitted Dependency)
: 하나의 트랜잭션 수행이 실패한 후 회복되기 전에 다른 트랜잭션이 실패한
갱신 결과를 참조하는 현상
모순성(Inconsistenc, 불일치 분석)
: 복수의 사용자가 동시에 같은 데이터를 갱신할 때 DB내의 데이터들이
상호 일치하지 않아 모순된 결과가 발생하는 현상
연쇄복귀(Cascading Rollback)
: 병행 수행되던 트랜잭션들 중 어느 하나에 문제가 생겨 롤백(rollback)
되는 경우 다른 트랜잭션들도 함께 롤백(rollback)되는 현상
잠금(locking)
DB 관리에서 하나의 트랜잭션에 사용되는 데이터를 다른 트랜잭션이 접근하지 못하게 하는 것
데이터를 갱신할때는 반드시 잠금(locking)할 수 잇는 단위로 DB, 테이블, 레코드, 필드 등이 사용
잠금 단위가 크면 잠금 수가 작아 관리하기 용이하지만, 공유 수준이 낮아짐
반대로 잠금 단위가 낮으면 잠금수가 많아져 관리가 복잡해지는 대신 공유수준은 높아짐
병행제어 기법 종류
2단계 locking 기법
: 트랜잭션들이 잠금, 잠금해제 를 확장, 축소 단계로 수행하도록 함
확장(Growing)단계
: 트랜잭션이 잠금만 수행할 수 있고, 잠금해제는 수행 불가능한 상태
축소(Shrinking)단계
: 트랜잭션이 잠금 해제만 수행할 수 있고, 잠금은 수행 할 수 없는 단계
타임 스탬프 기법
: '타임스탬프'란 시스템이 각 트랜잭션을 실행할 때 부여하는 값으로
읽거나 변경할 데이터에 대해 트랜잭션을 실행하기 전에 타임스탬프를
부여하고 타임스탬프 순서에 따라 트랜잭션 작업을 수행하도록 하는 기법
문제 1
정답 : 1. 저작권(Copyright), 2. 디지털 저작권 관리 (DRM)
문제 2
정답
: 하나의 트랜잭션에 사용되는 데이터를 다른 트랜잭션이 접근하지 못하게 하는 것
+ 트랜잭션에 락킹이 걸리면 다른 트랜잭션은 락킹이 해제될때까지 대기