멀티미디어와 엔터테인먼트 관련 일을 하시는 분들이라면 콘텐츠(Content)와 메타데이터(Metadata)라는 단어를 많이들 들어 보셨을 것입니다.엔터테인먼트 업계에서는 사람에게도 주민등록번호가 있듯이 콘텐츠에도 고유번호(콘텐츠 ID, Unique ID)를 부여하는 방안에 대해 다각도의 논의가 있어 왔는데요, 이러한 논의가 가장 많이 논의 된 분야는 방송업계입니다. 방송업계에서는 하루에도 여러 채널을 통해 다양한 프로그램이 방송되고 있는데, TV쇼나 영화...
마이크로 서비스 아키텍쳐(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이 저장소를 모니터링 하고 있다가, 뭔가 새로 변경된 것이 발견되면 소스코드를 다운로드하...
외국인회사에 있다 보면 개발자 채용시 아키텍쳐 설계 부분도 이야기를 하게 됩니다. 그러면 어떤 어프로치로 소프트웨어를 설계해야 하느냐에 대한 논의를 하게 됩니다.소프트웨어 개발/설계시 아키텍쳐링을 하다 보니 반복되는 패턴이 나오기 시작했고, 사람들은 이 패턴에 이름을 붙이기 시작했습니다. 즉, 아키텍쳐 패턴(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...
2016년 10월… 제가 종종 들르는 커뮤니티에 등장한 스크린샷입니다. 박수진씨가 배용준씨(욘사마)의 생일을 축하하기 위해 미역국과 잡채를 했다는 이야기인데…. 아름다운 모습이기는 하지만, 이게 무슨 속보로 보낼 뉴스 주제인가요? 어이 없는 뉴스보도로 댓글 또한 현란하네요. 혹자는 합성이 아니냐는 말씀까지…
미국 내 Pay-TV(케이블TV/위성TV) 사업자와 관련하여 흥미로운 조사 결과가 나왔습니다. 조사한 시점은 2016년 Q2입니다. 조사에 따르면 미국 넘버원 사업자는 역시 컴캐스트(Comcast)… 여기에 제가 처음 보는 사업자도 몇몇 있네요. 흥미로운 포인트 중의 하나는 최근 12개월간(2016년 Q2기준) Pay-TV 서비스를 끊은 가구 수가 무려 18%나 된다는 것. 이와 더불어 Pay-TV를 끊은 사람들의 51%가 지상파(Over-T...
자연어 처리의 역사는 1950년대로 거슬러 올라가야 합니다. 당시 지금과 같은 컴퓨터 기술이 없었을때도 로봇이 사람의 말을 알아들을 수 있을까에 대한 의구심이 있었습니다. 또한 어떻게 하면 로봇이 사람의 말을 인지할 수 있을까에 대한 궁금증 또한 있었습니다. 인공지능의 가장 큰 도전과제는 어떻게 지식을 이해하고 표현할 것인가일 것입니다. 이해하는 것과 표현하는 것은 다를 것 같지만, 결국 그 둘의 공통분모는 이를 어떻게 정보화 할 것이냐에 대한 결과로 도...
빅데이터(Big-Data)는 사용 성향을 분석하여 여기서 인사이트를 발굴하여 이익증가 내지는 사용성 개선을 하는데 많은 도움을 주었습니다. 실제로 이를 개발하는 사람은 이렇게 멋들어지는 일을 노가다성 업무로 하는 것이 사실입니다. 간단해 보이는 이 업무를 하기 위해 대량의 데이터를 다룰 수 있는 시스템을 구축해야 하고, 이를 분석해야 하고, 모델을 만들어야 하고, 여기서 인사이트를 도출해야 하고, 때로는 여기서 추천 내지는 대안까지도 제시해야 합니다. 심...
2015년 11월, 구글은 머신러닝(Machine Learning)이라는 기술을 공개했습니다. 사실 머신러닝은 구글이 최초로 만든 기술은 아닙니다, 구글이 그들의 소프트웨어를 공개하면서, 그들의 제품 이름이 아닌 대중이 알아듣기 좋은 적절한 이름으로 이미 업계에서 통용되고 있는 단어(머신러닝;Machine Learning)를 사용했습니다. 구글 머신러닝은 텐서플로(TensorFlow)라는 이름으로 오픈소스로 공개되었습니다. 구글의 머신러닝은 공부한 시간을...
한국이 어려워지는 이유는 한국의 고령화된 인구 구조에서 기인하는데요, 이는 출산율이 점점 낮아지는 것에서 비릇됩니다.예전에는 식구가 많아야 집이 집같다라는 인식이 있었지만, 근대화 이후 한국은 결혼 적정 연령이 늦어지고, 또 생산과 소비층의 중심이었던 세대가 노령화 인구로 이동하게 됨에 따라 내수가 정체되는 상황이 점차 현실화 되고 있습니다.세계적인 통계학자 한스 로슬링의 강연을 보시고 앞으로 한국이 나아가야 할 방향에 대해 한번 생각해 보시는 계기가 되...
조금 전 인텔의 클라우드 컴퓨팅 기술에 대해 잠시 리뷰를 하였습니다. 대다수의 기술 업체들이 그들의 제품에 이름을 붙이 듯 인텔에서도 이름을 붙였는데, 이를 Software-Defined Infrastructure(SDI)라고 명명했네요. 자세히 보면 VMWare나 Cetrix, 또는 Open Cloud Alliance 등이 하는 일들이 바로 이런 것 아닌가 싶은데요. 하여간 내용을 보면 기존에 노가다로 하던 인프라 관리를 소프트웨어적으로 스마트하게 할 ...
워라이(Wulai) 탐방 중 윤시엔 리조트(Yun Hsien Resort) 방 문 후 케이블카를 타고 내려와 기차를 타고 오니 뭔가 잊은 것 같은 생각이 들었습니다.아- 온천.워라이(Wulai)는 온천으로 유명한 곳입니다.온천이라고 해서 왔는데 온천 근처도 가지 못한 것이죠.생각보다 온천은 가까운 곳에 있었습니다.윤시엔 리조트(Yun Hsien Resort) 가는 길에 강을 건너는 다리가 하나 있는데, 워라이 로그 카트 타는 곳을 마주 보고 오른쪽으로 가...
2014년 10월 2일자 이데일리 기사에 한지혜의 꿀피부에 대한 기사가 사진과 함께 등장하였습니다. 얼마나 꿀 피부인지 좀더 살펴 보도록 합시다. 정말 사진에 얼굴이 번쩍번쩍 윤이 나는 것이 느껴지네요. 사진에서 꿀이 느껴지지 않나요? “꿀!! 꿀!! 꿀~” 그리고 인터넷에 꿀피부라는 키워드를 구글에서 검색 해 보았습니다. 위의 사진에 등장하는 첫번째 사진은 인터넷에 꿀피부녀라고 불리우시는 분입니다. 꿀~꿀~꿀~ 그리고 아래 사진은 2010년...
오늘은 Collaborative Filtering에 대해 간단히 정리해보려고 합니다. 업무상 이와 관련된 내용을 자주 접하지만, 어딘가 정리를 해서 놓을 필요가 있다는 생각이 들어 블로그에 올려봅니다. 참고로 이는 전혀 새로운 알고리즘이나 방법이 아니며, 이미 학술적으로도… 또한 업계에서도 널리 응용되고 있는 방법입니다. 본 포스트에서는 Collaborative Filtering에 대해 그 정의와 응용(Application)에 대해 간단히 소개하고자 합니...
사실 질문을 잘 하는 것도 기술인 것 같습니다. 회사를 다니다 보면 질문을 받은 사람이 뭘 질문했는지 못 알아 듣는 경우를 가끔 봅니다. 대개의 경우 자신과 같은 잣대로 질문을 해서 상대방이 못 알아 듣는 경우였는데요. 누가 내 질문을 받을 것이냐… 그것을 먼저 생각하셔야 합니다. 질문에도 기술이 있다고 이야기 드렸는데, 때로는 짧고 단순한 질문이 가장 명확한 답을 끌어내는 경향이 있습니다. 질문을 짧고 간단하게 할 수 있는 방법은 역시 ‘한...
나이는 숫자일 뿐… 이거 말은 쉽지만 현실의 세계에서는 그렇지 않죠. 그렇지만 이것을 몸소 실천하여 “나는 할 수 있다”를 보여주신 분이 계십니다. 다음의 이야기에 등장하는 김원곤님의 이야기를 감상 해 보시고, 여기서 인사이트(insight)를 얻어 보세요. 어느 95세 노인의 수기… 저도 읽어보고 싶네요. 여러분도 늦었다고 생각하시면 지금 해보세요. 적어도 후회는 하지 말도록 합시다.
메타라는 말은 다른 단어들과 덧붙여 사용할 때 "among", "together", "after"라는 뜻을 가집니다. 메타와 데이터가 합쳐져서 메타데이터가 되면 "데이터와 함께 다니는"의 뜻이 됩니다. 즉, 실제로 저장하고자 하는 데이터(예를 들면, 비디오, 오디오, 텍스트 등)는 아니지만, 이 데이터와 직접적으로 혹은 간접적으로 연관된 정보를 제공하는 데이터를 나타내는 말인데요, 일반적으로 메타데이터를 정의할 때 가장 많이 사용되는 표현으로는 다음과 같...
서울시 상암동 하늘공원 전망대에서는 매년 10월 즈음해서 억새축제를 합니다. 우리 가족은 주말을 이용하여 가족 나들이 코스로 상암동 억새축제에 가기로 했습니다. 우리 가족은 가족 여행 코스로 정했지만, 청춘남녀들이 손잡고 나들이 하는 데이트 코스이기도 한 것 같았습니다. 여기저기서 호호- 하면서 연인들끼리 사진 찍는 모습이 보이기도 했으니까요. 우리 강준휘 어린이… 벌써 아래와 같이 컸네요. 하늘공원 전망...
서버 인프라 설계시 장애를 최소하려는 시도를 아키텍쳐 측면에서 바라보면 다음과 같이 4가지 아키텍쳐가 존재합니다.Single InfraActive-Stand-byActive-ActiveActive-Stand-by/Active-Active + DR Center 그러면 각각을 하나하나 살펴 보겠습니다. 1. Single Infra일반적으로 대다수의 서비스들이 이 아키텍쳐를 기반으로 만들어졌다고 보시면 됩니다.이 아키텍쳐의 특징은 나름 확장성...
아키텍쳐를 디자인하다 보면 2-Tier이냐 3-Tier이냐에 대한 질문을 까끔 듣습니다.이는 보통 Java개발자들에게서 많이 듣는 질문이기도 한데요. 왜냐하면 J2EE 어플리케이션이 2-Tier 또는 3-Tier로 구분되기 때문입니다.아래는 2-Tier 아키텍쳐의 사례입니다.위에서 보시면 클라이언트가 비즈니스로직과 데이터베이스로직, 그리고 UI까지 다 가지고 있는 구조라고 할 수 있습니다. 위의 그림상에서 보면 다음의 두개 티어(Tier)로 구성되어져 있...