요약 REST 와 RPC를 이용한 서비스 데이터 플로를 알게 됨. SOA, 마이크로서비스 설계와 서비스 API 간 버전 호환이 가능 해야 함. REST 를 이용하여 간단하게 접근하면서, 조직간 서비스 통합을 가능하게 함. 원격 프로시저 호출에는 여러 문제가 있고, 원격과 내 로컬이 같게끔 만드는 노력과 대책이 필요함. ex) 네트워크 문제로 인한 호환성 불일치 RPC 의 주요 초점은 같은 데이터센터 내의 같은 조직이 소유한 서비스 간 요청에 있음. RPC를 이용하여 데이터 부호화를 할 때, 서비스 호환성을 유지해야 함. ex) API 버전 메시지 전달 데이터플로를 알게 됨. 비동기 메시지 전달 시스템을 사용함. 메시지 브로커 분산 액터 프레임워크 메모 서비스를 통한 데이터플로: REST와 RPC 네트워크..
요약 아브로 이진 부호화 형식을 이해하게 됨. 스리프트, 프로토콜 버퍼와 대적할 만한 또 하나의 이진 부호화 형식 스키마에 태그 번호가 없음 스키마를 함꼐 확인하여 데이터 복호화 해야 함. 쓰기, 읽기 스키마가 동일하지 않아도 됨. 호환만 가능하면 됨. 동적 스키마 생성에 유리함. 아브로는 코드 생성 없이, 간단히 데이터를 조회할 수 있음. 자기 기술적이라고 함. 데이터플로 모드에 대한 내용을 알게 됨. 추상적인 개념, 데이터 복호화, 부호화의 주체에 대한 내용임. 데이터 베이스를 통한 데이터 플로를 알게 됨. 여러 프로세스가 데이터베이스에 접근하면서 데이터 호환성이 필요함. data outlives code 가 발생할 수 있음. 메모 아브로 아파치 아브로는 프로토콜 버퍼와 스리프트와 대적할 만한 또 하..
요약 4장 부호화의 발전에 대한 개요를 이해함. 상위, 하위 호환성을 유지하기 위해서 데이터 시스템을 어떻게 지원할지 를 설명함. 데이터 부호화 형식을 이해하게 됨. 메모리 ↔ 바이트열 (= 부호화, 복호화) 언어별 데이터 부호화 형식이 있음. 내장 라이브러리에 문제가 많아서 일반적으로 좋지 않은 방법 JSON, XML, 이진 변형 방식을 이해하게 됨. 표준화된 부호화 방식 데이터 교환 형식에 적합한 방식임. 더 간편하고 파싱이 빠른 형식으로 이진 부호화 방식을 선택할 수 있음. 스리프트와 프로토콜 버퍼에 대한 내용을 알게 됨. 이진 부호화 라이브러리임. 필드 태그와 데이터 타입에 대한 스키마 발전을 가능하게함. 메모 4장. 부호화와 발전 데이터 타입이나 스키마 변경될 때, 애플리케이션 코드에 대한 변경..
요약 칼럼 지향 저장소에 대한 내용을 이해하게 됨. 칼럼별 값을 저장한다. 칼럼 압축에 대한 내용을 이해하게 됨. 데이터 압축을 통해 디스크 처리량을 줄임. 대표적인 압축 기법으로 비트맵 부호화가 있음. 비트맵 부호화에 대한 이해가 좀 더 필요함.. 병목을 줄이기 위해 메모리 대역폭을 효율적으로 사용해야 함. 칼럼 압축을 통해, 비트 연산이 가능해지게 되는데, 이를 벡터화 처리라고 함. 칼럼 저장소의 순서 정렬에 대해 이해하게 됨. 색인 메커니즘으로 사용 가능 칼럼 압축에도 도움이 됨. 칼럼 지향 저장소에 쓰기에 대한 내용을 이해하게 됨. 읽기 효율을 높인만큼 쓰기 효율이 낮아짐. B 트리로는 압축된 칼럼에서 쓰기에 대한 수행을 할 수 없음. LSM트리로는 가능함. 데이터 큐브와 구체화 뷰에 대한 내용을..
요약 데이터베이스의 구조인 B 트리의 신뢰성과 최적화를 이해하게 됨. B 트리 → 새로운 데이터를 디스크 상의 페이지에 덮어 씀. B 트리 → 여러 최적화 방식을 제공함. LSM 트리와 B 트리의 차이를 이해하게 됨. 기타 색인에 대한 종류들을 이해하게 됨. 기본키 색인 보조 색인 색인 안에 값을 저장하는 방법을 이해하게 됨. 클러스터드 색인 비 클러스터드 색인 커버링 색인 다중 칼럼 색인을 지원함. 결합 색인이라고 함. 애매모호한 키에 대한 색인을 지원함. 퍼지 색인 아예 모든걸 메모리에 저장하는 방법도 있음. 트랜잭션의 처리와 분석에 대한 내용을 이해하게 됨 트랜잭션 처리 → OLTP 데이터 분석 → OLAP 데이터 웨어하우징에 대한 내용을 이해하게 됨. OLTP 용 데이터베이스와 분리하여 데이터 웨..
요약 데이터베이스에서 수행되는 저장소 엔진의 내부 수행 작업을 이해하게 됨. 가장 간단한 데이터 베이스의 구조, 데이터 구조를 이해함. 데이터가 많을 수록 읽기 성능이 안좋음. → 색인이 필요 해시 색인을 이용한 저장소 엔진의 원리를 이해함 로그 추가 방식 SS테이블, LSM 트리를 이용한 저장소 엔진 원리를 이해함. 로그 추가 방식, 키 값은 정렬 B 트리를 이용한 저장소 엔진 원리를 이해함. 고정 페이지 이용, 페이지 참조를 이용하여 키 를 이용한 질의 & 키 값 추가 가능 B 트리 깊이가 O(log n) 이므로 많은 페이지 참조 없이 색인을 이용하여 값 조회 가능 메모 3장. 저장소와 검색 애플리케이션 개발자는 애플리케이션에 적합한 저장소 엔진을 선택하는 작업이 필요함. 저장소 엔진이 내부에서 수행..
요약 데이터를 위한 질의 언어 중, 맵리듀스 질의에 대해 이해하게 됨. map, reduce 함수를 작성해야 하며, pure 함수여야 함. 그래프형 데이터 모델에 대해 알게 됨. 데이터 간 연결이 복잡할 때 모델링하기 좋음. 그래프 데이터로 구조화하기 위한 여러 모델이 있음. 속성 그래프 사이퍼 질의 언어, SQL 그래프 질의 트리플 저장소 스파클 시맨틱웹, RDF 내용에 대해서 내용이 잘 이해가 가지 않음… 다시 읽어봐야 함.. 데이터로그언어에 대해 알게됨 현재 데이터 시스템에도 기초 언어로 초석이 되어 사용되고 있음. 메모 맵리듀스 질의 많은 컴퓨터에서 대량의 데이터를 처리하기 위한 프로그래밍 모델 몽고DB, 카우치DB를 포함한 일부 NoSQL 데이터 저장소가 제한된 형태의 맵리듀스를 제공함. 맵리듀..
요약 문서 데이터베이스의 역사에 대해 알게 됨. 다대다 관계 처리를 위한 여러 모델이 나옴. 계층 모델 네트워크 모델 관계형 모델 관계형 데이터베이스와 문서 데이터베이스의 차이를 알게 됨 문서로 표현하기 쉬운 데이터 → 문서 데이터 베이스 스키마 유연성을 가지기 쉬움 (읽기 스키마 → 데이터 구조가 달라도 됨) 다대다 관계 → 관계형 데이터베이스 조인, 다대일, 다대다 관계를 지원 데이터 지역성 문서 : 저장소 지역성 이용 문서의 많은 부분이 필요한 경우에만 사용 관계 : 데이터 그룹화 문서와 관계형 데이터베이스는 서로의 단점을 보완하는 형태로 발전 중임 데이터를 위한 질의 언어에 대한 내용을 알게 됨 선언형 (SQL) 웹에서 CSS Selected 로 유용하게 사용 가능 명령형 (프로그래밍 언어) 절차..
요약 2장 데이터 모델에 대한 내용과 질의 언어에 대한 내용을 살펴봄 관계형 모델과 문서 모델에 대한 내용의 차이를 이해하게 됨. 관계형 모델은 에드가 코드에 의해 제안됨. NoSQL의 탄생 객체와 관계형의 불일치 임피던스 불일치 JSON → 일대다 관계형 → 다대일, 다대다 발췌 데이터 모델은 소프트웨어 개발에서 제일 중요한 부분이다. (p27) 해결하려는 문제를 어떻게 생각해야 하는지에 대해 지대한 영향을 미치기 때문 메모 2장. 데이터 모델과 질의 언어 대부분 애플리케이션은 하나의 데이터 모델을 다른 데이터 모델 위에 계층을 둬서 만듦. 각 계층의 핵심 문제는, 다음 하위 계층 관점에서의 데이터 모델을 표현하는 방법임. (p28) 각 계층은 명확한 데이터 모델을 제공함으로써 하위 계층의 복잡성을 숨..
요약 확장성에 대한 내용을 살펴봄. 부하 기술 방법 성능 기술 방법 부하에 대응하기 위한 접근 방법 유지보수성에 대한 내용을 살펴봄. 운용성 운영 상의 편리함 만들기 단순성 복잡도를 낮추기 발전성 시스템 요구사항의 변경에 유연하게 하기 발췌 부하는 부하 매개변수 숫자로 나타낼 수 있음. (p11) 가장 적합한 부하 매개 변수 선택에 따라 시스템 설계가 달라짐. (p11) 메모 확장성 확장성은 증가한 부하에 대처하는 시스템 능력을 설명하는데 사용하는 용어임. 부하 기술하기 시스템의 현재 부하를 간결하게 기술할 수 있어야 함. 부하 성장 질문(ex: 부하가 2배가 되면 어떻게 될까?)을 논의할 수 있기 때문 부하는 부하 매개변수(load parameter) 라 부르는 몇 개의 숫자로 나타날 수 있음. 시스템..
요약 데이터 시스템의 포괄적인 의미와, 왜 포괄적으로 사용해야하는지 이해하게 됨. 애플리케이션의 신뢰성 에 대한 내용을 여러 관점에서 생각할 수 있었음. 하드웨어 결함 Redundancy, 고가용성 소프트웨어 결함 소프트웨어 결함을 찾기 위한 의식적인 작업들을 꾸준히 수행해야 함. 인적 결함 인적 오류를 최소화할 수 있는 방향으로 데이터 시스템을 설계해야 함. 각 결함에서 우리가 취해야할 자세에 대한 내용을 설명해주고 있음. 카오스 몽키 부분은 실제로 AWS GAME DAY 에서 경험해 본 적이 있다. 상당히 공감하며 책을 읽었다. 발췌 이 책에서는 신뢰할 수 없는 여러 부품으로 신뢰할 수 있는 시스템을 구축하는 다양한 기법을 다룸 (p7) 메모 1장. 신뢰할 수 있고 확장 가능하며 유지보수하기 쉬운 애..
책너두 2기를 시작했다. 1기를 끝내고 2기를 이어서 시작하는데, 좋은 책들을 이번 기회에 많이 읽어야 겠다..! 전반적인 내용 데이터 중심 애플리케이션 설계 책을 읽는다. 데이터 관점에서 애플리케이션을 어떻게 설계할 지에 대한 내용이다. 책은 총 3개의 파트로 이루어져 있음. 데이터 시스템의 기초 → 분산 데이터 → 파생 데이터 데이터를 처리하는 다양한 방법에 대한 내용을 익힐 수 있다. 독서 전략 최대한 내용을 이해하려고 노력한다. 짬나는 시간에 여러번 읽어 본다. 요약은 최대한 간략히 한다. 중요하다고 생각되는 부분을 정리한다. 책에서 설명하는 내용들이 실무, 혹은 실제로 어떻게 활용되고 있는지 이해한다. 모르는 내용들은 기록해 두었다가, 하루 분량의 내용을 정리하면서 몰랐던 부분들에 대한 답을 간..