제품소프트웨어 패키징이란 개발이 완료된 제품소프트웨어를 고객에게 전달하기 위한 형태로 패키징 하고, 설치와 사용에 필요한 제반 절차 및 환경 등 전체 내용을 포함하는 매뉴얼을 작성하며, 제품 소프트웨어에 대한 패치 개발과 업그레이드를 위해 버전 관리를 수행하는 능력이다.
- 제품 소프트웨어 패키징
1. 애플리케이션 패키징
1.1 애플리케이션 패키징 개요
1. 애플리케이션 패키징이란?
애플리케이션 패키징은 개발이 완료된 소프트웨어를 고객에게 전달하기 위하여 패키징, 설치 및 사용 매뉴얼을 작성하는 활동이다.
2. 애플리케이션 패키징 특징
애플리케이션 패키징은 개발자가 아닌 사용자 중심으로 진행된다.
신규 및 변경 개발 소스를 식별하고, 이를 모듈화하여 상용 제품으로 패키징한다.
고객 편의를 위해, 신규/변경 이력을 확인하고, 이를 버전 관리 및 릴리즈 노트를 통해 지속적으로 관리해간다.
사용자의 실행 환경을 이해하고, 범용 환경에서 사용이 가능하도록 일반적인 배포 형태로 분류하여 패키징이 진행된다.
1.2 사용자 중심의 애플리케이션 패키징
1. 사용자 실행 환경 이해
고객 편의성을 위해 사용자 실행 환경을 우선 고려한다 운영체제 , 실행 환경, 시스템 사용, 개발 언어, 고객의 사용방법 까지 상세 분석하여 실행 환경을 사전 정의한다.
다양한 실행 환경이 나오면 별도의 애플리케이션 패키징 작업이 필요하다.
2. 사용자 관점의 애플리케이션 패키징 고려 사항
사용자 운영체제, 시스템 사양 등 최소환경
직관적인 화면을 고려하고 매뉴얼과 일치시켜 패키징 작업을 하낟.
애플리케이션은 하드웨어와 함꼐 통합 적용될 수 있도록, 패키징은 Managed Service 형태로 제공한다.
다양한 사용자 요구사항을 반영하기 위해 패키징 변경 및 개선 관리를 고려한다.
1.3 애플리케이션 패키징 순서
1. 기능 식별
신규 개발 소스의 목적 및 기능을 식별한다.
입출력 데이터 , 전체적인 기능 정의 및 데이터 흐름을 식별한다.
2. 모듈화
모듈 단위 분류 및 모듈화를 순서에 맞게 진행한다.
수행을 위한 기능 단위 및 서비스 분류와 패키징 개념에서의 기능의 공유와 재활용 단위를 수행한다.
3. 빌드 진행
애플리케이션 빌드 도구를 활용한 빌드를 단위별로 진행한다.
신규 개발 소스 및 컴파일 결과물을 준비한다.
빌드 도구 확인 및 정상 수행여부를 확인한다.
4. 사용자 환경 분석
고객 편의성을 위한 사용자의 요구사항 및 사용 환경을 사전에 분석한다.
사용자 pc 운영 체제, 서버 사양, 네트워크 환경 등을 분석한다.
5. 패키징 적용 시험
최종 패키징에 대해서 사용자 입장에서 불편한 점을 체크한다.
사용자 환경과 똑같은 환경에서 패키징 적용을 해본다.
화면 사용 및 시스템 사의 편의성을 체크한다.
6. 패키징 변경 개선
사용자 입장을 반영하여 패키징에서 변경 및 개선을 진행한다.
사용자 최소 pc사양에서 서비스 가능한 수준의 개선 포인트를 도출한다.ㅇ자에게전
1.4 애플리케이션 릴리즈 노트
1. 애플리케이션 패키징 릴리즈 노트란?
애플리케이션 최종 사용자에게 전달되는 제품에 대한 공유 정보이다.
애플리케이션 패키징 버전별 릴리즈 노트는 제품의 주요 변경 사항을 담고있다.
2. 애플리케이션 패키징 릴리즈 노트 작성 항목
릴리즈 노트는 애플리케이션 최종 사용자에게 전달되는 제품에 대한 공유 정보이다.
2. 애플리케이션 배포 도구
애플리케이션 배포 도구란 배포를 위한 패키징 시에 디지털 컨텐츠의 지적 재산권을 보호하고 관리하는 기능을 제공하며, 안전한 유통과 배포를 보장하는 도구이자 솔루션이다.
2.1 애플리케이션 배포 도구 활용시 고려사항
1. 반드시 암호화/보안을 고려한다.
2. 추가로 다양한 이기종 연동을 고려한다.
3. 사용자 편의성을 위한 복잡성 및 비효율성 문제를 고려한다.
4. 애플리케이션의 종류에 적합한 암호화 알고리즘을 적용한다.
5. 지속적 배포 고려
3. 애플리케이션 모니터링 도구
제품소프트웨어 패키징에서 애플리케이션 모니터링 도구가 필요한 이유는 사용자 환경에 제품소프트웨어가 설치되었을 때에 애플리케이션 성능을 모니터링하여 제품의 장애를 미리 예방하기 위함이다.
distinct : 중복되는 행을 제거하는 옵션 * : 테이블의 모든 Column을 출력 alias : 해당 column에 대해서 다른 이름을 부여할 때 사용 table_name : 질의 대상 테이블 명 Where : 조건을 만족하는 행들만 검색, condition은 column, 표현식, 상수 및 비교연산자를 혼합하여 사용한다 Group by : 그루핑하고자 하는 단위 지정 Having : 그룹핑한 결과값에 대한 조건 검색 Order by : 질의 결과 정렬을 위한 옵션
1.4 절차형 데이터 조작 프로시저 PL/SQL
1. PL/SQL 개요
표준 SQL을 기본으로 Oracle에서 개발한 데이터 조작 언어이다. Oracle 기반의 모든 프로시저 작성에 사용되며 표준 SQL의 확장 기능이 우수하다.
2. PL/SQL 사용 시 장점
Compile이 필용 벗어 Script 생성 및 변경 후 바로 실행이 가능하다.
프로그램 개발의 모듈화가 가능하다.
변수, 상수 등 식별자를 선언하여 해당 식별자를 SQL과 절차적인 프로그램에서 사용할 수 있다.
IF문 Loop문 등 절차적 언어 구조로 된 프로그램 작성이 가능하다.
Explicit Cursor를 이용한 Multi-row 처리가 가능하다.
Exception 처리 루틴을 이용하여 Error처리가 가능하다.
네트워크 부하를 줄여 프로그램의 성능 향상을 기대할 수 있다.
PL/SQL은 여러 SQL문장을 Bloc으로 묶고 한번에 Block 전부를 서버로 전송하기 때문에 통신량을 줄일 수 있다.
3. PL/SQL 구조
PL/SQL은 프로그램을 논리적인 블록으로 나누게 하는 구조화된 블록 언어로서 다음과 같은 블록 구조로 구성된다.
선언부 : 실행부에서 참조할 모든 변수, 상수, Cursor, Exception을 선언한다.
실행부 : Begin과 End사이에 기술되는 영역으로, 데이터베이스 데이터를 처리할 SQL 문과 PL/SQL 블록을 기술한다.
예외 처리부 : 실행부에서 에러가 발생했을 경우 수행될 문장을 기술한다.
4. PL/SQL 처리절차
PL/SQL로 작성된 Block을 Oracle서버로 보내면 PL/SQL엔진이 SQL문과 Non SQL문을 구분한다.
Non SQL문은 PL/SQL엔진내의 Procedural Statement Executor가, SQL문은 SQL Statement Executor가 처리하게 된다.
Non SQL문은 Client환경에서, SQL문은 서버에서 실행된다.
따라서, PL/SQL문을 사용하게 되면 서버 작업량을 줄이게 되므로 네트워크 부하를 감소시켜 수행성능을 증가시키는 장점이 있다.
1.5 PL/SQL을 활용한 저장형 객체 활용
PL/SQL로 작성할 수 있는 저장형 객체로는 Stored Function, Stored Procedure, Stored Package, Trigger 등이 있다.
1. Stored Function
보통값을 계산하고 결과값을 반환하기 위해서 많이 사용한다.
대부분 구성이 프로시저와 유사하지만 IN 파라미터만 사용할 수 있다.
반드시 반환될 값의 데이터 타입을 Return문에 선언해야 한다.
PL/SQL블록 내에서 Return 문을 통해서 반드시 값을 반환해야 한다.
ㅛ를받아서정해진
2. Stored Procedure
특정 작업을 수행할 수 있는 이름이 있는 PL/SQL블록이다.
매개 변수를 받을 수 있고, 반복적으로 사용할 수 있는 Object이다.
보통 연속 실행 또는 구현이 복잡한 트랜잭션을 수행하는 PL/SQL 블록을 DB에 저장하기 위해 생성된다.
CREATE OR REPLACE 구문을 사용하여 생성한다.
IS 로 PL/SQL 블록을 시작한다.
LOCAL 변수는 IS와 BEGIN 사이에 선언한다.
3. Store Package
패키지는 Oracle 데이터베이스에 저장되어 있는 서로 관련있는 PL/SQL 프로시저와 함수들의 집합이다.
패키지는 선언부와 본문 두부분으로 나누어 진다.
4. Trigger
INSERT, UPDATE, DELETE 문이 TABLE에 대해 행해질 때 묵시적으로 수행되는 PROCEDURE이다.
Trigger는 TABLE과는 별도로 데이터베이스에 저장된다.
Trigger는 VIEW에 대해서가 아니라 TABLE에 관해서만 정의될수 있다.
DBMS_OUTPUT.PUT_LINE을 출력하기 위해 'set serveroutput on'을 사용한다.
2. 프로그램 디버깅
만들어진 데이터베이스 프로시저에 대한 개발자 스스로 검증을 해보아야하는데 , 이를 프로그램 디버깅 이라고 한다. 프로시저 디버깅은 만들어진 프로시저가 정해진 입력 자료를 받아서 정해진 출력을 출력하는지에 과한 확인 과정이다.
2.1 SQL*Plus 개요
1. SQL과 SQL*Plus 차이점
SQL은 데이터를 조작하는 표준 언어인 반면 SQL*Plus는 이러한 SQL을 DBMS 서버에 전송하여 처리할 수 있도록 하는 Oracle에서 제공하는 도구이다.
3. 단위 테스트 도구
Oracle DBMS는 모든 데이터조작 프로시저에 대한 테스트 환경으로 SQL*Plus 라는 도구를 제공하므로, 개발자는 데이터 조작 프로시저 테스트를 위해 해당 도구 활용을 위한 SQL*Plus에대한사전지식이필요한다.
3.1 PL/SQL 테스트
1. DBMS_OUTPUT 패키지 활용
메시지를 버퍼에 저장하고 버퍼로부터 메시지를 읽어오기 위한 인터페이스를 제공하는 패키지인 DBMS_OUTPUT을 코드에 포함한다.
데이터 입출력 구현이란 응용소프트웨어가 다루어야 하는데 데이터 및 이들 간의 연관성, 제약조건을 식별하여 논리적으로 조직화하고, 소프트웨어 아키텍처에 기술된 데이터저장소에 조직화된 단위의 데이터가 저장될 최적화된 물리적 공간을 구성하고 데이터 조작언어를 이용하여 구현하는 능력이다.
- 논리 데이터 저장소 확인
1. 자료구조
1.1 자료 구조 정의
자료 구조는 컴퓨터 상에 자료를 저장하기 위해서 만들어진 논리적인 틀을 말한다. 논리 데이터저장소를 확인하기 위해서는 데이터를 저장하는 자료구조를 이해하고 있어야 한다.
1.2 자료 구조 분류
파일은 같은 타입의 레코드들의 집합을 말한다.
파일의 레코드들을 물리적 저장 장치에 저장시키기 위한 배치 방법으로서 데이터베이스의 물리적 저장 방법이 된다.
기본적으로 저장된 레코드들이 어떻게 접근할 수 있게 하느냐에 따라 크게 순차 방법, 인덱스 방법, 해싱 방법 등으로 나눌 수 있다.
1. 선형 리스트
선형 리스트는 배열과 같이 연속되는 기억장소에 저장되는 리스트이다.
선형 리스트의 대표적인 구조 : 배열
가장 간단한 자료구조이며 접근속도가 빠르다
중간에 자료를 삽입하기 위해서는 연속된 빈 공간이 있어야 한다.
자료의 삽입, 삭제 시 자료의 이동이 필요하기 때문에 번거롭다.
2. 연결 리스트
연결 리스트는 자료들을 선형 리스트처럼 연속으로 배열시키지 않고 임의의 기억 공간에 기억 시키되 각 노드의 포인터를 이용하여 서로 연결한 자료구조이다.
노드의 삽입, 삭제 작업이 용이하다.
기억공간이 연속적으로 놓여있지 않아도 저장이 가능하다.
연결을 위한 포인터가 추가로 필요하기때문에 기억공간을 더 필요로한다.
연결을 위한 포인터를 찾는 시간이 필요하기 때문에 순차리스트에 비해 느리다.
희소 행렬을 링크드 리스트로 표현하면 기억장소가 절약된다.
3. 스택
한 쪽 끝에서만 자료를 넣고 뺄 수 있는 LIFO 형식의 자료구조
응용분야는 서브 프로그램 호출 시 복귀 주소 저장에 활용한다.
인터럽트 수행 시 복귀 주소 저장에 활용한다.
수식 연산에 활용한다.
4. 큐
스택과 달리 리스트의 한쪽 끝에서는 삽입 작업이 이루어지고, 반대쪽 끝에서는 삭제 작업이 이루어져 삽입된 순서대로 삭제되는 구조
선입선출 구조 FIFO
Front Pointer는 삭제작업, Rear Pointer는 삽입 작업을 할 때 사용한다.
5. 데크
큐의 양쪽 끝에서 삽입과 삭제가 모두 가능한 자료 구조
두개의 포인터를 사용하여, 양쪽에서 삭제와 삽입을 발생 시킬 수 있다.
큐와 스택을 합친 형태이다.
1.3 트리
1. 트리 개념
데이터들을 계층화 시킨 자료 구조
인ㄷ덱스를 조직하는 방법으로 가장 많이 사용되는 구조
트리는 노드들과 노드들을 연결하는 링크들로 구성
2. 트리의 기본적인 성질
노드가 N개의 트리는 항상 N-1 개의 링크를 가진다.
루트에서 어떤 노드로 가는 경로는 유일하다. 또한 임의의 두 노드 간의 경로도 유일하다.
(같은 노드를 두번 이상 방문하지 않는다는 조건하에)
1.4 트리의 순회 방법
1. 중위 순회
왼쪽 서브트리를 중위 순회한다.
중간 노드를 방문한다.
오른쪽 서브 트리를 중위 순회한다.
위의 예에서 D,B,E,A,F,C 순서로 조회한다.
2. 전위 순회
중간 노드를 방문한다.
왼쪽 서브트리를 전위 순회한다.
오른쪽 서브 트리를 전위 순회한다.
위의 예에서 A,B,D,E,C,F 순서로 조회한다.
3. 후위 순회
왼쪽 서브트리를 후위 순회한다.
오른쪽 서브 트리를 후위 순회한다.
중간 노드를 방문한다.
위의 예에서 D,E,B,F,C,A 순서로 조회한다.
1.5 트리 순회방법을 활용한 수식표현법
1. 전위 표기법(prefix)
연산자, 변수, 변수(+AB)의 순서로 수식을 표현하는 표기법
연산자가 가장 먼저 나온다.
2. 중위 표기법(infix)
변수, 연산자, 변수(A+B)의 순서로 수식을 표현하는 표기법
연산자가 중간에 나온다.
3. 후위 표기법(posfix)
변수, 변수, 연산자 (AB+)의 순서로 수식을 표현하는 표기법
연산자가 가장 나중에 나온다.
4. 중위식 -> 전위식으로 표현하는 방법
Infix를 prefix나 postfix로 바꿀 때는 먼저 연산순위를 결정한다.
연산순서가 빠른 순으로 연산자를 그 연산을 수행하는 변수 앞으로 옮긴다.
5. infix -> postifx
연산순서가 빠른순으로 연산자를 그 연산을 수행하는 변수 뒤로 옮긴다.
6. prefix -> infix
앞에서부터 연산자, 변수, 변수 순으로 된 것을 찾아 연산자를 변수와 변수 사이로 옮긴다.
7. postfix -> infix
앞에서부터 변수, 변수, 연산자 순으로 된 것을 찾아 연산자를 변수와 변수 사이로 옮긴다.
1.6 이진트리
1. 이진트리의 개념
이진트리에서 각 노드는 최대 2개의 자식노드를 가진다.
각각의 자식 노드는 자신이 부모의 왼쪽 자식인지 오른쪽 자식인지가 지정된다.
2. 이진트리 종류
포화 이진트리는 모든 레벨에서 노드들이 모두 채워져 있는 트리이다.
완전 이진트리는 마지막 레벨을 제외하고 노드가 모두 채워져있는 트리이다.
마지막 레벨도 모두 다 채워져 있거나 오른쪽으로 연속된 몇개의 노드만 비어 있을 수 있다.
편향 이진트리는 트리의 노드가 왼쪽이나 오른쪽으로 한쪽으로만 노드가 있는 트리이다.
3. 이진트리 특징
높이가 h인 포화이진트리는 2의 h승 -1개의 노드를 가진다.
노드가 N개인 포화 혹은 완전 이진트리의 높이는 O(log2N)이다.
노드가 N개인 이진트리의 높이는 최악의 경우 O(N)이 될 수 있다.
1.7 그래프
1. 그래프의 개념
단순히 노드와 그 노드를 연결하는 간선을 하나로 모아 놓은 자료구조이다.
즉 연결되어 있는 객체 간의 관계를 표현할 수 있는 자료구조이다.
2. 그래프 표현 방법
그래프 G = (V,E)이고 다음 V,E는 다음과 같다.
V(G) : 정점
E(G) : 간선, 정점을 연결하는선
3. 그래프종류
무방향 그래프 : 정점을 연결하는 선에 방향이 없다.
정점(V)이 n개인 무방향 그래프에서는 최대 간선(E)가 n(n-1)/2이다.
방향 그래프 : 정점을 연결하는 선에 방향이 있다.
방향그래프에서는 두 정점에 대하여 방향이 다른 두 개의 간선을 연결할 수 있으므로 최대 간선 수는 무방향 그래프의 2배가 되어 n(n-1)이 된다.
4. 그래프 특징
그래프는 네트워크 모델이다.
루트노드, 부모-자식 관계라는 개념이 없다.
2개 이상의 경로가 가능하다.
자기 자신을 향하는 간선은 없다.
중복된 간선을 허용하지 않는다.
1.8 그래프 관련 용어
1. 완전 그래프
그래프에서 간선의 수가 최대인 그래프를 말한다.
무방향 그래프 경우 n개의 정점이 있는 경우 간선의 수는 n(n-1)/2 이다.
방향 그래프의 경우 n개의 정점이 있는 경우 간선의 수는 n(n-1)이다.
2. 인접 : 무방향 그래프에서 정점 a,b에 대하여 간선(a,b)가 있으면 정점 a는 정점 b에 인접하다고 한다.
3. 부속 : 무방향 그래프에서 정점 a,b에 대하여 간선(a,b)가 있으면, 간선(a,b)는 정점 a,b에 부속한다고 한다.
4. 부분 그래프
그래프 G에 일부분인 그래프 G'를 말한다.
5. 경로 : 정점 Vp에서 Vp로 가는 경로
6. 경로의 길이 : 경로상에 있는 간선의 수
7. 단순 경로 : 처음과 마지막을 제외하고 정점이 모두 다른 경로, 즉 경로상의 정점이 중복되지 않는 경로를 단순경로라고 한다.
8. 사이클
처음과 마지막 정점이 다른 단순 경로, 즉 단순경로 중 경로가 다시 원점에 도달하는 경우이며 사이클을 형성한다.
방향성 그래프에서는 방향성 사이클이라 한다.
9. 연결됨 : 점점 V0와 V1이 연결되어 있다는 것은 그래프 G에서 정점V0에서 V1로 가는 경로가 있는 경우이다.
2. 자료 저장 방법
2.1 순차 방법
1. 정의
레코드들의 물리적 순서가 그 레코드들의 논리적 순서와 같게 저장하는 방법이다.
2. 종류
엔트리 순차 파일 : 레코드가 시스템에 삽입되는 순서대로 만들어지는 파일
키순차 파일 : 레코드들의 키값의 크기 순으로 만들어지는 파일
3. 특징
레코드 접근은 기본적으로 레코드가 저장되어 있는 물리적 순서에 따른다.
따라서 어느 한 레코드를 접근하기 위해서는 물리적으로 이 레코드 앞에 저장되어 있는 모든 레코드들을 접근하지 않으면 안되기 때문에 이 순차파일은 파일을 복사하거나 레코드들을 순차적으로 일괄 처리 하는 응용에서 많이 사용한다.
2.2 인덱스 방법
1. 정의
기본적으로 데이터 레코드를 접근하기 위해서 먼저 인덱스를 찾아서 그 인덱스가 가리키는 주소를 따라가 원하는 레코드를 접근하는 방법이다.
2. 특징
인덱스 파일을 사용하는데 데이터파일은 인덱스 파일과 데이터 파일로 구성
인덱스 파일은 <키, 주소> 쌍으로 구성된다.
3. 종류
인덱스된 순차파일 : 하나의 인덱스를 사용
키값에 따라 정렬된 데이터 레코드를 순차적으로 접근하거나 주어진 키 값을 가지고 직접 접근하는 두가지 방법을 모두 지원하는 구조 이다.
3. 데이터 모델링 개요
3.1 데이터 모델링 정의
현실 세계의 사용자 요구사항을 컴퓨터 세계의 정보구조로 변환하기 위하여 실체와 관계를 중심으로 분석/설계하여 점차 자료구조를 만들어가는 과정이다.
3.2 데이터 모델링 목적 및 특징
1. 데이터 모델링 목적
연관 조직의 정보요구에 대한 정확한 이해를 할 수 있다.
사용자, 설계자, 개발자 간에 효율적인 의사소통 수단을 제공한다.
데이터 체계 구축을 통한 고품질 S/W와 유지보수 비용의 감소효과를 기대할 수 있다.
신규 또는 개선 시스템의 개발 기초를 제공한다.
2. 데이터 모델링 특징
데이터 중심 분석을 통한 업무 흐름 파악이 용이하다.
데이터 무결성을 보장할 수 있다.
데이터의 공유를 통한 중복을 제거하고 일관성 있는 정보를 제공받을 수 있다.
3. 데이터 모델링 절차
4. 논리 데이터저장소
4.1 논리 데이터저장소 개요
1. 논리 데이터저장소 개념
데이터 구조 등의 논리적인 자료구조로 만들어진 데이터 저장소이다.
물리 데이터 저장소와는 별개로 사용자 혹은 개발자가 이해하기 쉬운 놀리적인 구조로 추상화 하여 제공한다.
엔티티 : 관리할 대상이 되는 실체
속성 : 관리할 정보의 구체적 항목
관계 : 엔티티간의 대응 관계
2. 논리 데이터 모델링 개념
데이터 구조에 대한 논리적 정의단계로서 정확한 업무 분석을 통한 자료의 흐름을 분석하여 현재 사용 중인 양식, 문서, 장표를 중심으로 자료항목을 추출하여 추출된 엔티티와 속성들의 관계를 구조적으로 정의하는 단계이다.
논리 데이터 저장소를 설꼐하는 과정이 논리 데이터 모델링이다.
3. 논리 데이터 모델링 특성
논리적 데이터 모델링 시 요구사항을 충분히 수집하지 않으면 다음 단계의 요구사항 변경에 따른 많은 비용이 발생한다.
모든 이해당사자들과 의사소통의 보조자료로서 E-R 모델을 활용한다.
논리적 모델은 하드웨어나 소프트웨어에 독립적이다.
4.2 논리 데이터저장솧 확인 절차
1. 엔티티 확인
작성된 엔티티 목록, 엔티티 정의서, 논리 ER-Diagram과 To-Be업무 흐름도를 비교하면서 엔티티 누락 여부 및 중복 여부를 확인한다.
2. 속성 확인
엔티티 정의서에서 데이터 속성을 확인한다.
자주 사용되는 코드성 데이터는 공통코드 대상이다.
3. 데이터 흐름 확인
데이터 프로세스와 엔티티 목록으로 CRUD Matrix를 작성한다.
CRUD Matrix에서 사용되지 않는 엔티티가 있는지 확인한다.
CRUD Matrix에서 엔티티를 사용하지 않는 프로세스가 있는지 확인한다.
4. 데이터 접근 권한 및 통제 확인
다수의 사용자가 접근하는 데이터베이스에서 각 사용자 또는 사용자 집단이 자신들이 허가받은 데이터에만 접근하도록 제어해야 한다.
내외부 송/수신의 연계 방식은 직접 연계 방식과 간접 연계 방식으로 분류할 수 있다. 직접 연계 방식은 중계 서버나 솔루션을 사용하지 않고 송신 시스템과 수신 시스템이 직접 인터페이스 하는 방식이다. 간접 연계 방식은 연계 솔루션에서 제공하는 송/수신 엔진과 어댑터를 활용하는 인터페이스 방식이다.
1.1 직접 연계 방식
일반적으로 중간의 연계 매개체가 생략되어 연계 처리 속도가 빠르고 구현이 단순하며, 개발 비용과 기간이 짧은 장점이 있다.
송신 시스템과 수신 시스템 사이의 결합도가 높아 시스템 변경에 민감함 특성이 있다.
보안을 위한 암/복호화 처리와 업무 기능 구현을 인터페이스별로 작성하여, 전사 차원의 시스템 인터페이스 통합 환경 구축이 어려운 단점이 있다.
1.2 간접 연계 방식
연계 서버를 활용하여 송/수신 처리와 송/수신 현황을 모니터링하고 통제하는 방식으로, 서로 상이한 네트워크와 프로토콜 등 다양한 환경의 시스템들을 연계하고 통합 관리할 수 있다.
장점으로 인터페이스 변경 시에도 유연하게 대처가 가능하고 보안이나 업무처리 로직 반영이 용이하다.
단점으로 인터페이스 아키텍처와 연계 절차가 복잡하고 연계 서버로 인한 성능 저하, 개발 및 테스트 기간이 직접 연계 방식보다 오래 걸린다.
1.3 연계 기술
시스템 연계 기술은 데이터베이스에서 제공하는 DB Link, JDBC, Socket, Web Service 등이 있다.
1.4 인터페이스 처리유형
업무의 성격 및 데이터 전송량에 따라 사용자의 요청이 즉시 처리해야 하는 경우는 실시간 처리 방식, 단위 처리의 비용이 과다하게 발생하는 경우는 지연처리 방식, 대량의 데이터를 한번에 처리해야하는 경우는 배치 처리 방식으로 처리 유형을 정의한다.
2. 데이터 명세화
2.1 데이터 명세화의 개념
인터페이스 요구 사항 분석 과정에서 식별한 연계 정보에 해당하는 테이블 정의서, 파일 레이아웃, 코드 정의서 등을 통해 데이터를 명세화 한다.
1. 개체 정의서
데이터베이스 개념모델링 단계에서 도출한 개체의 타입과 관련 속성, 식별자 등의 정보를 개괄적으로 명세화한 정의서이다.
2. 테이블 정의서
논리 및 물리 모델링 과정에서 작성하는 설계 산출물로 테이블을 구성하는 컬럼들의 특성, 인덱스 업무 규칙을 문서화한 것이다.
컬럼의 특성은 컬럼명, 데이터 타입, 길이, NULL 여부, 키 여부, 디폴드 값 등을 의미한다.
3. 코드 정의서
코드 정의서는 코드에 대한 명명규칙을 정하고, 명명규칙에 따라 어떠한 코드를 사용할 지를 정의한 문서이다. 코드는 전체 데이터베이스에서 유일하게 정의된다.
2.2 송수신 데이터 명세서
송/수신 시스템의 테이블 정의서, 파일 레이아웃,코드 정의서 등에서 연계하고자하는 테이블 또는 파일 단위로 송/수신 데이터 병세를 작성한다.
송/수신 데이터 항목에 대한 데이터 타입 길이, 필수항목 여부, 식별자 여부를 정의하고 코드 데이터 항목의 경우 공통 코드 여부와 코드 값 범위 등을 정의한다.
법률 또는 조직 내부에서 정한 개인정보보호 관련 규정 들을 참고하여 암호화 대상 컬럼을 식별하고 송/수신 데이터에 포함된 경우 암호화 적용 여부를 정의한다.
3. 오류 처리방안 명세화
3.1 인터페이스 오류 유형
시스템 연계 과정에서 발생할 수 있는 장애나 오류의 유형은 연계 시스템의 장애, 송신 시스템의 연계 프로그램 오류 또는수신 시스템의 연계 프로그램 오류, 연계 데이터 자체 오류 등으로 구분할 수 있다.
송신 시스템의 연계 프로그램 오류는 연계 데이터를 생성하거나 추출하는 과정, 코드 및 데이터를 변환하는 과정에서 발생할 수 있다.
수신시스템의 연계 프로그램 오류는 운영 데이터베이스에 데이터를 반영하거나 코드 및 데이터를 변환하는 과정에서 발 생할 수 있다.
3.2 인터페이스 오류 처리 방법
1. 인터페이스 오류 처리 절차
연계 서버와 송/수신 시스템의 로그파일에 오류 코드와 발생한 에러의 상세 내용을 기록하도록 연계프로그램을 작성하여, 인터페이스 오류의 확인과 해결에 활용한다.
오류가 발생하면 연계 서버와 송/수신 시스템에 기록된 로그 파일의 내용을 확인하여 오류 원인을 분석하고 해결 방안을 수립한다.
오류 유형에 따른 해결 방안은 다음과 같다.
연계 데이터 오류의 경우 데이터를 보정하고 재전송한다.
송/수신 시스템의 접속 오류인 경우 담당자 또는 시스템 상태 확인을 통해 접속오류를 해결한 후 재전송한다.
2. 인터페이스 오류 코드 및 내용
인터페이스 장애 및 오류 처리를 위해 발생할 수 있는 오류를 유형별로 구분하여 관리해야한다.
오류코드는 오류를 식별하고 관리할 수 있는 고유 코드이며, 오류 발생지와 오류 유형, 일련번호를 포함하여 오류 코드 명명 규칙을 정의할 수 있다.
3. 오류처리 명세화 절차
대내외 시스템 연계에서 발생할 수 있는 시스템 장애, 전송 오류, 연계 프로그램에서 정의한 예외 상황 등의 오류 상황을 식별하고 분류한다.
오류 상황에 대하여 발생 영역 분류, 오류 코드, 오류 메시지, 오류 설명, 대응 방법 등을 명시한다.
4.인터페이스 설계
인터페이스 설계는 인터페이스 목록의 도출과 인터페이스 정의서 작성이 주된 활동이 된다.
4.1 인터페이스 목록 도출
인터페이스 목록은 연계 업무와 연계에 참여하는 송/수신 시스템의 정보, 연계방식과 통신 유형 등의 대한 정보를 포함한다. 인터페이스 목록에는 다음과 같은 주요 항목들이 정의되어야 한다.
인터페이스 아이디
인터페이스 명
시스템 및 대내외 구분
연계방식
통신유형
처리유형
주기
데이터형식
4.2 인터페이스 정의서 작성
인터페이스 명세는 데이터 송신 시스템과 수신 시스템 간의 데이터 저장소와 속성등의 상세 내역을 포함한다.
인터페이스 아이디
요구성능
시스템 정보
데이터 정보
5. 미들웨어 솔루션
5.1 미들웨어 솔루션의 개념
기능적으로 클라이언트와 서버 사이의 통신을 담당하는 시스템 소프트웨어
컴퓨터와 컴퓨터의 연결의 담당하는 소프트웨어로 중간을 의미하는 미들과 소프트웨어를 의미하는 웨어의 합성어
5.2 웹 서버와 웹 애플리케이션 서버
1. 웹서버
웹브라우저의 요청을 받아 html파일이나 이미지/그림,자바스크립트의 정적인 콘텐츠를 제공한다.
2. 웹 애플리케이션 서버
서버계층에서 애플리케이션이 동작할 수 있는 환경을 제공하고 안정적인 트랜잭션 처리와 관리, 다른 이기종 시스템과의 애플리케이션 연동을 지원한다. 웹서버와의 가장 큰 차이점은 동적 서버 콘텐츠를 수행할 수 있는 기능이다.
3. 웹서버와 웹 애플리케이션 서버의 일반적인 구성
사용자가 웹 브라우저를 이용해 요청하는 경우 정적인 데이터는 웹서버가 처리하고 동적인 콘텐츠의 경우 WAS로 서비스를 요청함으로써 서버 자원을 효율적으로 처리할 수 있도록 구성한다.