상세 컨텐츠

본문 제목

마이데이터서비스 적용된 정보통신기술 (웹소켓 통신 편)

정보통신

by ICT찐찐찐 2024. 5. 27. 13:31

본문

마이데이터서비스에 적용되는 정보통신기술 Key Words 중에서 웹소켓 통신에 대하여 살펴보겠습니다. 

미이데이터서비스의 정보통신기술

 

1. 개요

마이데이터서비스는 금융소비자 개인의 금융정보(신용정보)를 통합 및 관리하여 주는 서비스를 말합니다.

 

고객은 마이데이터 앱을 통해 개인신용정보전송요구권을 마이데이터사업자의 앱을 통해 금융회사로 하여금 필요한 정보 항목을 마이데이터사업자에 전송할 것을 요구하게 되고, 금융회사는 고객의 정보를 마이데이터사업자로 전달합니다.

 

고객은 마이데이터사업자를 통해 본인정보를 통합조회후 서비스를 이용합니다.

 

마이데이터서비스, 출처:마이데이터종합포털 <https://mydatacenter.or.kr:3441/myd/mydsvc/sub1.do>

 

마이데이터사업자와 정보제공자 간 개인신용정보 송수신 시 안정성과 신뢰성이 보장될 수 있도록 표준 API 규격을 준수하여야 하며, 데이터표현규격과 통신규격, 개인신용정보 전송요구 인증규격, 접근 토근 등에 관련한 표준규격을 사용하여야 합니다. 이런 세부 규격들이 모두 구현된 시스템의 마이데이터서비스를 운영하기 위해서는 기본적으로 TCP/IP기반웹소켓 통신을 이해할 필요가 있습니다. 이유는 다양한 엔드포인트(PC,모바일기기,PAD 등)를 통한 웹페이지를 접속하여 마이데이터 종합포털로 접속하여 사용하기 때문입니다.

 

2. 웹소켓 통신

2.1 마이데이터서비스에 적용된 정보통신기술 종류

마이데이터서비스 구성 및 절차, 출처:금융분야 마이데이터 기술 가이드라인 P30

 

고객은 제3자(정보제공자)에게 자신의 정보를 전송요구하기 위해 마이데이터사업자에게 정보전송요구를 위해 요청,인가,위임의 단계를 거치게 됩니다. 이런 7단계의 서비스에 적용된 다양한 정보통신기술은 아래와 같습니다.

마이데이터 서비스에 적용된 정보통신기술 키워드

 

이 키워드 중에서 웹소켓 통신을 상세하게 살펴봅니다.

 

2.2 웹소켓 통신

2.2.1 HTTP(Hyper Text Transfer Protocol)의 간략한 역사

HTTP / 0.9 (1991) = HTTP가 문서화된 최초의 버전, GET 메서드만 지원하며 HTTP 헤더가 없었던 시절
HTTP / 1.0 (1996) = 다른 HTTP method와 헤더 추가
HTTP / 1.1 (1997) = 기능적으로 완성된 버전. 이후의 버전들은 성능 향상에 초점을 맞춤
HTTP / 2.0 (2015) = 기존 버전의 문제점과 성능 개선
HTTP / 3.0 (2022) = 구글에서 개발한 QUIC 프로토콜을 사용하여 데이터 전송

 

HTTP는 인터넷상에서 웹브라우저를 표현할 수 있는 프로토콜로, 사람이 원하는 웹페이지를 컴퓨터가 알아볼 수 있도록 작성 표현하는(HTML)기술로, 서버와 클라이언트간 통신을 위한 애플리케이션 계층의 프로토콜로 TCP/IP 기반 위에서 동작합니다.

 

 2.2.2 웹소켓 통신 개요

Hyper Text의 의미는 Hyper란 초공간, Text는 문자로 이해한다면 초공간 문자로 각기 다른 웹을 넘나들면서 표현되고, 또는 링크된 다른 웹의 데이터를 접속하겠다는 의미가 됩니다. 클라이언트는 URI(특정자원표식)를 이용해서 서버에 접속하고, 서버는 그 요청을 데이터베이스에 질의하여 해당 답을 받고, 그 답을 클라이언트에게 응답하게 됩니다. 여기에서 그 응답을 하게 하는 프로토콜이 HTTP 이며, 여기에 양방향 전송기술과 보안기술(SSL/TLS)을 추가하여 웹소켓 통신을 하게 됩니다.

OSI7계층 : 보안 소켓 계층

 

웹개발을 처음 배우기 시작했다면 서버와 클라이언트의 통신은 모두 HTTP 프로토콜만 이용해서 이루어진다고 생각할 수 있습니다. 하지만, 웹 개발을 하면서 채팅, 게임, 주식 그래프 등의 실시간 통신이 필요한 서비스를 구현하려 하면 HTTP 프로토콜이 아닌 웹소켓 프로토콜을 사용하는 것이 좋다는 이야기를 흔히 찾아볼 수 있습니다. 웹 소켓이란 HTML5 표준 기술로, HTTP 환경에서 클라이언트와 서버 사이에 하나의 TCP 연결을 통해 실시산으로 전이중 통신을 가능하게 하는 프로토콜입니다. 여기서 전이중 통신이란 단방향 통신을 하는 HTTP와 달리, 클라이언트는 서버에게, 서버는 클라이언트에게 서로 요청하고 응답한다는 의미입니다. 즉, 요청하지 않아도 자동으로 변경된 정보를 보내줍니다.

 

2.2.3 통신원리

소켓통신은 TCP/IP 전송계층(4계층)에서 동작하며, 웹 소켓통신은 HTTP 계층인 응용계층(7계층)에서 동작합니다. 전송데이터 포맷관점에서 보면, TCP에 기반한 소켓통신은 단순히 바이트 스트림을 통한 데이터 전송이므로 Byte로 이루어진 데이터를 다루며, 웹 소켓통신은 7 계층에 기반해 메시지 형식의 데이터를 다룹니다.

http와 web socket 특징

 

 

웹소켓통신은 HTTP의 특징인 클라이언트-서버 구조와 Stateless(무상태) 프로토콜, 비연결성(접속 후 세션 유지 안 함)을 기본적으로 사용합니다. 클라이언트-서버 구조는 요청과 응답으로 양방향, HTTP Stateless방식을 사용하고, 비연결성(Connectionless)을 지원합니다. 이를 간단히 설명하면 아래와 같습니다.


클라이언트-서버 구조, 웹소켓통신은 양방향으로 서로의 정보 업데이트를 전송화여 최신정보를 제공합니다. 이 기능의 장점을 예로 들어 설명하면 “아이디 중복 체크” 기능입니다. 아이디를 설정하고 중복체크 하기를 클릭하면, HTTP는 별도의 팝업 창을 띄우거나, 액티브 X를 설치하라는 메시지가 나오는 경우입니다. 웹소켓 통신에서는 별도의 팝업이나, 액티브 X 설치 없이 아이디 중복체크 결과가 바로 표시됩니다.

 

Stateless(무상태) 프로토콜, 이 방식은 클라이언트의 요청 정보를 서버가 저장하지 않기 때문에, 서버 이중화가 가능하고, 서버를 Scale-out 방식으로 확장할 수 있습니다.

클라이언트의 상태정보를 클라이언트 자신이 저장하고, 서버는 저장하지 않는 방식으로 서비스를 하게 되면, 클라이언트의 서비스 요청을 부하가 걸리지 않은 다른 서버가 서비스하여도 서비스 연속성이 유지됩니다. 만일 Stateful 방식으로 서비스하는 경우에는 클라이언트의 상태 정보를 서버가 저장하게 되며, 클라이언트가 1번 서버에게 서비스를 요청하고, 재접속하는 경우와, 서비스 중, 시스템에 장애가 발생하는 경우, 서비스 연속성을 위해서는 동일한 서버가 해당 클라이언트의 요청을 수행해야 합니다.

 

비연결성(Connectionless)은 세션이 연결된후 서비스가 제공된 후 세션연결이 종료되는 방식입니다. 만일 연결성(Connection)으로 서비스가 되는 경우, 수많은 서버가 동시에 접속해서 서비스를 제공받은 후 세션이 끊어져야 하는데, 끊어지지 않고 계속 세션이 연결되어 있다면, 서버 자원이 고갈됩니다. 따라서, 서비스가 제공된 후에는 세션이 자동으로 끊어지는 방식인 비연결성(Connectionless) 방식으로 동작하여야 자원낭비를 최소화하여 다수의 접속자에게 서비스를 제공할 수 있습니다.

 

아이디 중복검사를 예를 들면, 이 경우 서버에게 중복 검사를 요청해야 하는데, 이 경우 회원정보 작성 중에 페이지를 이동할 수 없기 때문에 새로 요청한 페이지가 팝업창으로 띄워져 아이디 중복체크를 하는 경험게 하게 됩니다. 마이데이터서비스 종합포털에 접속하기 위해 인증을 받을 때 전화번호나 아이디 중복체크시 별도의 팝업이 뜨지 않고, 많은 접속으로 서버 부하가 많이 걸려있더라도, 앞선 접속자가 서비스를 제공받고 로그아웃 하였다면, 세션이 자동으로 끊어져 서버자원이 남아 다른 접속자 및 동시 접속자의 서비스 요청을 수행할 수 있게 됩니다.


이렇듯 웹소켓통신은 HTTP 통신의 특징을 이용하여, 조금 더 진화한 방식을 제공하게 됩니다. 더 진화한 방식은 JSON과 AJAX 를 이용하고, REST API 방식을 이용하여 구현되었습니다. 이 기능은 차후 다시 소개하겠습니다.

 

3. 웹소켓 통신 요약

http통신과 웹소켓 통신의 가장 큰 차이점은 단방향과 양방향 전송기술입니다.

http 통신과 socket 통신 차이점

 

4. 결론

웹소켓 통신은 기존 http의 단방향 통신에서 수행한 데이터의 최신화는 클릭을 통해 이루어 졌으나, 현재는 웹소켓 통신으로 데이터 업데이트를 자동화하고 서버와 클라이언트가 양방향 통신함으로써 데이터 최신화가 수행되고 있습니다. 이런 기술에는 JSON, AJAX 와 같은 소트트웨어가 사용되고 있습니다. JSON과 AJAX는 정보통신 영역이기보다는 정보관리기술에 해당되지만, 정보통신의 원리를 이용한 기술로 그 개념을 이해할 필요가 있습니다.


마이데이터서비스는 웹소켓 통신을 위해 전자서명기술의 보안기술이 적용되어 있으며, 보안영역에서는 SSL과 TLS를 정확히 이해하고 TLS 발전동향과 최근 웹에서 데이터를 암호화하고 안전한 통신을 제공하기 위해 SSL 시각화 검사장비가 사용되고 있음에 주목할 필요가 있습니다. 즉, 웹서비스 전체에 SSL을 통해 들어오는 전체 트래픽에 보안검사를 수행하여 웹 방화벽의 성능은 저하되지만, DDOS 공격과 다양한 사이버공격에 대비하고자 보안성능을 고도화하는 추세를 위한 보안영역 기술은 다음 기회에 다루도록 하겠습니다.

 

정보통신기술사 오진성

반응형

관련글 더보기