1. Apache Spark의 개념과 등장 배경 [ Apache Spark의 등장 배경 ] Spark는 MapReduce 형태의 클러스터 컴퓨팅 패러다임의 한계를 극복하고자 등장하게 되었다. MapReduce는 Disk로부터 데이터를 읽은 후, Map을 통해 흩어져 있는 데이터를 Key-Value 형태로 연관성 있는 데이터끼리 묶은 후에, Reduce를 하여 중복된 데이터를 제거하고, 원하는 데이터로 가공하여 다시 Disk에 저장한다. 하지만 이러한 파일 기반의 Disk I/O는 성능이 좋지 못했고, In-memory의 연산을 통해 처리 성능을 향상시키고자 Spark가 등장하게 되었다. [ Apache Spark란? ] Apache Spark는 오픈소스이며, 범용적인 목적을 지닌 분산 클러스터 컴퓨팅 프..
1. Hadoop 1.0의 구조와 YARN의 등장 이유 [ Hadoop 1.0의 구조와 YARN의 등장 ] Hadoop 1.0의 MRV1(MapReduce Version1)는 작업의 처리와 자원의 관리를 한번에 관리하였다. 즉, Single-Master 노드에 해당하는 job Tracker는 자원을 할당하고, 스케줄링 작업도 수행하며 처리중인 작업까지 모니터링을 하였다. 그리고 하위 노드에 해당하는 Task Tracker에 Map and Reduce 작업을 부여하였고, 하위 노드들은 주기적으로 그들의 진행상황을 Job Tracker에 보고하였다. 이러한 MRV1구조는 Task의 규모가 커짐에 따라, 하나 뿐인 Job Tracker에 부하가 걸리며 bottleneck이 발생할 뿐만 아니라 컴퓨터의 자원이 ..
본 포스팅은 과거에 Vue JS를 공부하며 정리했던 내용입니다. 개인적으로 참고하기 위해 올려놓은 내용이고, 더 이상 프론트엔드 프로그래밍을 진행하지 않아 부정확한 내용이 있을 수 있습니다. 1. VueJS 프로젝트 생성 [ VueJS 프로젝트 생성 ] VueJS로 프로젝트를 실행하기 위해서는 vue-cli를 사용해야 한다. vue-cli는 npm 모듈로 제작되어 있기 때문에, node.js가 필수적으로 설치되어 있어야 한다. Node JS가 설치되어 있지 않다면 설치한 후에 아래의 내용을 진행하기 바란다. Node JS 콘솔 열기 vue-cli 설치(npm install -g @vue/cli) 원하는 위치로 이동 후 Vue 프로젝트 생성(vue init , ex) vue init webpack fron..
본 포스팅은 과거에 안드로이드 프로그래밍을 공부하며 정리했던 내용입니다. 개인적으로 참고하기 위해 올려놓은 내용이고, 더 이상 안드로이드 프로그래밍을 진행하지 않아 부정확한 내용이 있을 수 있습니다. 1. MVVM(Model-View-ViewModel) 패턴 [ MVVM(Model-View-ViewModel) 패턴이란? ] MVVM은 Model-View-ViewModel의 약자로, 각각은 아래와 같은 역할을 담당하며 이를 도식으로 나타내면 아래의 그림과 같다. Model: UI에 표시될 데이터와 상태 그리고 비지니스 로직을 담당한다. View: 화면에 표현되는 UI를 의미한다. ViewModel: 이벤트 처리나 Model과의 인터랙션 등을 담당한다. MVVM에서 가장 중요한 핵심은 DataBinding ..
1. 함수형 프로그래밍(Functional Programming)에 대한 이해 [ 프로그래밍 패러다임(Programming Paradigm) ] 프로그래밍 패러다임(Programming Paradigm)은 프로그래머에게 프로그래밍의 관점을 갖게 하고 코드를 어떻게 작성할 지 결정하는 역할을 한다. 새로운 프로그래밍 패러다임을 통해서는 새로운 방식으로 생각하는 법을 배우게 되고, 이를 바탕으로 코드를 작성하게 된다. 최근의 프로그래밍 패러다임은 크게 아래와 같이 구분할 수 있다. 명령형 프로그래밍: 무엇(What)을 할 것인지 나타내기보다 어떻게(How) 할 건지를 설명하는 방식 절차지향 프로그래밍: 수행되어야 할 순차적인 처리 과정을 포함하는 방식 (C, C++) 객체지향 프로그래밍: 객체들의 집합으로 ..