2024/05 5

[고투런1기] 데이터 중심 애플리케이션 설계 (4장 부호화와 발전)

[1부 데이터 시스템의 기초]4장 부호화와 발전1. 데이터 부호화 형식1.1 언어별 형식1.2 JSON과 XML, 이진 변형1.3 스리프트와 프로토콜 버퍼1.4 아브로1.5 스키마의 장점2. 데이터플로 모드2.1 데이터베이스를 통한 데이터플로2.2 서비스를 통한 데이터플로: REST와 RPC2.3 메시지 전달 데이터플로 [정리: 데이터 중심 애플리케이션 설계를 뒷받침하는 근본 개념을 설명]- 데이터 구조를 네트워크나 디스크 상의 바이트열로 변환하는 다양한 방법=> 부호화의 세부 사항은 효율성, 애플리케이션의 아키텍처, 배포의 선택 사항에도 영향- 많은 서비스가 새로운 버전의 서비스를 동시에 모든 노드에 배포하는 방식보다 한 번에 일부 노드에만 서서히 배포하는 순회식 업그레이드가 필요=> 순회식 업그레이드..

[고투런1기] 데이터 중심 애플리케이션 설계 (3장 저장소와 검색)

[1부 데이터 시스템의 기초]2장 저장소와 검색1. 데이터베이스를 강력하게 만드는 데이터 구조1.1 해시 색인1.2 SS테이블과 LSM 트리1.3 B 트리1.4 B 트리와 LSM 트리 비교1.5 기타 색인 구조2. 트랜잭션 처리나 분석?2.1 데이터 웨어하우징2.2 분석용 스키마: 별 모양 스키마와 눈꽃송이 모양 스키마3. 칼럼 지향 저장소3.1 칼럼 압축3.2 칼럼 저장소의 순서 정렬3.3 칼럼 지향 저장소에 쓰기3.4 집계: 데이터 큐브와 구체화 뷰 [정리: 데이터 중심 애플리케이션 설계를 뒷받침하는 근본 개념을 설명]*이번 장을 통해 선택한 DB의 문서를 이해할 수 있는 충분한 어휘와 개념을 갖출 수 있음1. DB가 어떻게 저장과 검색을 다루는지?- DB에 데이터를 저장할 때 어떤 일이 일어날까?-..

[고투런1기] 데이터 중심 애플리케이션 설계 (2장 데이터 모델과 질의 언어)

- 관계형 DB에서 다대다 관계를 표현할 때 어려움을 겪은 적이 있었는지? => Node.js에서 다대다 관계를 표현하기 위해 ORM을 사용할 때 TypeORM의 경우 테이블 간 가상의 연결 테이블을 만들어 주지만, Sequelize에서는 실제로 연결 테이블을 만들어줘야 하는 불편함이 있음  [1부 데이터 시스템의 기초]2장 데이터 모델과 질의 언어1. 관계형 모델과 문서 모델1.1 NoSQL의 탄생1.2 객체 관계형 불일치1.3 다대일과 다대다 관계1.4 문서 데이터베이스는 역사를 반복하고 있나?1.5 관계형 데이터베이스와 오늘날의 문서 데이터베이스2. 데이터를 위한 질의 언어2.1 웹에서의 선언형 질의2.2 맵리듀스 질의3. 그래프형 데이터 모델3.1 속성 그래프3.2 사이퍼 질의 언어3.3 SQL의..

[고투런1기] 데이터 중심 애플리케이션 설계 (1장 신뢰성/확장성/유지보수성 갖춘 애플리케이션)

- SLA(서비스 수준 협약서)에서 SLO(서비스 수준 목표)를 정하는 기준(응답 시간 중앙값 n초, 서비스 제공 시간 n.n% 이상)은 어떻게 정하는지?* "응답 시간 중앙값이 200밀리초 미만이고 99분위가 1초 미만인 경우 정상 서비스 상태로 간주하며 서비스 제공 시간은 99.9% 이상이어야 한다."  [1부 데이터 시스템의 기초]1장 신뢰성/확장성/유지보수성 갖춘 애플리케이션1. 데이터 시스템에 대한 생각2. 신뢰성2.1 하드웨어 결함2.2 소프트웨어 오류2.3 인적 오류2.4 신뢰성은 얼마나 중요할까?3. 확장성3.1 부하 기술하기3.2 성능 기술하기3.3 부하 대응 접근 방식4. 유지보수성4.1 운용성: 운영의 편리함 만들기4.2 단순성: 복잡도 관리4.3 발전성: 변화를 쉽게 만들기 [정리:..

[개발독서] 내 코드가 그렇게 이상한가요 (9장 설계의 건정성)

- [전체] 11가지 경우와 관련해 실제로 겪은 문제 상황이 있었는지?- [전역 변수] '영향 범위를 최소화하도록 설계했지만 중복 코드가 많아진 경우' VS '전역 변수 등의 사용으로 영향 범위가 넓은 경우'?- [메타 프로그래밍] 실제로 메타 프로그래밍이 사용 된 경험? 사용한 이유? 장단점?- [패키지 구조] '기술 중심(계층형) VS 비즈니스 중심(도메인형)', 기술 중심 패키징이 더 효율적인 경우는?  9장 설계의 건전성을 해치는 여러 악마9.1 데드 코드9.2 YAGNI 원칙9.3 매직 넘버9.4 문자열 자료형에 대한 집착9.5 전역 변수9.6 null 문제9.7 예외를 catch하고서 무시하는 코드9.8 설계 질서를 파괴하는 메타 프로그래밍9.9 기술 중심 패키징9.10 샘플 코드 복사해서 붙..