Websocket Proxy

Websocket proxy가 필요한 케이스가 생겼다. 일반적으로는 독립된 proxy server를 통해 지원하면 되지만, Servlet단에서 지원을 해야 하는 상황이다. 아래의 그림처럼 제공되는 것이 중간의 Gateway를 통해 Communication이 되어야 하는 상황이다. 아래의 그림처럼 중간에 다른 서버를 거쳐야 한다. 가장 편하게 할 수 있는 방법은 jetty-proxy library를 이용하는 방법이다. 이미 구현체가 존재하기 때문에, 필요한 부분만 customizing하여 Servlet으로 등록하면 된다.

더보기

Serverless의 시대

Cloud Computing의 발전으로 인해 과거와는 달리 더 이상 많은 인력이 필요없게 되는 것 같다. 구글 트렌드에서 “programmer”와 “software engineer”의 검색량을 2004년 부터 현재까지 추출해보았다. 점점 검색량이 줄어들고 있다. 예전에는 리눅스 전문가, DB 전문가, Backend 전문가, Frontend 전문가 등등이 필요했지만, 이제는 적은 인력으로 충분히 해결 가능하다. 이런 현상이 발생한 이유중에 하나는 “Serverless” 일 것이다. (아직 초창기이긴 하지만…) Serverless는 서버가 없다라는 의미가 아니고, 관리해야 할 Server가 0으로 수렴한다는 의...

더보기

MQTT Borker 선정 고려사항

MQTT Broker를 선정시 고려할 사항을 정리합니다. MQTT는 서비스 품질(QoS)에 대해서 3가지 레벨의 신뢰성을 제공합니다. 일반적으로는 QoS 0를 선택하고, Application Level에서 처리하고 있습니다. QoS Level 0 (최대 한번): 기본 전송 모드, 가장 빠른 모드 QoS Level 1 (최소 한번): 중복 메시지가 전달 될 수 있음 QoS Level 2 (정확히 한번): 가장 느린 모드 MQTT 보안에는 크게 Authentication, Authorization 부분과 Network 그리고 Payload 검증 부분으로 나눠집니다. 위의 3가지 요소중에 Cl...

더보기

Maven과 Ant

현재 진행중인 프로젝트는 폐쇄적이다. 다시말하면 폐쇄망 환경이다. Maven의 Central Repository는 꿈도 꾸지 못하는 환경이다. 내부 Nexus를 통해서 3rd party library를 지원해야 한다. 이런 환경에서 굳이 Maven을 사용해야 하는지에 대해서 의구심을 가지는 사람들이 있다. Ant와 Maven중 어느 것이 더 나은가?는 논쟁거리이지만, 본 글에서는 몇 가지의 차이점을 명확히 하고자 한다. Ant는 고전이다. 빌드 프로세스로서는 훌륭하다. Ant는 빌드 프로세스만 정의한다. Ant는 생명주기를 가지지 않는다. 목표에 대한 의존 관계를 정의해야 하며, 각 목표에 대한 작업...

더보기

DPDK (Data Plane Development Kit) 란?

오늘날 네트워크 기술은 널리 활용되고 있고, 전용 네트워크 어플라이언스 장비들을 가상화 네트워크에서 동작 시키기 위한 NFV(Network Function Virtualization) 기술이 각광을 받고 있습니다. NFV는 기존 장비들을 동일한 성능에서 지원한다라는 전제 조건이 있습니다. 일반적으로 우리가 Native환경에서 어떤 프로그램을 사용하는 것과 가상화 환경에서 사용할 경우에는 Performance의 Gap이 존재하게 됩니다. DPDK는 Intel에서 개발한 고성능 패킷 처리 소프트웨어로 고속 패킷 처리를 위한 라이브러리와 드라이버를 제공하고 NFV의 네트워크 성능을 높이기 위한 핵심 기술입니다. ...

더보기

Command pattern (커맨드 패턴)

옆에 계신 정모 부장님이 요 근래에 Batch 관련 가이드를 준비하고 계신다. 모듈당 N개의 Batch 프로그램이 있다고 하면, 각각 Executable 형태로 제공하는 것이 좋을 것인가? 아니면 관리적 측면에서 Grouping 하여 제공하는 것이 좋을 것인가에 대한 의견이 분분하다. 이런 경우에는 각 모듈별로 하나의 Batch 프로젝트를 구성하고 수행해야 할 Job Method 호출을 캡슐화(Encapsulation) 하는 것에 대해서 공감대가 형성되었다. http://kapilnevatia.blogspot.kr/2011/11/command-pattern.html

더보기

스몰월드 효과

지인의 지인이 지인일 확률이 높은 이유는 무엇일까? 한 사람이 일반적으로 몇 명이나 알고 있을까? 이 질문에 대해 미국인과 일본인을 대상으로 설문조사가 실시되었다고 한다. 그 결과 평균 지인 수는 미국인은 200–300명, 일본인은 150명 정도였다. 스몰 월드 효과란 모르는 사람을 최종 목표로 설정하고 지인만을 이용하여 연락을 취할경우 5–6명을 거치면 목표 인물에 도달할 수 있다는 실험 결과에서 나온 개념이다. 친구와 지인은 어떻게 정의할 수 있을까? 어떤 사람은 술잔을 주고 받으면 친구라 여길 것이고, 어떤 사람은 인사만 나누는 사이면 친구라 여길 것이다. 이처럼 관계에 대한 정의는 사람마다 주관적일 것...

더보기

베이커 넘버 (The Oracle of Bacon)

좀 오래된 얘기지만 버지니아 대학에서 만든 “The Oracle of Bacon(http://oracleofbacon.org)”사이트가 있다. 이 사이트는 일종의 영화배우에 대한 데이터베이스이다. 영화에 출연한 배우이름을 입력하면 Bacon Number를 알려준다. Bacon Number의 의미는 영화배우 “케빈 베이컨”과 함께 영화에 출연했는지에 대한 여부와 출연 횟수를 기준으로 둘 사이의 거리를 측정하고 그 배우가 케빈 베이컨까지 몇 단계만에 연결이 되는지를 나타내는 수이다. 헝가리의 수학자 폴 에르되시(Paul Erdos)는 세계 각국의 수학자들과 공동 연구를 하였고 발표한 논문은 약 1500편이다....

더보기