다음 문제를 풀어보세요.


트랜잭션 T1, T2가 수행되는 다음 그림에서 T1의 연산결과(x+100)가 T2의 연산결과(x*2)로 인해 바르게 저장되지 않는 현상이 발생할 수 있다. 이 같은 현상을 무엇이라고 하는가?



1. 갱신 손실(lost update)

2. 오손 읽기(dirty read)

3. 지연 갱신(deferred update)

4. 갱신 충돌(update conflict)




트랜잭션 격리성 수준 (Transaction Isolation Level)


Isolation Level 

Dirty Read 

Non Repeatable Read 

Phantom Read 

 Read Uncommitted

Permitted 

Permitted 

Permitted 

 Read Committed

---

 Permitted

 Permitted

 Repeatable Read

---

---

 Permitted

 Serializable

---

---

---



Level - 0 ( = Read Uncommitted)


① 커밋되지 않은 데이터를 다른 트랜잭션에서 읽는 것을 허용

② Dirty Read, Non-Repeatable Read, Phantom Read 현상 발생


Dirty Read

다른 트랜잭션에 의해 수정되었지만 아직 커밋되지 않은 데이터를 읽는것을 의미한다. 커밋되지 않은 값을 읽었는데, 그 트랜잭션이 롤백(Rollback) 된다면 그 값을 읽은 트랜잭션은 비일관된 상태에 놓이게 된다.


Phantom Read

한 트랜잭션 내에서 같은 쿼리를 두번 수행했는데, 첫번째 쿼리에는 없던 유령(Phantom) 레코드가 두번째 쿼리에서 나타나는 현상을 말한다.



Level - 1 ( = Read Committed)


① 트랜잭션이 커밋되어 확정된 데이터만 읽는 것을 허용함으로써 Dirty Read를 방지해줌

② Non-Repeatable Read, Phantom Read 현상 발생



Level - 2 ( = Repeatable Read)


① 트랜잭션 내에서 쿼리를 두번 이상 수행할 때, 첫번째 쿼리에 있던 레코드가 사라지거나 값이 바뀌는 현상을 방지해 줌.

② Phantom Read 현상은 발생



Level - 3 ( = Serializable Read)


① 트랜잭션 내에서 쿼리를 두번 이상 수행할 때, 첫번째 쿼리에 있던 레코드가 사라지거나 값이 바뀌지 않음은 물론 새로운 레코드가 나타나지도 않음.

② 완벽한 일관성 제공






다음 문제를 풀어보세요.


인덱스의 생성 여부를 결정하기 위해 고려할 사항에 대한 설명이 잘못된 것은? (2개 선택)


1. 유일한키 속성에 대해서는 인덱스를 생성한다.

2. 실렉션 조건이나 조인 조건에서 사용되는 속성에 대해서는 인덱스를 생성한다.

3. 인덱스 탐색만을 통해 답변이 가능한 질의에 대해서는 클러스터 인덱스를 고려한다.

4. 동등 조건과 범위 질의에 사용되는 속성에 대해서는 해시 인덱스가 유리하다.



해시(Hash) 인덱스


해시 인덱스는 B-Tree만큼 범용적이지 않지만 고유의 특성과 용도를 지닌 인덱스 가운데 하나이다. 해시 인덱스는 동등 비교 검색에는 최적화되어 있지만 범위를 검색한다거나 정렬된 결과를 가져오는 목적으로는 사용할 수 없다.


해시 인덱스는 메모리 기반의 테이블에 주로 구현돼 있으며 디스크 기반의 대용량 테이블용으로는 거의 사용되지 않는다는 특징이 있다.



클러스터드 인덱스(Clustered Index)와 넌클러스터드 인덱스(Non-Clustered Index)


클러스터드 인덱스는 물리적으로 행을 재배열한다. 원래의 경우 데이터가 삽입되는 순서대로 물리적으로 저장되는데, 클러스터드 인덱스는 삽입되는 순서에 상관없이 인덱스로 생성되어 있는 컬럼(들)을 기준으로 정렬된 후에 파일에 저장된다.


넌클러스터드 인덱스는 우리가 알고 있는 인덱스를 말한다. 데이터가 입력되는 순서대로 파일에 저장되고, 인덱스를 만들어서 물리적인 위치의 데이터에 접근한다.



다음 문제를 풀어보세요.


EMPLOYEE(Eno, Name, DeptName, Salary) 테이블에 대해 "평균 봉급이 가장 높은 부서명(DeptName)을 검색" 하는 질의를 다음과 같이 작성한다고 할 때, 밑줄 친 부분에 들어갈 내용으로 맞는 것은?



SELECT DeptName

FROM EMPLOYEE

GROUP BY DeptName

(㉠) >= () (SELECT AVG(Salary) FROM EMPLOYEE () DeptName);


1. WHERE Salary, all, ORDER BY

2. WHERE AVG(Salary), some, GROUP BY

3. HAVING Salary, some, ORDER BY

4. HAVING AVG(Salary), all, GROUP BY



하위 쿼리를 시작하는 비교 연산자는 ALL 또는 ANY 키워드에 의해 수정될 수 있습니다. SOME은 ANY의 ISO 표준 동의어입니다.

수정된 비교 연산자로 시작하는 하위 쿼리는 0개 이상의 값 목록을 반환하고 GROUP BY나 HAVING 절을 포함할 수 있습니다. 이러한 하위 쿼리는 EXISTS를 사용하여 다시 작성할 수 있습니다.

> 비교 연산자를 예로 들면 >ALL은 모든 값보다 크다는 것을 의미합니다. 즉, 최대값보다 크다는 것을 나타냅니다. 예를 들어 >ALL (1, 2, 3)은 3보다 크다는 것을 의미합니다. >ANY는 적어도 하나의 값보다 큼 즉, 최소값보다 크다는 것을 의미합니다. 따라서 >ANY (1, 2, 3)은 1보다 큼을 의미합니다.

>ALL이 있는 하위 쿼리의 행이 외부 쿼리에 지정된 조건을 만족시키려면 하위 쿼리를 시작하는 열의 값이 하위 쿼리에서 반환되는 값 목록의 모든 값보다 커야 합니다.

마찬가지로 >ANY가 있는 행이 외부 쿼리에 지정된 조건을 만족시키려면 하위 쿼리를 시작하는 열의 값이 하위 쿼리에서 반환되는 값 목록에서 하나 이상의 값보다 커야 합니다.

다음은 ANY로 수정된 비교 연산자로 시작하는 하위 쿼리를 보여 주는 예입니다. 이 쿼리에서는 가격이 제품 하위 범주의 최대 가격보다 크거나 동일한 제품을 찾습니다.

USE AdventureWorks2008R2;
GO
SELECT Name
FROM Production.Product
WHERE ListPrice >= ANY
    (SELECT MAX (ListPrice)
     FROM Production.Product
     GROUP BY ProductSubcategoryID) ;

각각의 Product 하위 범주마다 내부 쿼리는 최대 가격을 찾습니다. 외부 쿼리는 이러한 값 모두를 찾고 Product 하위 범주의 최대 가격보다 크거나 동일한 개별 제품의 가격을 확인합니다. ANY를 ALL로 변경하면 가격이 내부 쿼리에서 반환된 모든 가격보다 크거나 동일한 제품만 반환됩니다.

하위 쿼리에서 반환된 값이 없으면 전체 쿼리에도 반환 값이 없습니다.

=ANY 연산자는 IN과 동일합니다. 예를 들어 IN 또는 =ANY를 사용하여 Adventure Works Cycles에서 만드는 모든 바퀴 제품의 이름을 찾을 수 있습니다.

--Using =ANY
USE AdventureWorks2008R2;
GO
SELECT Name
FROM Production.Product
WHERE ProductSubcategoryID =ANY
    (SELECT ProductSubcategoryID
     FROM Production.ProductSubcategory
     WHERE Name = 'Wheels') ;

--Using IN
USE AdventureWorks2008R2;
GO
SELECT Name
FROM Production.Product
WHERE ProductSubcategoryID IN
    (SELECT ProductSubcategoryID
     FROM Production.ProductSubcategory
     WHERE Name = 'Wheels') ;

각 쿼리의 결과 집합은 다음과 같습니다.

Name
--------------------------------------------------
LL Mountain Front Wheel
ML Mountain Front Wheel
HL Mountain Front Wheel
LL Road Front Wheel
ML Road Front Wheel
HL Road Front Wheel
Touring Front Wheel
LL Mountain Rear Wheel
ML Mountain Rear Wheel
HL Mountain Rear Wheel
LL Road Rear Wheel
ML Road Rear Wheel
HL Road Rear Wheel
Touring Rear Wheel

(14 row(s) affected)

그러나 < >ANY 연산자는 NOT IN과는 다릅니다. < >ANY는 not = a, or not = b, or not = c를 의미하지만 NOT IN은 not = a, and not = b, and not = c를 의미합니다. <>ALL은 NOT IN과 동일한 의미입니다.

예를 들어 다음 쿼리는 영업 직원이 담당하지 않는 지역에 있는 고객을 찾습니다.

Use AdventureWorks2008R2;
GO
SELECT CustomerID
FROM Sales.Customer
WHERE TerritoryID <> ANY
    (SELECT TerritoryID
     FROM Sales.SalesPerson) ;

고객에게 할당된 모든 지역을 영업 직원이 담당하기 때문에 결과에는 영업 지역이 NULL인 고객을 제외한 모든 고객이 포함됩니다. 내부 쿼리가 영업 직원의 담당 영업 지역을 모두 찾은 후 외부 쿼리가 각 지역마다 해당 지역에 없는 고객을 찾습니다.

이와 같은 이유로 이 쿼리에서 NOT IN을 사용하면 결과에 아무 고객도 포함되지 않습니다.

NOT IN에 해당하는 < >ALL 연산자를 사용해도 동일한 결과를 얻을 수 있습니다.



감리개시 > 감리계약 > 감리계획 > 감리착수회의 > 본조사 > 감리종료회의 > 감리보고서작성 > 사후관리
개별감리가 종료되면 주관 감리인은 감리의뢰기관과 차기 감리 일정을 협의하고, 필요시 감리기관에서는 감리보수를 청구한다. 또한 감리의뢰기관이 감리결과에 대한 조치사항 검토가 어렵다고 판단되는 경우에는 조치결과에 대한 검토를 요청할 수 있다.
감리조치사항 검토
감리기간 중 발견된 사항에 대하여 피감리기관은 감리결과에 대한 조치계획을 감리의뢰기관에 즉시 제출하고 조치계획대로 작업을 수행하여야 한다. 피감리기관에서 조치결과에 대한 확인이 어려울 경우 감리기관에 조치결과에 대한 검토를 요청할 수 있다. 

중간 감리의 경우 조치결과에 대해 감리기관이 차기감리에서 확인을 하게 되나, 긴급하게 개선할 사항에 대해서는 별도로 요청할 수 있다. 일반적으로 감리조치사항에 대한 검토 절차는 다음과 같다.

피감리기관은 조치계획을 감리의뢰기관에 제출한다. 
감리의뢰기관은 감리결과 조치계획 및 조치결과를 감리인에게 제출한다. 
조치사항에 대한 검토는 일반적으로 산출물 위주로 이루어지며, 필요시 현장감리를 수행 한다. 
조치결과 검토공문을 통보함으로서 조치사항 검토는 종료된다. 
감리비 청구
감리비는 감리기관이 감리의뢰기관에 감리계약서에 명시된 대로 청구하여야 한다.




감리개시 > 감리계약 > 감리계획 > 감리착수회의 > 본조사 > 감리종료회의 > 감리보고서작성 > 사후관리
감리보고서는 검토부문별로 감리실시 결과에 대한 각 감리인의 의견, 평가 및 개선권고사항을 기술한다. 작성된 보고서에 대해 감리의뢰기관 및 피감리기관과의 이의 및 의견 조정을 위한 종료회의를 실시한다.
양 기관에 대해 확정된 보고서를 통보함으로써 공식적인 감리 일정이 완료된다.
보고서작성
각 감리인들은 현장감리기간 동안 발견된 주요 문제점 및 개선사항을 보고서화하고 감리의뢰인 및 피감리인에게 확인을 하여야 한다. 
감리인이 작성하는 감리보고서는 감리의뢰인과 피감리인의 상호확인을 거쳐 작성되며, 피감리인과 감리의뢰인이 감리사항에 이의가 있을 경우 보고서 내용 확인시 이에 대한 사유를 감리인에게 제시할 수 있습니다. 
보고서의 내용은 객관적이고 합리적으로 증명 가능토록 충분한 증거 확보가 되어야 한다. 다음은 감리보고서 작성을 위한 과정을 나타낸 것이며, 감리보고서 세부 작성법은 다음 3장에서 언급하기로 한다. 
각 감리인별 보고서 작성 : 발견된 문제점을 상세검토사항으로 정리하고 개선유형(긴급,통상,권고사항)을 결정하여 주관 감리인에게 제출한다. 
보고서 통합 : 각 감리인에 의해 작성된 보고서는 주관 감리인이 통합하여 총평을 작성한다. 총평은 검토부문별 평가를 반영하여 감리 대상사업에 대한 전체 의견을 제시하여야 한다. 
통합된 감리보고서는 내부 감리인의 검토회의를 통하여 중복된 항목에 대한 조정과 누락된 부분에 대한 추가 검토를 실시한다.
보고서 통보
감리 종료회의 실시 후 각 감리인들은 상세검토사항의 내용을 조정한다. 감리보고서는 종료회의가 끝난 날로 부터 10일 이내에 감리의뢰기관 및 피감리기관의 장에게 통보한다. 감리의뢰기관 및 피감리기관에 각각 2부씩 배포하고 내부 2부를 보관한다.




감리개시 > 감리계약 > 감리계획 > 감리착수회의 > 본조사 > 감리종료회의 > 감리보고서작성 > 사후관리
감리인은 감리기간 중 발견된 중대 사항을 확인하기 위하여 감리의뢰기관, 피감리기관등의 관계자들과 종료회의를 실시하여야 한다. 
종료 회의시 제시된 사안에 대하여 피감리인은 적극적인 의사를 개진할 수 있으며, 확정된 문제에 대하여는 이의 제기를 하지 않는 것을 원칙으로 한다. 

종료회의 절차는 일반적으로 다음과 같으며 회의 진행은 감리총괄이 진행한다.

감리보고서 초안을 감리의뢰기관 및 피감리기관에 사전 배포하고, 주관감리인은 종료회의를 위한 장소, 참석 대상자를 협의한다. 
주관감리인이 감리대상사업에 대한 종합적인 감리 의견(총평)과 주요 개선권고사항을 설명한다. 
총평과 개선권고사항에 대하여 피감리인의 질의.응답 과정을 통하여 발견된 사항을 조정 및 확정한다. 
중간감리일 경우에는 차기 감리일정을 협의하고 종료한다. 




감리개시 > 감리계약 > 감리계획 > 감리착수회의 > 본조사 > 감리종료회의 > 감리보고서작성 > 사후관리
본조사는 감리인이 현장 실사, 피감리인 및 감리의뢰기관의 관계자와의 면담 등을 통하여 중점검토항목별 문제점 및 개선사항을 발견하여 확인하고 문서화하는 과정이라 할 수 있다.

본조사는 예비조사(사전문서검토)를 통하여 도출된 문제점을 확인하고 기타 주요 발견사항을 실제 감리를 통하여 확인하는 과정이며, 감리대상사업이 수행되는 현장에서 실시한다. 본조사 기간 동안 각 감리인은 감리의뢰기관 및 피감리기관의 담당자와의 면담을 통하여 주요 문제점을 확인하거나 증거 자료를 확보하여야 한다. 본조사 실시의 과정은 일반적으로 다음과 같다.

감리인별 감리의뢰기관 및 피감리기관의 검토부문 담당자 확인 
감리인별 검토부문에 대한 세부 필요 문서 확보
확보 문서의 상세 검토를 통한 특이사항 기록 및 정리
필요시 감리의뢰기관 및 피감리기관에 보완자료 요청
의문사항, 문제점 정리
정리된 문제점 및 개선사항에 대하여 감리의뢰기관 및 피감리기관의 담당자와의 면담 : 의문사항에 대한 의견, 문제점에 대한 확인 및 증빙자료 확보, 문제점에 대한 개선방안 도출




감리개시 > 감리계약 > 감리계획 > 감리착수회의 > 본조사 > 감리종료회의 > 감리보고서작성 > 사후관리

감리착수회의는 공식적인 감리의 시작을 알리는 행위를 말한다. 감리기관, 감리의뢰기관 및 피감리기관 등 관계기관의 참여하에 공식적인 감리의 시작을 위하여 착수회의를 실시한다.

주관 감리인은 착수회의 이전에 감리의뢰기관, 피감리기관과 회의 목적, 내용, 일정, 장소, 참석대상자, 감리의뢰기관 및 피감리기관의 준비사항을 구두로 협의한다.

주관 감리인은 회의 이전에 감리회의시 설명할 감리일정, 검토부문별 감리인, 기타 주의사항 등 감리계획 요약 자료를 준비한다. 착수회의는 다음과 같이 진행되며 회의는 감리총괄이 진행 한다.

감리인, 감리의뢰인, 피감리인의 소개 
피감리기관의 감리대상사업의 진행 현황 설명 및 질의.응답
주관 감리인에 의한 감리계획설명 및 질의.응답
현장감리기간 동안 감리인이 필요로 하는 자원과 장소의 이용가능성에 대한 확인
검토부문별 감리의뢰기관 및 피감리기관과의 공식적인 의사소통 경로의 설정
예비조사(사전문서검토) 에서 작성한 감리점검표에 대한 관계자의 확인




감리개시 > 감리계약 > 감리계획 > 감리착수회의 > 본조사 > 감리종료회의 > 감리보고서작성 > 사후관리
감리절차
감리계약 이후의 감리의 절차는 다음과 같다.


감리계획
효율적인 감리를 수행하기 위해서는 실현 가능하고 합리적인 계획이 수립되어야 한다. 감리계획은 체계적이고 조직적인 감리수행을 위하여 사전 업무
표준화 : 감리인별 감리절차의 표준화를 통하여 감리업무의 효율적인 수행이 가능하다.
자원관리의 효율성 : 본감리 수행시 소요되는 자원(감리인, 감리도구 등)의 효율적인 운용이 가능하다.
역할정의 : 감리대상사업에 대하여 감리인이 수행할 업무와 피감리인이 감리인에게 협조하여야 할 역할에 대하여 정의를 한다. 
또한 감리인이 감리대상사업의 중요점검 항목에 대하여 감리인별 역할 정의가 가능하다.
파악 및 본 감리 수행시 중요점검항목 도출을 목적으로 작성한다. 감리계획을 통하여 얻을 수 있는 효과는 다음과 같은 것들이 있다. 
감리계획 단계에서의 실시절차는 다음과 같다.

1) 감리준비
감리수행 시기가 도래하면 감리의뢰기관은 개별감리요청 혹은 감리수행시 중점검토 요구사항, 감리일정 및 감리대상사업의 산출물 제출 등을 통하여 감리기관과 감리가능성 및 일정에 관한 협의를 한다. 이 경우 감리기관은 감리대상사업의 추진실적 등을 검토하여 감리가능 여부를 확인하고, 감리가능 일정 등을 협의한다. 
감리기관이 감리 가능성에 대하여 검토하는 이유는 감리대상사업의 추진단계, 수행실적 등이 미진할 경우 효과적인 감리수행이 어렵기 때문이다.

2) 개별감리계획서 작성
개별감리계획서는 감리수행시 실제로 사용할 계획으로 구체적이고 실현 가능하도록 수립되어야 한다. 개별감리계획서에는 감리일정계획 뿐만아니라 본조사 수행을 위한 전체적인 방향을 제시하는 것이므로 감리계획서 작성시 감리대상사업의 특성을 고려하여 작성되어야 한다. 
개별감리계획서가 작성되면 감리의뢰기관 및 피감리기관에 통보한다. 
다음은 개별감리계획서 작성시 포함되어야할 내용이며 세부 내용은 [부록 4 : 개별감리계획서 작성법]에서 상세히 언급하였다.
근거공문 : 감리의뢰기관의 감리요청공문을 기재한다.
감리목적 : 감리대상사업에 대한 감리수행의 목적을 기재한다.
감리대상 : 피감리대상기관을 기재하고, 감리대상업무를 기재한다.
중점검토항목 : 감리대상사업에서 감리인이 중점적으로 점검하는 항목을 기재한다.
감리기간 : 공식적인 감리시작에서 종료까지의 기간을 기재한다.
감리절차 : 감리수행에 필요한 절차를 간략히 정의한다.
감리계획서 및 보고서 통보기관 : 감리시작과 종료시 계획서 및 보고서 통보기관을 기재한다.
행정사항 : 감리실시에 필요한 자료 및 문서보안사항등을 정의 한다.
감리인 : 감리대상사업에 대하여 실제로 감리를 수행할 감리기관의 감리인을 지정한다.
위에서 언급한 내용중 개별감리계획서 작성시 중요하게 고려되어야할 사항으로는 중점검토항목 도출, 감리기간 및 감리인 구성이다. 
중점검토항목은 감리대상업무의 특성을 고려하여 작성되어야 한다. 일반적으로 개발감리일 경우 중점검토항목은 기술분야별로 다음과 같으며 감리대상업무의 특성, 감리시기 등을 고려하여 주관감리인이 작성한다.
프로젝트 관리
개발방법론
응용시스템
데이타베이스
시스템 아키텍쳐
시스템 전환
감리대상사업의 규모를 고려하여 감리수행 기간 및 투입인력을 결정하여야 한다.
감리대상사업의 규모 : 단기간 및 소규모 사업은 개발비 10억이하, 중규모 사업은 개발비 50억이하, 대규모 사업은 개발비 50억이상으로 한다.
감리시행 기간 : 공식적인 감리기간은 착수회의를 시작으로 종료회의까지로 한다.
감리인 구성 : 감리총괄 및 주관 감리인은 감리수행에 필요한 인력을 확정하여 감리팀을 구성한다. 감리팀 구성시 감리대상사업의 특성을 고려하여 고도의 기술이 필요한 경우 감리인력에 고급인력의 투입여부 및 외부전문가의 활용을 고려하여 작성하여야 한다. 
각 감리인의 역할은 다음과 같다.
- 감리총괄은 개별감리에 대한 전체 책임을 진다. 
- 주관감리인은 감리의 리더(Leader)로서 감리의뢰기관 및 피 감리기관과의 감리일정, 행정업무 등의 협의를 한다. 
- 감리인은 각 검토부문별로 점검하는 자를 말한다.

3) 예비조사(사전문서검토)
본조사 이전에 예비조사(사전문서검토)를 실시하는 목적은 현장감리의 효율성을 높이는데 있다. 감리팀이 구성되고, 중점검토항목이 도출되면 감리기관은 감리의뢰기관 및 피감리기관에 감리계획서를 통보한다. 
다음으로 감리인들은 피감리기관으로부터 인수받은 감리대상사업의 산출물을 중점검토분야별로 점검하여 사업 수행상의 문제점이 될 수 있는 사항, 의문사항 및 피감리인과의 면담사항 등을 도출하여야 한다. 

예비조사의 실시절차는 다음과 같다.
주관감리인은 감리인을 소집하여 감리대상사업의 개요와 감리계획에 대하여 설명함으로써 감리인들의 이해를 돕는다.
감리영역(중점검토항목)별 정보시스템감리 실시기준의 범위 및 항목 파악 : 감리대상사업의 업무 단계를 고려하여 실시기준에서 관련 항목을 파악한다. 이 작업은 향후 감리보고서 작성시 상세검토항목의 검토항목으로 사용된다.
감리영역(중점검토항목)별 감리대상사업의 산출물 검토를 통한 문제점 및 의문 사항에 대한 감리점검표 작성: 감리인은 정보시스템 감리점검표의 중점점검항목을 본 감리 이전에 작성하여 현장감리시 활용하고, 점검항목별로 관계자의 확인을 받는다.

감리절차는 감리준비에서 보고서 통보까지를 하나의 주기(Life Cycle)로 볼 수 있다. 개별감리란 예를 들어 전체 감리 중에서 분석단계에서 실시하는 감리를 말한다.





감리개시 > 감리계약 > 감리계획 > 감리착수회의 > 본조사 > 감리종료회의 > 감리보고서작성 > 사후관리
감리대상사업의 감리실시가 확정되면 감리기관은 감리대상사업에 대하여 감리 일정, 업무분장 및 행정사항을 수행할 주관 감리인(혹은 전담 감리인)을 배정한 후 감리계약을 체결하여야 한다. 감리계약은 계약 당사간의 충돌을 피하고, 책임 범위를 명확히 하며, 전체 감리계획을 수립하는데 필요하다. 감리계약은 문서화되며, 감리계약의 과정은 다음과 같다.

 

사전협의
감리계약을 위해서는 사전 협의가 필요하다. 이때 감리기관은 감리비를 산정하고, 감리일정, 장소, 감리대상기관(피감리기관 혹은 피감리인)의 협조사항 및 기타 감리계약에 필요한 기본적인 사항등 감리계약서에 포함될 내용을 협의한다.

종합감리계획서 통보
사전 협의에 의해 감리기관은 사업의 특성 및 규모를 기준으로 감리대상사업에 대한 전체 감리일정, 범위 등을 포함하는 종합감리계획서를 작성하여 감리의뢰기관에 통보한다. 종합감리계획서는 사업의 규모에 따라 선택적으로 작성한다. 일반적으로 종합감리계획서의 내용은 다음과 같다. (부록 3 : 종합감리계획서 작성법 참조)
감리의 목적
감리대상 및 감리영역
감리시기 및 일정
감리절차 및 조직
감리행정사항
중점검토항목
기타 감리대상사업의 특성을 고려한 필요사항
감리의 목적과 기준은 정보시스템 감리기준에 의거 사업특성을 고려하여 명확히 제시하여야 한다. 감리의 목적이 명확하지 않을 경우 기획, 개발, 운영, 유지보수, 일반관리 감리의 혼동이 존재할 수 있다. 감리대상과 영역은 감리의뢰기관과 협의를 통하여 명확히 제시하여야 한다. 
감리시기 및 일정은 감리대상사업의 특성을 고려하여 상호 협의하에 결정한다. 감리일정은 정기감리와 상시감리로 구분된다. 
정기감리는 감리대상사업의 개발단계 혹은 운영일정 등을 고려하여 소프트웨어 생명주기를 기준으로 감리를 수행하는 것을 말하며, 상시감리는 정기감리외에 감리기관 혹은 감리의뢰기관이 필요하다고 인정하는 경우 실시하는 감리를 말한다. 
상시감리시 감리기관은 감리보고서가 아닌 검토공문으로 처리할 수 있다. 다음은 감리의 실시체계의 구분과 개발감리의 정기감리 시기, 일정을 예로 든것이다.
정기감리 : 감리대상사업의 개발 혹은 운영 등 소프트웨어 생명주기를 중심으로 감리계약 또는 감리계획에 의거 일정기간을 정하여 감리하는 체계를 말한다.
상시감리 : 감리대상사업의 개발 혹은 운영 등의 일정에 관계없이 필요시에 감리하는 체계를 말한다. 상시감리는 감리기관과 감리의뢰기관 및 피감리기관의 협의에 의하여 시행한다.
감리절차와 조직은 단계별 개별감리시 투입될 인력을 산출하여 중점검토분야를 중심으로 제시하는 것이다. 감리행정사항에는 감리 장소, 감리의뢰기관 및 피감리기관의 협조사항과 감리보고서 제출일 등을 기재한다. 

다음으로 감리 중점검토항목은 감리의뢰기관이 제출한 자료를 근거로 감리기관이 감리수행시 중점적으로 검토할 분야를 도출하여 작성한다.

감리계약
감리계약은 감리기관과 감리의뢰기관 사이의 법적인 충돌을 방지하는데 그 목적이 있으며, 사전협의와 종합감리계획서에서 합의된 사항을 문서화하는 과정이다. 상호 합의된 계약서는 감리기관과 감리의뢰기관이 각각 1통씩 보관한다. 일반적인 감리계약서의 내용에는 다음사항이 포함된다.
감리 대상 사업명
감리계약의 목적
감리영역 및 중점검토항목
감리시행 횟수, 감리시행 기간 및 투입인력
감리계약 기간
감리인의 책임 및 의무에 관한 사항
감리의뢰인 및 피감리인의 권리와 의무에 관한 사항
감리비 지급에 관한 사항
기타 감리수행에 필요한 사항
감리계약서가 작성되고 상호 합의가 되면 감리기관과 감리의뢰기관은 상호 계약 체결을 하며, 특히 감리인이 피감리기관에게 감리대상사업의 감리수행을 위하여 필요한 자료제출의 의무와 감리의뢰기관의 감리장소 제공에 관하여 명시한다.

감리계약 관리
감리계약을 체결하고 감리를 수행하는 도중에 예상치 못한 상황이 발생될 수 있다. 감리 대상사업이 특정 사유로 사업수행이 불가능한 경우, 혹은 사업수행기관이 파산하여 사업이 불가능한 경우 등 감리수행 계약내용을 불가피하게 변경하는 경우 변경된 내용을 계약서에 추가 또는 삭제하여 계약서를 다시 작성하거나 계약을 철회하게 되는 경우가 발생할 수 있다. 이 경우 감리실시 여부의 결정에서부터 다시 검토하여야 할 것이다.


+ Recent posts