빅데이터의 정착 분산 시스템을 이용한 데이터 처리의 고속화 - Hadoop과 NoSQL 2012년 무렵 "빅데이터"라는 단어가 생겨날 때, 기업들은 분산 시스템을 이용하여 빅데이터를 처리하는 과정에서 애를 먹고 있었다. 빅데이터를 사용하기 위해 이를 처리하는 과정에서 큰 역할을 한 것이 바로 Hadoop과 NoSQL이다. Hadoop 하둡은 다수의 컴퓨터에서 대량의 데이터를 처리하기 위한 시스템으로, 방대한 양의 데이터를 저장하고 이를 순차적으로 처리할 수 있는 수 많은 컴퓨터를 관리하기 위한 프레임워크이다. NoSQL NoSQL은 기존 RDB의 한계를 벗어나기 위해 탄생한 데이터베이스로, RDB보다 고속의 읽기, 쓰기가 가능하고 분산 처리에 뛰어나다. NoSQL에도 Key-Value Store, Doc..
프로세스 프로세스의 개념 프로그램과 프로세스는 분명한 차이가 있다. 프로세스는 실행 중인 프로그램을 의미하며, 이는 곧 메모리에 올라가 있는 프로그램을 의미한다. 프로세스는 자신의 작업을 하기 위해 CPU time이나 메모리, 입출력 장치 등의 리소스를 필요로 하는데 운영체제는 이러한 리소스를 잘 관리할 수 있어야 한다. 이러한 프로세스들을 자세히 살펴보려면 메모리에서 프로세스가 어떻게 구성되어 있는지 살펴보는 것이 중요하다. 크게 보면 아래 그림과 같이 나타낼 수 있다. 하나 씩 살펴보면 코드 영역(텍스트 영역)은 코드가 저장되는 부분으로 CPU는 코드 영역에서 명령어를 가져가 수행한다. 데이터 영역은 전역 변수나 정적 변수가 저장되는 영역이다(전역 변수와 정적 변수의 차이도 생각해보면 좋겠다). 스택..
운영체제란? 운영체제를 간단히 말하면 "컴퓨터"를 운영하는 소프트웨어라고 할 수 있다. 그렇다면 컴퓨터의 정의를 명확히 하는 것이 중요할텐데, 많은 정의가 있을 수 있겠지만 가장 쉽게 생각할 수 있는 정의는 범용성과 계산가능성을 모두 충족한 기계라고 할 수 있다. 각각 쉽게 설명한다면 S/W가 하고자 하는 모든 것들을 H/W가 지원할 수 있고(범용성), 튜링 머신으로 계산가능한(계산가능성) 기계라고 할 수 있겠다. 여기서 튜링 머신으로 계산가능하다는 것은 너무 어려우니 그냥 튜링이 정의한 컴퓨터의 지표 정도로 생각하면 될 것 같다. 이 정의 때문에 소프트웨어(앱)를 깔아서 카메라, 영화, 게임 등의 다양한 기계로 사용할 수 있는 스마트폰은 컴퓨터이지만, 기존의 소프트웨어를 그대로 사용할 수 밖에 없는 계..
오늘부터 기술 블로그를 시작해보려 한다. 원래 이전에 깃허브 블로그를 운영했었지만 깃허브 블로그는 유지보수가 너무 힘든 것 같아 티스토리로 이전을 해보려 한다 ㅎㅎ 깃허브 블로그도 TIL 같은 느낌으로 포스팅을 하였지만 언제부턴가 인지 1일 1커밋 잔디만 채우려고 하게 되면서 질 나쁜(?) 글을 쓰게 된 거 같았다. 이번 티스토리 블로그는 데이터 엔지니어 꿈나무로서 차근차근 데이터 엔지니어 관련 TIL를 해보려 한다. 나름 커리큘럼도 공을 들여 만들어보았고(블로그 운영이 제대로만 된다면 이것도 공유할 생각이다), 내가 배운 내용을 공유하고자 하는 생각에 제대로 된 글을 작성해보고자 한다. 그저 잔디 채우기에 급급한 것이 아니라 내 나름대로 열과 성을 다해 최선의 퀄리티를 갖는 글을 올리는 것을 노력할 것..