전체 글 3

데이터 수집

- 카파 아키텍처(Kappa Architecture) : 대규모 데이터 스트리밍 처리를 위해 설계된 데이터 처리 아키텍처로 기존의 배치 처리 + 스트림 처리를 혼합하여 사용한 람다 아키텍처의 복잡성을 줄이기 위해 등장 : 모든 데이터를 로그 형태로 메시지 큐에 저장하여 필요 시 언제든 다시 처리할 수 있도록 함Q1. 카파 아키텍처에서 모든 데이터를 메시지 큐에 저장한다면 저장해야 할 데이터의 양이 너무 많아지지 않나? - 실제로 카파 아키텍처의 핵심 고민거리가 많은 저장 공간을 필요로 한다는 것 - 실시간 처리와 과거 데이터의 재처리(reprocessing)을 동시에 만족하기 위해 로그 데이터를 메시지 큐에 오래 보관하는 것이 필요 - 저장 데이터가 많아지는 문제의 해결 방법Kafka의 분산 구조 + 압..

데이터 생성

Q1) GraphQL이란 무엇인가? - 기존 REST API는 리소스마다 별도의 엔드포인트를 가지며(ex: /users, /oreders, /products), 응답 구조가 고정되어 있어 서버에서 정해놓은 JSON 스키마를 클라이언트가 그대로 받아야 함. 또한 여러 요청이 필요한 경우, API 요청을 여러 번 보내야 함. - 반면, GraphQL은 /graphql 하나의 엔드포인트만 존재하며, 클라이언트가 필요한 데이터를 질문(Query) 형태로 전송하므로 서버는 해당 쿼리에 맞는 딱 필요한 데이터만 반환Q2) 그렇다면 클라이언트에서 서버로 보내는 데이터 크기는 GraphQL과 REST API 중 어느 것이 더 클까? - 일반적으로 REST API는 서버가 응답 구조를 고정해두므로 데이터 양이 불필요하..

데이터 시스템과 데이터베이스 기초

1. 빅데이터 처리를 위한 기술 웹 서버 등에서 생성된 데이터는 처음에 RDB와 NoSQL 등의 텍스트 데이터에 저장되고, 이후 모든 데이터가 Hadoop으로 모여 대규모 데이터 처리가 실행된다. 전통적인 관계형 데이터베이스(RDB)에서 취급할 수 없을만큼 데이터의 양이 축적되면서 이를 해결하기 위해 Hadoop과 NoSQL 기술이 생겨난 것이다.1) Hadoop Hadoop은 다수의 컴퓨터에서 대량의 데이터를 처리하기 위한 시스템이다. 방대한 데이터를 처리하기 위해서는 수백, 수천 대의 컴퓨터가 필요한데 Hadoop은 이를 관리하는 프레임워크인 것이다.2) NoSQL 데이터베이스 NoSQL은 전통적인 RDB의 제약을 제거하는 것이 목표인 데이터베이스의 총칭이다. 대표적으로 다수의 키와 값을 관련지..