정보처리기사/소프트웨어 개발
인터페이스 구현 2
RangA
2023. 5. 24. 17:13
인터페이스 설계 명세
04. 인터페이스 구현을 위한 도구
1) 데이터 통신을 위한 인터페이스 구현
- 응용 프로그램 영역에서 인터페이스 형식에 맞춘 데이터 포맷을 인터페이스 대상으로 전송하고 이를 수신측에서 파싱하여 해석하는 방법
- 파싱(Parsing) : 문장이나 프로그램 소스 혹은 데이터를 일정한 규칙으로 분리해 내는 작업
- JSON 및 XML 형식의 데이터 포맷을 사용하여 인터페이스를 구현함
2) 인터페이스 엔티티 구현
- 인터페이스가 필요한 시스템 사이에 별도의 인터페이스 엔티티(Entity)를 두어 상호 연계함
- 엔티티의 역할은 데이터베이스에서 인터페이스 테이블을 두어 각 시스템 간 데이터 교환에 활용하는 방법으로 업계에서 많이 사용됨
- 송신 시스템에서 전달할 내역을 송신 인터페이스 테이블에 쓰기(Write)하면 수신 인터페이스 테이블과 네트워크로 연결된 송신 인터페이스 테이블은 프로시저, 트리거 등을 사용하여 데이터를 수신 인터페이스 테이블에 전달하게 됨
- 수신 시스템은 전달된 데이터를 선택하여 활용할 수 있음
3) JSON(JavaScript Object Notation)
- 웹과 컴퓨터 프로그램에서 용량이 적은 데이터를 교환하기 위해 데이터 객체를 속성-값의 쌍(Attribute-Value Pairs) 형태로 표현하는 형식으로 자바스크립트를 토대로 개발된 형식
- JSON은 속성과 값으로 이루어진 데이터 객체를 전달하기 위해 사용하는 개방형 표준 포맷
- AJAX에서 많이 사용되고, XML을 대체하는 주요 데이터 포맷
- AJAX(Asynchronous Javascript And XML)
- AJAX는 자체가 하나의 특정한 기술을 말하는 것이 아니며, 함께 사용하는 기술의 묶음을 지칭하는 용어
- Javascript를 사용한 비동기 통신 기술로 클라이언트와 서버 간에 XML 데이터를 주고받는 기술
- 웹 브라우저 ASP, PHP, JSP를 포함한 HTML 문서 요청을 하면 웹 브라우저는 Javascript를 호출함
- AJAX를 사용하면 웹 페이지 한 화면에서 페이지 이동 없이 고속으로 화면을 전환할 수 있음
- AJAX(Asynchronous Javascript And XML)
- 언어 독립형 데이터 포맷으로 다양한 프로그래밍 언어에서 사용되고 있음
4) XML(eXtensible Markup Language)
- 다른 특수한 목적을 갖는 마크업 언어를 만드는 데 사용하도록 권장하는 다목적 마크업 언어
- 마크업 언어
- 출판사에서 저자가 집필한 원고를 교정하는 부호로 띄어쓰기, 줄 바꿈, 제거 등을 표현하는 기호
- 소프트웨어에서는 문장이나 표의 배치 방법, 글자의 크리나 모양, 들여쓰기와 줄 간격, 여백 등에 대한 정보를 나타내는 언어
- 마크업 언어
- 다른 많은 종류의 데이터를 기술하는 데 사용될 수 있음
- 다른 종류의 시스템끼리 데이터를 쉽게 주고받을 수 있음
- XML 문서는 문자로 이루어져 있음
- 유니코드 문자는 XML 문서에 나타날 수 있음
- 파서는 마크업을 분석하고 필요한 정보를 추출하여 응용 프로그램에 넘김
- XML 문서를 구성하는 문자들은 마크업과 내용으로 구분되며 간단한 문법 규칙으로 이루어짐
05. 인터페이스 구현
1) 사전에 정의된 기능 구현 분석
- 송신측에서 필요 대상을 선택하여 수신측에 데이터를 전송
- 대상자 선택 : 데이터베이스에 저장된 정보를 SQL로 선택하여 인터페이스 대상을 확인
- 데이터베이스 정보를 가공 : 인터페이스 데이터 생성 JSON 또는 인터페이스 테이블 형식에 맞게 데이터베이스에 있는 정보를 가공
- 인터페이스 데이터 전송 요청 : 인터페이스 데이터를 생성 후 해당 데이터를 HTTP에서 인터페이스 또는 수신측으로 전송
- 데이터 전송
- 인터페이스 데이터 전송 : 수신지 주소에 REST 방식으로 전달될 수도 있으며 DB Connection을 이용하여 DB Procedure, Trigger 등을 활용, 전송함
- 인터페이스 데이터 수신 : 인터페이스 데이터를 수신하고 데이터의 형식이 맞는지 점검, 각 룰(Rule)을 사전에 정의하고 이를 활용함
- 인터페이스 데이터 파싱 : 인터페이스 객체는 파서를 이용하여 파싱하거나 인터페이스 테이블에서 SELECT함
- 인터페이스 데이터 검증 : 각 세부 데이터의 포맷과 논리적인 제약조건에 해당하는지 검사(사용자가 정의한 룰 기준)
- 후속 기능 수행 : 각 세부 데이터를 활용해서 수신 시스템에서 정의된 Action을 진행함
- 전달 후 전달 여부 값 반환
- 인터페이스 수신 결과를 생성, 전송 : 정상적으로 수신되면 참, 아니면 거짓의 리턴 값을 JSON 형태로 전송
- 수신측에서 처리한 인터페이스 결과를 반환 받음 : 수신측에서 보낸 응답 JSON을 통해 수행 여부를 확인하고 이를 화면상으로 표시함
2) 인터페이스 구현
- 인터페이스 객체 생성 구현
- 인터페이스 객체를 생성하고 전송하기 위해 인터페이스 객체를 생성할 데이터를 선택
- 선택한 데이터는 JSON을 이용하여 인터페이스 객체를 만드는 데 사용
- JSON 메소드
- JSON.parse() : 문자열을 JSON 객체로 변환
- JSON.stringify() : JSON 객체를 문자열로 변환
- JSON 메소드
- 인터페이스 객체를 생성할 데이터를 각 시스템 및 환경에 맞게 선택
- 일반적으로 데이터베이스에 있는 정보를 SQL을 통하여 선택한 후 이를 JSON으로 생성
- SQL 실행 결과를 저장한 객체를 화면으로 가져와서 JSON 객체를 생성
- JSON 형식에 맞게 Javascript 객체에 저장
- 인터페이스 객체를 전송 후 결과 반환
- 인터페이스 객체를 전송 후 전송 결과를 수신측에서 반환받음
- 수신측에서는 JSON 인터페이스 객체를 수신받고 이를 파싱 후 처리함
- 처리 결과 값을 송신측에 전달
- 일반적으로 True/False를 전달하여 인터페이스 성공 여부를 확인
3) 인터페이스 엔티티를 사용하는 인터페이스 구현
- 송신측 인터페이스 테이블에 데이터를 Write하고 전송
- 송신 시스템의 인터페이스 테이블에서는 송신 관련 정보를 관리하기 위한 항목과 송신 시스템에서 필요한 항목을 추가하여 설계함
- 송신 관련 정보 : 연계 데이터 생성 일시, 송신 일시, 송신 상태 등
- 송신측에서 테이블에 데이터를 Write함
- 인터페이스 이벤트 발생 시 인터페이스 테이블에 인터페이스 내용을 Write함
- Write 동작은 INSERT이며 UPDATE 및 DELETE는 사용할 수 없음
- UPDATE 및 DELETE 할 수 없는 이유는 데이터 무결성 유지 및 인터페이스 이력 관리를 위함
- 제약조건은 테이블 생성 시 제약조건을 통하여 구현할 수 있음
- 송신측에서 테이블의 데이터를 전송
- 정의된 인터페이스 시점에 수신측으로 데이터를 전송할 수 있음
- 인터페이스 시점 : 즉시 또는 특정 기간 이후 혹은 주기적인 시점
- 전송하기 위해서는 일반적으로 데이터베이스 커넥션(DB Connection)이 수신측 인터페이스 테이블과 맺어져 있어야 하고 프로시저(Procedure), 트리거(Trigger), 일괄 작업(Batch Job) 등의 방법을 통하여 수신 테이블로 전송함
- 송신 시스템의 인터페이스 테이블에서는 송신 관련 정보를 관리하기 위한 항목과 송신 시스템에서 필요한 항목을 추가하여 설계함
- 수신측 인터페이스 테이블에서 인터페이스 데이터를 Read하고 처리
- 수신 시스템의 인터페이스 테이블에서는 수신 관련 정보를 관리하기 위한 항목과 수신 시스템에서 필요한 항목을 추가하여 설계함
- 수신 관련 정보 : 수신 일시, 처리 일시, 수신 상태 등
- 수신측 인터페이스 테이블에서 인터페이스 데이터를 Read함
- 인터페이스 데이터가 수신측 인터페이스 테이블에 입력되면 정해진 주기에 따라 데이터를 읽음
- 수신측 인터페이스 테이블에서 Read한 인터페이스 데이터를 처리
- 수신측 시스템에서는 인터페이스 데이터를 읽은 후 사전에 정의된 데이터 트랜잭션을 진행함
- 데이터를 읽을 때나 해당 트랜잭션이 진행될 때 오류가 발생하면 오류 코드 컬럼에 정의된 오류 코드와 오류 내용을 입력함
- 수신 시스템의 인터페이스 테이블에서는 수신 관련 정보를 관리하기 위한 항목과 수신 시스템에서 필요한 항목을 추가하여 설계함