이벤트-버스 아키텍쳐 패턴(Event-bus Architectural pattern)은 4개의 주요 컴포넌트로 구성되어져 있는데, 이들 컴포넌트는 이름에서 예상되듯 이벤트를 다루는 컴포넌트 입니다. 이벤트 소스(event source) 이벤트 리스너(event listener) 채널(channel) 이벤트 버스(event bus) 아래의 그림에서 특정 채널을 통해 메시지가 메시지 버스를 통해 전달 되면, 리스너(listener)는 등록(subscribe)...
블랙보드 아키텍쳐 패턴(Blackboard Architectural pattern)은 Non-deterministic algorithm(비결정성 알고리즘)을 구현하는데 널리 이용되고 있습니다. Non-deterministic algorithm(비결정성 알고리즘)은 그 다음 단계의 결과가 실행할때마다 다르게 나올 수 있는 알고리즘을 의미합니다. 참고로 Deterministic algorithm(결정성 알고리즘)은 결과가 유니크(Unique)합니다. 즉, 특...
MVC(Model-view-controller) 아키텍쳐 패턴(Architectural pattern)은 웹 어플리케이션 개발에 주로 이용되는 아키텍쳐 패턴입니다. MVC는 다음의 3개 파트로 구성되어져 있습니다. 모델(model) - 기본 함수와 데이터를 포함합니다 뷰(view) - 정보를 사용자에게 보여줍니다. 웹페이지 그 자체를 생각하시면 될 것 같습니다 컨트롤러(controller) - 사용자로부터의 입력을 처리합니다 이 패턴의 기본 아이디어는 ...
P2P는 Peer-to-Peer의 줄임말입니다. P2P 아키텍쳐 패턴(Architectural pattern)에서 개개의 각각의 독립적인 컴포넌트를 피어(peer)라고 부릅니다. 각각의 피어는 클라이언트로서 다른 피어에게 서비스를 요청하면서 한편으로는 서버로서 요청받은 서비스를 동적으로 처리해주는 기능을 가집니다. 2000년대 초반에 많이 쓰이던 당나귀(eDonkey), 냅스터(Napster), 소리바다와 같은 소프트웨어가 P2P 아키텍쳐 패턴에 해당하며...
브로커아키텍쳐 패턴(Broker Architectural pattern)은 클라이언트-서버(Client-Server) / 마스터-슬레이브(Master-Slave) 처럼 역할이 분리된 컴포넌트(decoupled components)를 구조화하는데 주로 응용되는 패턴입니다. 여기서 브로커 컴포넌트는 컴포넌트간 통신(communication)을 조율(coordination) 하는 역할을 담당합니다. 클라이언트가 어떤 요청사항을 전달하면, 브로커가 중간에 받아서...
파이프-필터 아키텍쳐 패턴(Architectural pattern)은 웹로그와 같은 텍스트 기반의 데이터 또는 프로그램 소스 코드 등과 같은 데이터 스트림을 처리하는데 적합합니다. 각각의 프로세스는 필터 컴포넌트 내에서 처리되며, 데이터는 파이프를 통해 전달되어 처리되어집니다. 이러한 파이프는 버퍼링을 하거나 동기화 하는 목적으로 사용됩니다. 컴파일러, DNA정보 분석 소프트웨어가 파이프-필터 아키텍쳐 패턴(Architectural pattern)기반이라...
마스터-슬레이브 아키텍쳐 패턴(Master-Slave Architectural pattern)은 마스터(master)와 슬레이브(slave)로 구성되어져 있는데, 마스터는 일을 분배하는 역할을 가지고 있으며, 슬레이브는 전달된 기능을 수행합니다. 즉, 마스터(주인)이 업무를 지시하면, 슬레이브(하녀)는 그 일을 완료하여 결과물을 전달 하는 것입니다. 마스터-슬레이브 아키텍쳐 패턴(Master-Slave Architectural pattern)의 예로는 데...
클라이언트-서브 아키텍쳐 패턴(Client-Server Architectural pattern)은 서버와 다수의 클라이언트로 구성된 2-Tier Architecture입니다. 서버는 다수의 클라이언트 컴포넌트에게 서비스를 제공하고, 클라이언트는 서버로부터 서로 약속한 서비스를 받는 구조입니다. 따라서, 이 구조에서는 서버가 클라이언트로부터 지속적으로 요청을 받아 처리하도록 설계되어져 있습니다. 응용분야로는 TCP/IP를 기반으로하는 Clien...
레이어드 아키텍쳐 패턴(Layered architectural pattern)은 특정 수준의 추상화 된 레벨의 서브 펑션으로 구성된 스트럭쳐드 프로그램(Structure programs)에 널리 이용되고 있습니다. 각각의 레이어는 차상위 레벨의 레이어에게 서비스를 구성하도록 설계되어져 있는데, 통상 다음과 같이 4단계의 레이어를 이용하여 일반적인 정보 시스템을 구성하고는 합니다. Presentation layer (UI layer라고도 부름) Applic...
Machine Learning Tool의 종류는 어떤 것이 있고, 그 용도는 어떤 것으로 설계되었는지 살펴봅니다. 1. Tensorflow Google Brain Team에서 개발했고, Neural Network 및 Machine Learning에 대한 연구에 사용되고 있습니다. Gmail, 음성 인식, Google 포토 및 Google 검색과 같이 일상적으로 사용하는 인기있는 Google 서비스에는 Tensorflow가 탑재되어 있다고 합니다. Tens...
자연어 처리의 역사는 1950년대로 거슬러 올라가야 합니다. 당시 지금과 같은 컴퓨터 기술이 없었을때도 로봇이 사람의 말을 알아들을 수 있을까에 대한 의구심이 있었습니다. 또한 어떻게 하면 로봇이 사람의 말을 인지할 수 있을까에 대한 궁금증 또한 있었습니다. 인공지능의 가장 큰 도전과제는 어떻게 지식을 이해하고 표현할 것인가일 것입니다. 이해하는 것과 표현하는 것은 다를 것 같지만, 결국 그 둘의 공통분모는 이를 어떻게 정보화 할 것이냐에 대한 결과로 도...
스티브잡스 아이폰을 공개 할 당시 잡스는 제품을 공개함에 있어 어떤 쇼맨십을 발휘합니다. 이에 감명을 받은 국내 업체들이 이를 따라하기 시작합니다. 이거 왜 이러셔!? 우리도 스마트폰 만들 수 있어. 이것에 멈추지 않고, 삼성전자는 조금 더 큰 화면과 필기감이라는 무기로 좀더 큰 화면의 갤럭시 노트를 공개합니다. 이것 저것 블루 오션을 찾던 삼성전자는 타블렛까지도 도전합니다. 이것이 스티브잡스의 심기를 건드려 삼성전자는 애플(Apple)과 특허소송까지 하...
오늘은 Collaborative Filtering에 대해 간단히 정리해보려고 합니다. 업무상 이와 관련된 내용을 자주 접하지만, 어딘가 정리를 해서 놓을 필요가 있다는 생각이 들어 블로그에 올려봅니다. 참고로 이는 전혀 새로운 알고리즘이나 방법이 아니며, 이미 학술적으로도… 또한 업계에서도 널리 응용되고 있는 방법입니다. 본 포스트에서는 Collaborative Filtering에 대해 그 정의와 응용(Application)에 대해 간단히 소개하고자 합니...
지금 인터넷에 올라와 있는 것을 보면 아이폰과 아웃룩 싱크는 완전히 해결된것 같지 않다.여러 인터넷 포럼을 보면사람정보는 잘 가져오지만, 카렌다 등의 일정정보는 잘 가져오지 못한다고 주장한다.아마도 이것은 2G에서 많이 그랬던것 같은데이런저런 자료를 찾아보고 거기서 나온 결론을 보면iTunes는 7.7.1 이상을 설치해주면 되는것 같고, 여기서 아웃룩 세팅을 아래와 같이 지정해주면 된다.아이폰에서 아웃룩 싱크가 제대로 된다면 굳이 WinCE기반의 스마트폰...
애플의 새로운 킬러(Killer) 기기인 아이폰 광풍은 과연 태풍으로 진화할 것인가. 지난 6월 29일 미국 전역은 ‘아이폰(i-phone)’ 열풍에 빠져들었다.‘아이팟(i-pod)’으로 MP3 플레이어 시장을 평정했던 애플사의 야심작 아이폰이 이날 미 전역에 출시됐기 때문이다. 판매처 앞에서 줄을 선 사람들을 찍은 사진이 미국의 모든 미디어 매체를 도배했다. 아이폰은 휴대전화기와 MP3 재생 기능이 있는 복합기기로, 터치 스크린 방식(화면을 눌러서 메뉴...
아키텍쳐를 디자인하다 보면 2-Tier이냐 3-Tier이냐에 대한 질문을 까끔 듣습니다.이는 보통 Java개발자들에게서 많이 듣는 질문이기도 한데요. 왜냐하면 J2EE 어플리케이션이 2-Tier 또는 3-Tier로 구분되기 때문입니다.아래는 2-Tier 아키텍쳐의 사례입니다.위에서 보시면 클라이언트가 비즈니스로직과 데이터베이스로직, 그리고 UI까지 다 가지고 있는 구조라고 할 수 있습니다. 위의 그림상에서 보면 다음의 두개 티어(Tier)로 구성되어져 있...