-
정보처리기사[실기 핵심 정리] - 인터페이스 기능구현 및 검증용어 정리 2024. 4. 11. 19:32
EAI(Enterprise Application Integration)
- 기업 내의 다른 플랫폼 및 애플리케이션들을 연결, 통합하는 솔루션
- 목적 : 비즈니스 통합 및 연계성 증대, 시스템 확장성 향상
EAI의 구축 유형
종류 설명 point-to-point ● 미들웨어 없이 직접 애플리케이션끼리 연결
● 솔루션 구매 없이 직접 통합 가능Hub & Spoke ● 중앙 허브를 통한 중앙 집중적 연결 방식
● 모든 데이터 전송 보장, 확장 및 유지보수 용이
● 단점 : 허브에 문제가 생길 경우 전체 시스템에 영향Message Bus ● 미들웨어를 사용하여 애플리케이션 사이에서 메시지를 전달
● 뛰어난 확장성, 대용량 처리 가능HyBrid ● 내부적으로는 Hub & Spoke, 외부적으로는 메시징 버스 방식 사용
● 표준 통합 기술 사용, 데이터 병목 현상 최소화ESB 개념
- 웹 서비스 중심의 표준화된 데이터 버스를 이용하여 다양한 애플리케이션을 유연하게 통합하는 플랫폼
ESB 구축 유형
- 관리 및 보안 용이, 높은 품질 지원
- EAI와 유사하지만 서비스 중심 통합을 지향
- 단점 : 표준화 필요, 벤더 종속성, 일부 성능 문제 존재
인터페이스 연계 기술
DB Link
- 데이터베이스에 제공하는 DB Link 객체를 이용
- 수신 시스템에서 DB Link를 생성하고 송신 시스템에서 해당 DB Link를 직접 참조하는 방식
DB Connection
- 수신 시스템의 WAS에서 송신 시스템DB로 연결하는 DB Connection Pool을 생성하고 연계 프로그램에서 해당 DB Connection Pool 명을 이용
JDBC
- 수신 시스템의 프로그램에서 JDBC 드라이버를 이용하여 송신 시스템 DB와 연결
- DBMS 유형, DBMS 서버 IP와 Port, DB Instance 정보가 필요함
API/ OpenAPI
- 송신 시스템의 애플리케이션 프로그램 인터페이스 프로그램
- API명, 입출력 파라미터 정보가 필요함
Web Service
- WSDL(Web Services Description Language), UDDI(Universal Description, Discovery and Integration) SOAP(Simple Object Access Protocol)프로토콜을 이용하여 연계
Hyper Link
- 웹 애플리케이션에서 하이퍼링크(Hyper Link) 이용
Socket
- 통신을 위한 소캣(Socket)을 생성하여 포트를 할당하고 클라이언트의 통신 요청 시 클라이언트와 연결하고 통신하는 네트워크 기술
인터페이스 전송 데이터
JSON(JavaScript Object Notation)
- JavaScript의 객체 문법을 기반으로 데이터를 표현하는 문자 기반의 표준 포맷
- 웹 애플리케이션에서 주로 사용
- JSON 데이터는 이름과 값의 쌍으로 이루어 진다.
XML(eXtensible Markup Language)
- 웹에서 구조화한 문서를 표현하고 전송하도록 설계한 마크업 언어
- XML은 문서내용에 대한 구조와 의미를 기술하기 위한 언어
- 특수한 목적을 갖는 마크업 언어을 만드는데 사용하도록 권장하는 다목적 마크업 언어
- 다양한 표현이 가능하고, 확장성이 뛰어나며 간단하다.
- HTML처럼 데이터를 보여주는 목적이아닌 데이터를 저장하고 전달할 목적으로 만들어 졌다.
- HTML처럼 태그가 정해져 있지 않고 사용자가 직접 정의할 수 있다.
YAML(YAML Ain't Markup Languange)
- 구성 파일 작성에 자주 사용되는 데이트 직렬화 언어
- JSON과 비슷하게 사람이 읽기 쉬운 형태의 데이터 표현 형식
- YAML은 XML과 문법적으로 유사하지만, 태그를 사용하지 않고 공백 위주로 데이터를 구분
CSV(Comma Separated Values)
- 몇 가지 필드를 쉼표(,)로 구분한 텍스트 데이터 및 텍스트 파일
- 표 형태의 데이터를 저장하는 파일형식
인터페이스 구현
AJAX(Asynchronous JavaScript and XML)
1) AJAX의 개념
- 자바스크립트를 이용해 서버와 브라우저가 비동기 방식으로 데이터를 교환할 수있 는 통신 기능
- 브라우저가 가지고 있는 XMLHttpRequest 객체를 이용
- 전체 페이지를 새로고침하지 않고, 페이지의 일부만을 변경할 수 있는 기법
2) 비동기 방식
- 웹 페이지를 리로드하지 않고 데이터를 불러오는 방식
- 페이지 리로드 시 전체 리소스를 다시 불러와야 하지만, 비동기 방식을 이용할 경우 필요한 부분만을 불러와 사용하므로 불필요한 리소스가 발생하지 않는다.
3) AJAX의 장단점
장점 ● 웹 페이지의 속도향상
● 서버의 처리가 완료될 때까지 기다리지 않고 처리가 가능하다.
● 서버에서 필요한 데이터만 전송하면 되므로 전체적인 코딩의 양이 줄어든다.
● 기존 웹에서는 불가능했던 다양한 UI를 가능하게 해준다.단점 ● 히스토리 관리가 되지 않는다.
● 사용자에게 아무런 진행 정보가 주어지지 않는다.
● AJAX를 쓸수 없는 브라우저에 대한 문제 이슈가 있다.
● 다른 도메인과는 통신이 불가능하다.
● 페이지 이동이 없는 통신으로 인한 보안상의 문제가 있다.SOAP(Simple Object Access Protocol)
1) SOAP의 개념
- HTTP, HTTPS, SMTP 등을 통한 XML 기반 메시지 교환 프로토콜
- RPC 패턴 사용, 클라이언트와 서버간의 요청 및 응답을 처리
- SOA 개념을 실현하는 기술
2) SOAP 구성
- SOAP : HTTP, HTTPS, SMTP 등을 통한 XML 기반 메시지 교환 프로토콜
- UDDI : 비즈니스 업체 목록 등록을 위한 XML 규격
- WSDL : 웹 서비스 기술언어, 서비스의 기술적 세부사항 기술
3) SOAP 보안 프로토콜
보안 프로토콜 설명 SAML 인증, 권한 관리 XKMS 키 관리 XACML 접근 제어 4) SOAP 장/단점
장점 ● 프록시와 방화벽에 구애받지 않는 통신
● HTTP 이외의 다른 전송 프로토콜들(SMTP)을 사용할 수 있다.
● 플랫폼 독립적단점 ● XML 포맷의 사용으로 인해 상대적으로 느림 REST
1) REST의 개념
- HTTP URI를 통한 자원 명시와 HTTP Method를 통한 CRUD Operation 적용
- 자원 기반의 구조(ROA) 구현
2) REST 구성요소
구성요소 설명 자원(Resource) URI를 통해 식별되는 서버의 데이터 행위(Method) GET,POST,PUT,DELETE 등 HTTP Method 사용 표현(Representation) JSON, XML, TEXT등 다양한 형태로 표현 가능 3) CRUD Operation, HTTP Method
- Create : POST
- Read : GET
- Update : PUT
- Delete : DELETE
4) REST 특징
특징 설명 유니폼 인터페이스 ● HTTP 표준만 따르면 어떤 언어나 플랫폼에서 사용해도 사용이 가능한 인터페이스 스타일
● 특정 언어에 상관없이 사용이 가능하다Stateless
(상태 정보 유지 안함)● REST는 상태 정보를 유지하지 않는다
● 서버는 각각의 요청을 완전히 다른 것으로 인식하고 처리를 한다Cacheable
(캐시가능)● HTTP가 가진 캐싱 기능이 적용 가능 Self-descriptiveness ● REST API 메시지만 보고도 쉽게 이해할 수 있는 자체 표현 구조로 되어 있다. 5) REST 장/단점
장점 ● 별도 인프라 필요 없음
● 클라이언트와 서버의 분리
● 플랫폼에 독립적
● 사용 용이단점 ● 표준 부재
● HTTP Method 한계6) RESTful
- RESt 원리를 따르는 시스템
인터페이스 보안
인터페이스 보안 취약점 분석
- 인터페이스를 통한 데이터 변조, 탈취
- 패킷 공격 기법
- 스니핑(Sniffing): 네트워크상에서 전송되는 패킷을 가로채는 행위, 주로 비밀 정보를 탈취하는데 사용
- 수푸핌(Spoofing) : 일반적으로 IP 주소나 다른 식별자를 위장하여 다른 사용자나 시스템을 속이는 행위
인터페이스 보안 기능 적용
1) 네트워크 영역
- 인터페이스 송/ 수신 간 스니핑 등을 이용한 데이터 탈취 및 변조 위협 방지 위해 네트워크 트래픽에 대한 암호화 설정
- IPSec, SSL, S-HTTP 등 다양한 방식으로 적용
2) 애플리케이션 영역
- 시큐어코딩 가이드를 참조하여 애플리케이션 코드상 보안 취약점을 보완하는 방향으로 적용
3) DB 영역
- DB, 스키마, 엔티티의 전근 권한과 프로시저, 트리거 등 DB 동작 객체의 보안 취약점에 보안 기능을 적용
- 민감 데이터를 암호화, 익명화 등을 통해 데이터 자체 보안 방안도 고려
'용어 정리' 카테고리의 다른 글
정보처리기사[실기 핵심 정리] - 객체지향 설계 (0) 2024.04.13 정보처리기사[실기 핵심 정리] - 인터페이스 구현 검증 (0) 2024.04.11 정보처리기사[실기 핵심 정리] - 인터페이스 개요 및 설계서확인 (0) 2024.04.09 정보처리기사[실기 핵심 정리] - 배치 프로그램 구현 (0) 2024.04.08 정보처리기사[실기 핵심 정리] - 서버 프로그램 구현 (0) 2024.04.08