평소에 문서보기위해 잠시 지나가면서 보던 Spring Intergration을 접하게 되었습니다.
다름 아니라..... WAS에서 TCP로 항상 접속해서 API 연동해야하는 일이 생겼거든요.
그런데, 웹 특성상 Connected 이후 데이터 다 받으면 Close 하는게 일상이라 그런거 전혀 생각할 일이 없었죠.
(별도로 데몬 제작해서 Proxy역활을 시켜도 되지만, 제가 개발해서 데몬이 안죽일 자신이 없었어요.........)
아.. 그래서 그냥 단순하게 Bean을 만들어서 Spring 안에다 띄울까... 도 생각 해봤지만, 음... 예외처리라던지,
프로토콜 신경쓰는게 더 많고, 일정 시간마다 Ping Packet을 날려야 하는것도 그렇고
(Scheduler로 날리면 되긴 하지만요.)
가장 문제가 되는건 Queue입니다.
그... 소캣 프로그래밍 안해본지 거의 10년이 다되어가는데 TCP 소캣 서버가 두가지 방식이 있자나요?
특정 포트로 접속하면 다시 Redirect포트를 알려주고 그 포트로 접속하는것과 특정 포트 그냥 잡고 있는거.
근데 이번에 특정 포트를 그냥 잡고있어야하고...... 아무튼 쉽게 설명하자면 위에 설명했던 전자의 방식은 톨게이트는 1차선인데 톨게이트 빠저나가면 6만차전이고, 후자는 처음부터 끝까지 1차선입니다.
어쨋건 그래서 1차선 도로에 데이터를 잘 실어 보내야 하는데 가장 큰 문제는 통신도중에 다른 요청이 들어와서 또 통신해야하는 경우죠..
이때 사용중일경우 대기 타던가 Queue에 쌓아놓고 일단 빠져나야가 하는데, 돈관련된거라 Queue에 쌓아놓고 결과 안보고 나가면 안됩니다 -_-;;
그래서 Spring Integration쪽에 눈이 갔는데, 이녀석... 물건이네요...
메시지 + 체널 해당 체널을 방식이라 구독(subscribe)하고있는 녀석들에게 모두 메시지를 뿌려줄수 있습니다.
그리고 메시지 헤터만 필터해서 체널을 고를 수도 있고, 데이터 컨버팅도 구독자에 따라 다르게 적용할 수 있고, 여러개의 메시지를 하나로 가공해서 다른 체널에 던저 줄수도 있습니다.
이게.... 어따 쓰면 좋냐면요.
요즘 수많은 SNS들이 넘쳐나는데 블로그에 글 하나 틱 쓰면 수십개의 SNS로 날리고 싶을경우에 코딩도 아닌 그냥 xml 수십줄 끄적이면 알아서 포스팅 됩니다....
아님... 스마트폰의 경우 하나의 API를 뚫어놓고 iCloud, Google, 네이버 등에 연락처와 일정을 동시에 동기화 수도 있구요..
한마디로 종합 API같은거 만들때 상당히 유용합니다.
어쨋건, 생각지도 못한 API연동으로 또 새로운걸 알아가고 있네요 ㅎㅎ
조만간 지나가면서 Integration보다 더 많이본 Spring Boot 한번 알아보려구요.
Spring이랑 JBoss는 알면 알수록 엄청난 것들이 숨어있더라구요
#CLiOS
라이브러리들이 있고 maven땡기면
거의 복사 붙여넣기 수준으로 코딩할게
별로 없는거 같아요. 라이브러리도 계속
업데이트 되고요. 어노테이션 xml기반이라
잘만짜면 코딩할게 거의 없어요. Http,tcp관련
기능은 거의 100프로 지원하고 이미 능력자들이
테스트 다한 검증된 프레임워크인거 같아요.
스프링 내부로직은 아직 잘몰라요.
공부해봐야 겠네요.
멀티쓰레드 사용하면 논블락인거고...
(사실.. 쓰레드 사용하면 자연적으로 SocketFactory 사용하게 되면서 논블락이 되요)
약간 좀 하위 개념이 없어서 C랑 통신하면 예외상항이 꼭 하나씩 나오더라구요
까도까도 끝없이 나온다는....
양파링 먹고 싶네요
응..?
from CV