레이어드 아키텍쳐 패턴(Layered architectural pattern)은 특정 수준의 추상화 된 레벨의 서브 펑션으로 구성된 스트럭쳐드 프로그램(Structure programs)에 널리 이용되고 있습니다. 각각의 레이어는 차상위 레벨의 레이어에게 서비스를 구성하도록 설계되어져 있는데, 통상 다음과 같이 4단계의 레이어를 이용하여 일반적인 정보 시스템을 구성하고는 합니다. Presentation layer (UI layer라고도 부름) Applic...
저는 IT 기기에 관심이 많다보니 이것저것 희안한 것을 보면 써보고 싶어서 자주 사는 경향이 있는것 같습니다. 최근에는 신용카드 크기의 3G Phone을 하나 발견했는데, 이것을 살까 말까… 하다가 결제 전까지 갔다가 구매를 안했습니다. 제품 이름은 Talkase T3로, 국내에서도 사용 가능한 전화 기본기능만 되고 스마트한 기능은 전혀 안되는 이른바 키즈폰이라고 할 수 있습니다. 나중에 또 사고 싶다는 생각을 하게 될 가능성도 있지만… 오늘은 일단 잘 ...
ELear Tessera 제품… 중국 선전의 한 업체가 만든 제품으로 다른 나라에서 매우 인기 있는 제품입니다. 이 제품 세팅을 거의 할 일이 없는데, 가끔 세팅을 바꿔야 하면 메뉴얼 찾느라 시간을 다 허비하네요. 하여… 메뉴얼의 일부를 여기 올려 봅니다. 기능 설정을 하려면 전원을 켜고 Fire Button을 빠르게 3번 클릭하면 된다는 것. 그리고 가장 중요한 것 하나: 전원 on/off ...
마이크로 서비스 아키텍쳐(Micro Service Architecture)는 줄여서 MSA라고 부르며 서비스를 기능별로 작게 쪼개는 서버 아키텍쳐의 디자인 패턴으로, 기본 컨셉은 하나의 서비스는 한가지 일에 초점을 맞춘다는 것입니다. 또 다른 서비스와의 연계는 API로 구현합니다. 마이크로 서비스 아키텍쳐 구현 프로세스는 크게 4단계로 나눌 수 있는데, 구체적인 처리 절차는 다음과 같습니다. STEP 1. 기능별로 서비스 어플리케이션 구분 STEP 2. ...
인터넷 기반으로 서비스를 하는데 서버 없는 아키텍쳐가 있다고 하여 이를 올려 봅니다. 제목에 서버가 없다고 했지만, 서버가 아예 없는건 아닙니다. 정확한 표현은 최소화했다고 보는 것이 맞을 것 같습니다. 아래의 사례는 Amazon S3를 기반으로 하는 서비스 아키텍쳐 입니다. Amazon CloudFront를 통해 콘텐츠르 배포하고, Amazon API Gateway를 이용하여 필요한 기능은 AWS Lamda를 이용한 사례입니다. AWS La...
글로벌 비디오 서비스 강자인 넷플릭스는 아마존 AWS를 운영환경으로 사용합니다. 그들이 온라인 비디오 시장에서 티격태격하면서 경쟁하고 있지만, 아이러니하게도 넷플릭스는 아마존과 끈끈한 관계를 유지하고 있습니다. 아마도 아마존은 넷플릭스덕분에 그들의 아마존 프라임 비디오 서비스를 위한 환경 구축을 북미 전역에 쉽게 얻었을 것이라는 생각을 하게 만듭니다. 서비스 트래픽에 따라 서버 인스턴스를 늘렸다 줄였다 하는 오토스케일링(AWS Auto Scaling)을...
오라클 홈페이지에 가니 플러거블 스토리지 엔진 기반으로 동작하는 MySQL 아키텍쳐 그림을 볼 수 있었습니다. 플러거블(Pluggable)이라 함은 스토리지 방식을 선택할 수 있다는 것인데요. 이는 각각의 스토리지가 컴포넌트처럼 동작한다는 의미를 내포합니다. MySQL 5.5.5 이전 버젼에서는 MyISAM이 기본 스토리지 엔진이었습니다, 그런데 5.5.5부터는 InnoDB가 기본적으로 붙도록 바뀌었습니다. 쓰는 입장에서는 별 차이를 느낄 수 없을 것이라...
아틀라시안 뱀부(Atlassian Bamboo)는 CI(Continuous Integration) Tool입니다. 여기서 CI는 어플리케이션 소스가 변경되면 이를 자동으로 빌드하고, 테스트하고 서버에 배포까지 완료해주는 일련의 프레스를 자동으로 수행하는 것을 가능하게 해주는 툴입니다.일반적으로 개발자가 소스코드를 수정하여 소스코드 저장소에 올립니다. 이때 CI Tool이 저장소를 모니터링 하고 있다가, 뭔가 새로 변경된 것이 발견되면 소스코드를 다운로드하...
한경희 탁상용 미니 가습기를 샀습니다. 모델명은 HTM-300C입니다. 이 제품의 메뉴얼을 분실할 가능성이 많아 이렇게 블로그에 백업 해 봅니다. 제품설명서에도 명시가 되어져 있기는 하지만 설명서가 제 눈에는 잘 들어오지 않네요. 하여 간단히 동작을 여기에 적어 봅니다 제품 상단 버튼을 길게 누름 : LED 등 ON/OFF 제품 상단 버튼을 짧게 누름 : 가습기 ON > 가습기 절전모드 > 가습기 OFF 가습기 필터에 물이 흡수되지 않으면 가습기가 동작하...
외국인회사에 있다 보면 개발자 채용시 아키텍쳐 설계 부분도 이야기를 하게 됩니다. 그러면 어떤 어프로치로 소프트웨어를 설계해야 하느냐에 대한 논의를 하게 됩니다.소프트웨어 개발/설계시 아키텍쳐링을 하다 보니 반복되는 패턴이 나오기 시작했고, 사람들은 이 패턴에 이름을 붙이기 시작했습니다. 즉, 아키텍쳐 패턴(Archiectural Patterns)이라 함은 소프트웨어 디자인 패턴이라고 할 수 있습니다. 참고로 패턴(Pattern)=유형,종류 라고 간주하셔...
인터프리터 아키텍쳐 패턴(Interpreter Architectural pattern)은 프로그래밍 언어의 특정 구문을 해석/분석하는 컴포넌트 디자인에 많이 사용됩니다. 이 아키텍쳐의 기본 아이디어는 각각의 표현마다 클래스를 가지도록 하여 이를 조합하는 구조를 만드는 것입니다. 인터프리터 아키텍쳐 패턴(Interpreter Architectural pattern)은 SQL과 같은 Database Query Language 또는 특정 통신 프로토콜을 기술하...
블랙보드 아키텍쳐 패턴(Blackboard Architectural pattern)은 Non-deterministic algorithm(비결정성 알고리즘)을 구현하는데 널리 이용되고 있습니다. Non-deterministic algorithm(비결정성 알고리즘)은 그 다음 단계의 결과가 실행할때마다 다르게 나올 수 있는 알고리즘을 의미합니다. 참고로 Deterministic algorithm(결정성 알고리즘)은 결과가 유니크(Unique)합니다. 즉, 특...
MVC(Model-view-controller) 아키텍쳐 패턴(Architectural pattern)은 웹 어플리케이션 개발에 주로 이용되는 아키텍쳐 패턴입니다. MVC는 다음의 3개 파트로 구성되어져 있습니다. 모델(model) - 기본 함수와 데이터를 포함합니다 뷰(view) - 정보를 사용자에게 보여줍니다. 웹페이지 그 자체를 생각하시면 될 것 같습니다 컨트롤러(controller) - 사용자로부터의 입력을 처리합니다 이 패턴의 기본 아이디어는 ...
이벤트-버스 아키텍쳐 패턴(Event-bus Architectural pattern)은 4개의 주요 컴포넌트로 구성되어져 있는데, 이들 컴포넌트는 이름에서 예상되듯 이벤트를 다루는 컴포넌트 입니다. 이벤트 소스(event source) 이벤트 리스너(event listener) 채널(channel) 이벤트 버스(event bus) 아래의 그림에서 특정 채널을 통해 메시지가 메시지 버스를 통해 전달 되면, 리스너(listener)는 등록(subscribe)...
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...
Machine Learning Tool의 종류는 어떤 것이 있고, 그 용도는 어떤 것으로 설계되었는지 살펴봅니다. 1. Tensorflow Google Brain Team에서 개발했고, Neural Network 및 Machine Learning에 대한 연구에 사용되고 있습니다. Gmail, 음성 인식, Google 포토 및 Google 검색과 같이 일상적으로 사용하는 인기있는 Google 서비스에는 Tensorflow가 탑재되어 있다고 합니다. Tens...
자연어 처리의 역사는 1950년대로 거슬러 올라가야 합니다. 당시 지금과 같은 컴퓨터 기술이 없었을때도 로봇이 사람의 말을 알아들을 수 있을까에 대한 의구심이 있었습니다. 또한 어떻게 하면 로봇이 사람의 말을 인지할 수 있을까에 대한 궁금증 또한 있었습니다. 인공지능의 가장 큰 도전과제는 어떻게 지식을 이해하고 표현할 것인가일 것입니다. 이해하는 것과 표현하는 것은 다를 것 같지만, 결국 그 둘의 공통분모는 이를 어떻게 정보화 할 것이냐에 대한 결과로 도...
조금 전 인텔의 클라우드 컴퓨팅 기술에 대해 잠시 리뷰를 하였습니다. 대다수의 기술 업체들이 그들의 제품에 이름을 붙이 듯 인텔에서도 이름을 붙였는데, 이를 Software-Defined Infrastructure(SDI)라고 명명했네요. 자세히 보면 VMWare나 Cetrix, 또는 Open Cloud Alliance 등이 하는 일들이 바로 이런 것 아닌가 싶은데요. 하여간 내용을 보면 기존에 노가다로 하던 인프라 관리를 소프트웨어적으로 스마트하게 할 ...
오늘은 Collaborative Filtering에 대해 간단히 정리해보려고 합니다. 업무상 이와 관련된 내용을 자주 접하지만, 어딘가 정리를 해서 놓을 필요가 있다는 생각이 들어 블로그에 올려봅니다. 참고로 이는 전혀 새로운 알고리즘이나 방법이 아니며, 이미 학술적으로도… 또한 업계에서도 널리 응용되고 있는 방법입니다. 본 포스트에서는 Collaborative Filtering에 대해 그 정의와 응용(Application)에 대해 간단히 소개하고자 합니...
예비군 홈페이지에 연차별/신분별 예비군 훈련 시간이 올라와 이를 올려 봅니다. 2014년 3월 3일 기준으로 말씀 드리면 병 1-6년차는 연간 160시간의 예비군 훈련을 이수해야 하는데, 1-4년차의 동원지정자는 2박3일의 동원훈련을 해야 합니다. ROTC 등 간부 전역자의 경우는 어김 없이 2박3일의 동원훈련을 해야 한다고 합니다.
서버 인프라 설계시 장애를 최소하려는 시도를 아키텍쳐 측면에서 바라보면 다음과 같이 4가지 아키텍쳐가 존재합니다.Single InfraActive-Stand-byActive-ActiveActive-Stand-by/Active-Active + DR Center 그러면 각각을 하나하나 살펴 보겠습니다. 1. Single Infra일반적으로 대다수의 서비스들이 이 아키텍쳐를 기반으로 만들어졌다고 보시면 됩니다.이 아키텍쳐의 특징은 나름 확장성...
여행의 시작과 끝은 항공이다. 그렇기에 항공권은 여행의 일정을 결정짓는 무엇보다 중요한 수단이다. 이번주는 질문과 답변을 통해 항공권에 대해 한번 알아보자. 이름하여 ‘질문과 답변으로 살펴보는 항공권 바로 알기’.-항공권을 예약한 후 취소하면 수수료를 내야 하나요?▲항공권을 예약만 한 상태에서는 특별한 경우를 제외하고는 예약이나 변경, 취소에 따른 수수료는 없습니다. 다만 발권 후 환불하게 되면 항공권 발권 때 명시된 항공사, 여행사별 환불조건을 따라야 ...
동원 예비군 훈련은 나오면 왠만하면 그냥 가십시오.그래도 연기를 하고자 하시는 분들을 위한 연기 사유 및 처리 기준은 다음과 같습니다. 연기사유 처 리 기 준 구 비 서 류 1.질병또는 심신장애 가 있는 사람ㅇ 기동이 불능한 사람 ㅇ 정신질환이 있는 사람으로서 보호나 감시를 요하는사람 ㅇ 외관상 명백한 질병 또는 심신장애가 있는 사람 ㅇ 기타 질병 또는 심신장애...
이사나 직장 변경 등으로인한 예비군 전출입 신청절차는 다음과 같다.사 유 신 고 절 차 지역예비군이 거주지를 이동할 때 예비군 대원은 거주지 이동시 작성한 주민등록 전입신고로서 예비군 대원신고를 한 것으로 봄 지역예비군에서 직장예비군으로 편입할 때 직장장은 직장예비군에 편성하고 편성사실은 3일이내 직장소재지 지방병무(지)청장에게 통보함과 동시에 지역예비군 지휘관에게 직...
아키텍쳐를 디자인하다 보면 2-Tier이냐 3-Tier이냐에 대한 질문을 까끔 듣습니다.이는 보통 Java개발자들에게서 많이 듣는 질문이기도 한데요. 왜냐하면 J2EE 어플리케이션이 2-Tier 또는 3-Tier로 구분되기 때문입니다.아래는 2-Tier 아키텍쳐의 사례입니다.위에서 보시면 클라이언트가 비즈니스로직과 데이터베이스로직, 그리고 UI까지 다 가지고 있는 구조라고 할 수 있습니다. 위의 그림상에서 보면 다음의 두개 티어(Tier)로 구성되어져 있...