맵-리듀스(Map-Reduce)는 구글이 분산 컴퓨팅을 지원하기 위한 목적으로 제작하여, 2004년 발표한 소프트웨어 프레임워크입니다. 이 프레임워크는 대용량 데이터를 신뢰할 수 없는 컴퓨터로 구성된 분산 클러스터 환경에서 대규모 데이터를 병렬로 처리하기 위해 개발되었습니다. 맵-리듀스의 혁신적인 부분은 데이터 집합에 대한 쿼리를 입력 받아, 분할 한 후, 여러개의 노드에서 병렬로 처리하는데 있습니다. 이러한 분산 처리는 단일 장비에서 처리하기에는 부적합한 대규모 데이터 처리 문제를 해결합니다. [ 분산 환경에서의 Map-Reduce 실행 ] 위의 그림은 네임노드(NameNode)의 잡트랙커(JobTracker)가 데이터노드(DataNode)의 테스크트랙커(TaskTracker)에게 일을 분배해 주는 개..
플랫폼(Platform)이란? ‘플랫폼 전성시대’라는 말을 들어보셨나요?! 플랫폼이라는 용어는 IT업계에서 뿐만 아니라 각종 신문기사나 뉴스에서 많이 보셨을 거라고 생각되는데요! 그렇다면 소프트웨어 업계에서 플랫폼이란 어떻게 정의할 수 있으며, 그 영향력은 어떨까요? 금번 포스팅에서는 플랫폼에 대해 알아보고자 합니다-! 플랫폼(Platform)은 Plat(평평한 땅, 라틴어 어원 : plate)과 form(형태, 라틴어 어원 : forme)가 합쳐진 말로 단상, 무대 혹은 기차역에서 사람들이 타고 내리기 위한 평평한 땅을 일컫는 말입니다. 즉, 일반적으로는 (뉴스 기사 등에서 많이 보시는 용어는) 어떠한 기반이 되는 장(帳) 혹은 기초가 되는 틀/규격 등을 말합니다. 핸디소프트 등의 IT 업계에서 말하는..
SaaS, PaaS, IaaS ?! SaaS란 무엇일까요?! 들어본 적이 없으신 분들도 있을 테고, 클라우드와 IT에 관심이 있는 분들 중에서도 정확한 개념을 알고 싶으신 분들을 위해! SaaS, PaaS, IaaS의 개념과 차이점에 대해서 알아보고자 합니다-!! 먼저, 클라우드에 대해서 짚고 넘어가겠습니다. ∙ 클라우드가 뭐예요? - “ 클라우드 컴퓨팅(cloud computing)은 인터넷 기반(cloud)의 컴퓨팅(computing) 기술을 의미한다. 인터넷 상의 유틸리티 데이터 서버에 프로그램을 두고 그때 그때 컴퓨터나 휴대폰 등에 불러와서 사용하는 웹에 기반한 소프트웨어 서비스이다.” [위키백과 발췌] - 위와 같이, 많은 분들이 스마트폰과 통신사와 포탈에서 제공하는 서비스로 접하셨던 그 ‘클라..
빅데이터란 과연 무엇인가? 기존 데이터에 비해 방대하게 커진 데이터를 말한다. 하둡 프로그래밍(Hadoop Programming)은 빅데이터 시스템중 하나로 빅데이터의 기술 처리를 위해 태어난 분산파일시스템이다. 하둡은 분산파일 시스템과, 맵리듀스(mapreduce)로 구성되어있다. 하이브(hive)는 하둡프로그램을 쉽게 처리하기 위한 솔루션이다. 또한 데이터베이스들을 담고 있는 윈도 레지스트리(Windows Registry)에서 가장 높은 수준의 조직을 일컫기도 한다. 하이브는 하둡을 데이터웨어하우스(DW)로 운영할 수 있게 해주며, 수많은 레지스트리의 논리를 구분할 때 사용할 수 있다는 강점이 있다. R프로그래밍은 통계학 정보를 처리하는 분석 과정이며, 통계 계산과 그래픽을 위한 프로그램 언어이자 소..
ZigBee는 IEEE802.15.4기반의 저속, 저전력, 저가의 무선개인영역 통신 기술 ZigBee는 저전력, 저가격, 사용의 편리성을 가진 근거리 무선네트워크의 대표적 기술 중의 하나로 IEEE 802.15.4 표준의 PHY층과 MAC층을 기반으로 상위 프로토콜 (Protocal)과 응용을 규격화한 기술로 원격제어 및 관리의 응용에 적합한 홈 오토메이션 등의 적용되며, 유비쿼터스 센서 네트워크 환경 구축에 중추적 역할을 담당할 기술이다. ZigBee는WPAN의 국제표준 중의 하나로 무선이 갖는 장점 뿐만 아니라 구조까지 간단해서 크기가 작으며 설계가 쉽고 개발비용도 적게 든다. 칩셋 가격이 $1정도로 낮아질 전망이며, 저 전력인 반면 통신은 매우 안정적이다. 최근 홈네트워크와 유비쿼터스에 대한 관심이..
닷넷은 컴파일을 해도 기계어 바이너리 실행파일을 만들지 않는다. 대신 중간언어로 표현되는 가상 어셈블리어를 만들고 이를 런타임에 실행하는 방법을 사용한다. 형태적으로 보면 인터프리팅과 컴파일링의 중간쯤에 해당한다. 그러다 보니 당연히 기계어로 직접 컴파일하는 기존의 방법에 비해서 속도가 떨어지게 된다. 그렇다면 도데체 얼마나 떨어지게 되는 것일까? 모든 프로그램에 대하여 일반적으로 얼마나 속도저하가 있다고 말하기는 다소 어려운 부분이있다. 그래서 속도게 가장 민감한 3D게임의 예가가 있다. Vertigo Software는 닷넷의 속도 비교와 기존 C코드를 닷넷으로 포팅하는 예를 QuakeII를 통해서 보여주었다. 이 프로젝트에서는 현재 GPL로 되어 있는 QuakeII 소스를 네이티브 C++로 포팅하고 ..