글로벌 비디오 서비스 강자인 넷플릭스는 아마존 AWS를 운영환경으로 사용합니다. 그들이 온라인 비디오 시장에서 티격태격하면서 경쟁하고 있지만, 아이러니하게도 넷플릭스는 아마존과 끈끈한 관계를 유지하고 있습니다. 아마도 아마존은 넷플릭스덕분에 그들의 아마존 프라임 비디오 서비스를 위한 환경 구축을 북미 전역에 쉽게 얻었을 것이라는 생각을 하게 만듭니다. 서비스 트래픽에 따라 서버 인스턴스를 늘렸다 줄였다 하는 오토스케일링(AWS Auto Scaling)을...
마이크로 서비스 아키텍쳐(Micro Service Architecture)는 줄여서 MSA라고 부르며 서비스를 기능별로 작게 쪼개는 서버 아키텍쳐의 디자인 패턴으로, 기본 컨셉은 하나의 서비스는 한가지 일에 초점을 맞춘다는 것입니다. 또 다른 서비스와의 연계는 API로 구현합니다. 마이크로 서비스 아키텍쳐 구현 프로세스는 크게 4단계로 나눌 수 있는데, 구체적인 처리 절차는 다음과 같습니다. STEP 1. 기능별로 서비스 어플리케이션 구분 STEP 2. ...
인터넷 기반으로 서비스를 하는데 서버 없는 아키텍쳐가 있다고 하여 이를 올려 봅니다. 제목에 서버가 없다고 했지만, 서버가 아예 없는건 아닙니다. 정확한 표현은 최소화했다고 보는 것이 맞을 것 같습니다. 아래의 사례는 Amazon S3를 기반으로 하는 서비스 아키텍쳐 입니다. Amazon CloudFront를 통해 콘텐츠르 배포하고, Amazon API Gateway를 이용하여 필요한 기능은 AWS Lamda를 이용한 사례입니다. AWS La...
오라클 홈페이지에 가니 플러거블 스토리지 엔진 기반으로 동작하는 MySQL 아키텍쳐 그림을 볼 수 있었습니다. 플러거블(Pluggable)이라 함은 스토리지 방식을 선택할 수 있다는 것인데요. 이는 각각의 스토리지가 컴포넌트처럼 동작한다는 의미를 내포합니다. MySQL 5.5.5 이전 버젼에서는 MyISAM이 기본 스토리지 엔진이었습니다, 그런데 5.5.5부터는 InnoDB가 기본적으로 붙도록 바뀌었습니다. 쓰는 입장에서는 별 차이를 느낄 수 없을 것이라...
아틀라시안 뱀부(Atlassian Bamboo)는 CI(Continuous Integration) Tool입니다. 여기서 CI는 어플리케이션 소스가 변경되면 이를 자동으로 빌드하고, 테스트하고 서버에 배포까지 완료해주는 일련의 프레스를 자동으로 수행하는 것을 가능하게 해주는 툴입니다.일반적으로 개발자가 소스코드를 수정하여 소스코드 저장소에 올립니다. 이때 CI Tool이 저장소를 모니터링 하고 있다가, 뭔가 새로 변경된 것이 발견되면 소스코드를 다운로드하...
외국인회사에 있다 보면 개발자 채용시 아키텍쳐 설계 부분도 이야기를 하게 됩니다. 그러면 어떤 어프로치로 소프트웨어를 설계해야 하느냐에 대한 논의를 하게 됩니다.소프트웨어 개발/설계시 아키텍쳐링을 하다 보니 반복되는 패턴이 나오기 시작했고, 사람들은 이 패턴에 이름을 붙이기 시작했습니다. 즉, 아키텍쳐 패턴(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...
레이어드 아키텍쳐 패턴(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...
미국 내 Pay-TV(케이블TV/위성TV) 사업자와 관련하여 흥미로운 조사 결과가 나왔습니다. 조사한 시점은 2016년 Q2입니다. 조사에 따르면 미국 넘버원 사업자는 역시 컴캐스트(Comcast)… 여기에 제가 처음 보는 사업자도 몇몇 있네요. 흥미로운 포인트 중의 하나는 최근 12개월간(2016년 Q2기준) Pay-TV 서비스를 끊은 가구 수가 무려 18%나 된다는 것. 이와 더불어 Pay-TV를 끊은 사람들의 51%가 지상파(Over-T...
허걱- 정말 악마가 온거임? 그런데 악마의 그림자가 어딘가 어설픕니다. 작품 제작시 비용절감을 매우 많이 하신 듯요. 악마와 세가지 소원이라… 여기서 한가지 주시 할 점은… 뭔가 해주되 담보를 받네요. 경제관념이 투철한 악마입니다. 얼씨구…. 이건 또 무슨 시츄에이션? 엥? 악마가 중역으로 등장하나요? 간절한 소원이라… 왠지 쨘- 한데요? 이건 정말 예상하지 못했던 황당한 시츄에이션인데요? 결국 자신의 ...
자연어 처리의 역사는 1950년대로 거슬러 올라가야 합니다. 당시 지금과 같은 컴퓨터 기술이 없었을때도 로봇이 사람의 말을 알아들을 수 있을까에 대한 의구심이 있었습니다. 또한 어떻게 하면 로봇이 사람의 말을 인지할 수 있을까에 대한 궁금증 또한 있었습니다. 인공지능의 가장 큰 도전과제는 어떻게 지식을 이해하고 표현할 것인가일 것입니다. 이해하는 것과 표현하는 것은 다를 것 같지만, 결국 그 둘의 공통분모는 이를 어떻게 정보화 할 것이냐에 대한 결과로 도...
넷플릭스(Netflix)가 2016년 1월 CES에서 글로벌 가격 전략을 발표했을 때 많은 사람들이 놀랐습니다.넷플릭스(Netflix)는 전세계 130개국에서 8불에 HD급 화질의 비디오를 사용할 수 있도록 하겠다고 했습니다. 참고로 두대 이상의 기기에서 사용하는 경우는 월 12불 이상을 지불해야 합니다.이 요금은 선진국에서는 합리적이지만, 그렇지 않은 나라에서는 적절하지 않은 가격으로 보입니다. 따라서 가격은 가까운 미래에 조정 될 가능성이 높지만, 현...
빅데이터(Big-Data)는 사용 성향을 분석하여 여기서 인사이트를 발굴하여 이익증가 내지는 사용성 개선을 하는데 많은 도움을 주었습니다. 실제로 이를 개발하는 사람은 이렇게 멋들어지는 일을 노가다성 업무로 하는 것이 사실입니다. 간단해 보이는 이 업무를 하기 위해 대량의 데이터를 다룰 수 있는 시스템을 구축해야 하고, 이를 분석해야 하고, 모델을 만들어야 하고, 여기서 인사이트를 도출해야 하고, 때로는 여기서 추천 내지는 대안까지도 제시해야 합니다. 심...
2015년 11월, 구글은 머신러닝(Machine Learning)이라는 기술을 공개했습니다. 사실 머신러닝은 구글이 최초로 만든 기술은 아닙니다, 구글이 그들의 소프트웨어를 공개하면서, 그들의 제품 이름이 아닌 대중이 알아듣기 좋은 적절한 이름으로 이미 업계에서 통용되고 있는 단어(머신러닝;Machine Learning)를 사용했습니다. 구글 머신러닝은 텐서플로(TensorFlow)라는 이름으로 오픈소스로 공개되었습니다. 구글의 머신러닝은 공부한 시간을...
멀티미디어와 엔터테인먼트 관련 일을 하시는 분들이라면 콘텐츠(Content)와 메타데이터(Metadata)라는 단어를 많이들 들어 보셨을 것입니다.엔터테인먼트 업계에서는 사람에게도 주민등록번호가 있듯이 콘텐츠에도 고유번호(콘텐츠 ID, Unique ID)를 부여하는 방안에 대해 다각도의 논의가 있어 왔는데요, 이러한 논의가 가장 많이 논의 된 분야는 방송업계입니다. 방송업계에서는 하루에도 여러 채널을 통해 다양한 프로그램이 방송되고 있는데, TV쇼나 영화...
조금 전 인텔의 클라우드 컴퓨팅 기술에 대해 잠시 리뷰를 하였습니다. 대다수의 기술 업체들이 그들의 제품에 이름을 붙이 듯 인텔에서도 이름을 붙였는데, 이를 Software-Defined Infrastructure(SDI)라고 명명했네요. 자세히 보면 VMWare나 Cetrix, 또는 Open Cloud Alliance 등이 하는 일들이 바로 이런 것 아닌가 싶은데요. 하여간 내용을 보면 기존에 노가다로 하던 인프라 관리를 소프트웨어적으로 스마트하게 할 ...
오늘은 Collaborative Filtering에 대해 간단히 정리해보려고 합니다. 업무상 이와 관련된 내용을 자주 접하지만, 어딘가 정리를 해서 놓을 필요가 있다는 생각이 들어 블로그에 올려봅니다. 참고로 이는 전혀 새로운 알고리즘이나 방법이 아니며, 이미 학술적으로도… 또한 업계에서도 널리 응용되고 있는 방법입니다. 본 포스트에서는 Collaborative Filtering에 대해 그 정의와 응용(Application)에 대해 간단히 소개하고자 합니...
서버 인프라 설계시 장애를 최소하려는 시도를 아키텍쳐 측면에서 바라보면 다음과 같이 4가지 아키텍쳐가 존재합니다.Single InfraActive-Stand-byActive-ActiveActive-Stand-by/Active-Active + DR Center 그러면 각각을 하나하나 살펴 보겠습니다. 1. Single Infra일반적으로 대다수의 서비스들이 이 아키텍쳐를 기반으로 만들어졌다고 보시면 됩니다.이 아키텍쳐의 특징은 나름 확장성...
2008년 1월 30일자 서울신문 인터넷판에서는 대통령직 인수위원회와 행정자치부가 부처 통폐합 과정에서 현행 법률상 일반직 공무원도 직권면직시킬 수 있음에도 불구, 이를 적용하지 않고 있는 것으로 확인됐다고 한다.이는 인수위가 조직 통폐합으로 발생하는 초과인원 처리와 관련,‘법적으로 직위가 없어지면 즉시 해직된다.’는 원칙을 별정직·계약직 공무원에게만 강요하고 있음을 의미하는 것으로 국민의 혈세로 운영되는 공무원이 구조조정을 통해 비용을 절감하겠다는 취지...
온 몸이 분홍색인 돌고래가 미국 루이지애나주에서 발견됐다고 미국 폭스 뉴스가 3일 보도했다. 이 분홍돌고래는 지난달 24일 루이지애나주 남서부의 멕시코만 북쪽 칼카슈 호수에서 낚시 보트 선장인 에릭 루에 의해 촬영됐다. 루 선장은 이날 낚시꾼들을 태우고 항해 중 자신의 보트 주위에 몇 마리의 돌고래들이 몰려들었다고 밝혔다. 이는 평범한 색깔의 돌고래들 틈에 분홍색이 선명한 빨간 눈을 가진 ‘핑크 돌고래’가...
아키텍쳐를 디자인하다 보면 2-Tier이냐 3-Tier이냐에 대한 질문을 까끔 듣습니다.이는 보통 Java개발자들에게서 많이 듣는 질문이기도 한데요. 왜냐하면 J2EE 어플리케이션이 2-Tier 또는 3-Tier로 구분되기 때문입니다.아래는 2-Tier 아키텍쳐의 사례입니다.위에서 보시면 클라이언트가 비즈니스로직과 데이터베이스로직, 그리고 UI까지 다 가지고 있는 구조라고 할 수 있습니다. 위의 그림상에서 보면 다음의 두개 티어(Tier)로 구성되어져 있...