데이터 중심 어플리케이션 설계 스터디 후기
·
Data Science/데이터 중심 어플리케이션 설계(DDIA)
데이터 중심 어플리케이션 설계(대중애설) 스터디의 후기를 작성하고 좋았던 방법과 이 책을 스터디로 선택하려는 사람들을 위한 기록을 남겨봅니다.1. 스터디 방법사용 플랫폼: 슬랙 - 허들기간: 25년 2월 ~ 4월 24일참여 방법: 총 12장을 매주 읽고 블로그/노션에 NDA 템플릿을 이용해서 정리하기새롭게 알게된 점(New)어려웠거나 이해하지 못한 부분(Difficulty)추가 내용(Amendment)스터디 방법: 매주 일요일 오후 10시에 모여 작성한 내용 읽으며 질의응답2. 후기책 후기"데이터"라는 문구만 보고 데이터분석/사이언티스트가 도전할 수도 있겠으나 명확히는 설계에 관점이 맞춰져 있기 때문에 백엔드에 관심 있는 사람들이 보는게 좋다. Part 1에서는 신뢰성, 데이터 모델, 저장소와 검색, 부..
DDIA Chapter 11: 스트림 처리
·
Data Science/데이터 중심 어플리케이션 설계(DDIA)
지난장 배치에서는 유닉스의 배치처리 방식과 맵리듀스를 기반으로 한 분산파일 시스템에대해서 알아보았습니다. 많이 혼란스럽고 어려운 장이였는데요, 이번 장에서는 스트림 처리에 대해서 알아봅니다. 배치를 기반으로 하는 설명이 나온다고 해서 많이 어려울 줄 알았는데 일부 읽을만한 내용들이 있어서 재밌었습니다. 목차 신규개념(New)개념설명스트림(stream)시간 흐름에 따라 점진적으로 생산된 데이터레코드(record)이벤트, 특정 시점에 일어난 사건에 대한 세부사항을 포함하는 작고 독립된 불변 객체생산자(producer)publisher, sender소비자(consumer)subscrier, recipient트리거(trigger)테이블에 대한 이벤트에 반응해 자동으로 실행되는 작업메시징 시스템(Messagi..
DDIA Chapter 10: 일괄처리
·
Data Science/데이터 중심 어플리케이션 설계(DDIA)
이번 장에는 batch processing이라고 불리우는 일괄처리 방법에 대해서 기술한다. 분산 저장 시스템에서 함께 등장하는 맵리듀스 방식과 과거 유닉스 방식의 유사점을 비교하면서 설명하는 장이다.신규개념개념설명데몬 프로세스멀티태스킹 운영 체재에서 사용자가 직접 제어하지 않고, 백그라운드에서 작업을 하는 프로그램NASNetwork Attached Storage, 여러 사용자가 TCP/IP 네트워크로 파일을 저장하고 공유할 수 있는 중앙 집중식 파일 서버SANStorage Area Network, 서버, 스토리지 시스템, 소프트웨어 및 서비스를 결합하여 특정 환경에 맞게 조정된 전용 네트워크RAID여러개의 디스크를 묶어 하나의 디스크처럼 사용하는 기술맵리듀스 워크플로Work Flow, 맵 리듀스 작업을 ..
DDIA Chapter 8: 분산 시스템의 골칫거리
·
Data Science/데이터 중심 어플리케이션 설계(DDIA)
단일 시스템에서 다중시스템으로 확장하는 것은 단순히 공수의 N배가 아니라는 것을 느끼는 단원. 초반에는 네트워크장애에 대한 기술을 서술하나가는데 그 이후는 그만 정신이 혼미해지는 단원입니다. 그야말로 골칫거리군요. 후반은 읽다가 잠시 정신을 잃어서 이만.. 신규개념개념설명타임아웃(Timeout)서버로 요청을 보냈지만 일정 시간동안 답변을 받지 못할 때 발생시키는 오류TCP전송 제어 프로토콜(Transmission Control Protocol), 애플리케이션 사이에서 안전하게 데이터를 통신하는 규약. IP(Internet Protocol)와 엮어서 TCP/IP라고 불리기도 하며, 통신속도를 높이면서도 안전성, 신뢰성을 보장할 수 있는 규약UDP사용자 데이터그램 프로토콜 (Universial Datagra..
DDIA Chapter 6: 파티셔닝
·
Data Science/데이터 중심 어플리케이션 설계(DDIA)
이번 글에서는 복제에 이어 데이터 파티셔닝 방법과 이를 인덱싱하기 위한 전략을 알아봅니다. 특히 데이터가 커지는 경우에는 필수적으로 파티셔닝이 필요하며, 이를 나누기 위한 키-범위 파티셔닝과 해쉬 파티셔닝에 대해서 알아보고, 쓰기와 읽기 성능을 고려한 로컬과 글로벌 이차 인덱스방법에 대해서 기술합니다. 또한 개발이 끝이 아니듯 운영에서 발생할 수 있는 리밸런싱 전략에 대해서 알아봅니다. 전반적으로 대용량 데이터베이스를 설계자 입장에서 고려하고 고민할 것들이 많이 도출 되는 좋은 단원이였습니다! 신규개념개념설명파티셔닝(Partitioning)성능, 확장성, 유지성을 목적으로 논리적인 데이터를 다수의 엔터티로 분할하는 행위복제(Replication)동일한 데이터를 여러 노드에 저장하여 장애 복구를 대비하는..
DDIA Chapter 3: 저장소와 검색
·
Data Science/데이터 중심 어플리케이션 설계(DDIA)
솔직히 말이죠 이런 책을 읽는다는게 쉽지만은 않습니다만, 특히 이번장에서는 데이베이스의 저장구조와 검색에 대한 테크니컬한 내용이 많이 들어가서 중간에 도망갈뻔 했습니다. 그런데 참고 읽다보니 OLTP와 OLAP에 대한 구조가 너무나도 비교가 잘되었고 최근(?) 유행하게 되었는 칼럼 데이터베이스도 눈 여겨볼 수 있는 좋은 단원이였습니다. 얼마나 좋았나면 분석하는 분들에게 일부 문단을 뜯어서 읽어주고 싶은 느낌이였어요. 필자는 2장에서는 어플리케이션 개발자가 데이터 베이스에 데이터를 제공하는 형식을 설명한다면 3장은 데이터베이스 관점에서 데이터를 저장하는 방법과 요청했을 때 다시 찾을 수 있는 방법에 대해서 안내하고 있습니다. 한번 가보시죠~ 신규개념개념설명로그(Log)컴퓨터 시스템과 네트워크에서 발생하는 ..
DDIA Chapter 2: 데이터 모델과 질의 언어
·
Data Science/데이터 중심 어플리케이션 설계(DDIA)
대부분의 데이터분석의 자료의 출처는 관계형 데이터베이스(RDB)를 말합니다. 정형데이터를 관리할 수 있는 Standard로 여겨졌고 실제로도 Oracle을 필두로한 데이터베이스 시스템이 과거 주류를 차지했습니다. 하지만 RDB의 정규화의 특징으로 나타나는 문제들이 발생할 수 있고 그에 따라 파생된 NoSQL 데이터 모델들이 등장했습니다. 이번 글에서는 데이터 모델의 역사와 종류 그리고 어플리케이션을 설계할 때 있어서 어떤 데이터 모델을 선택해야하는지에 대한 근거를 알아보도록 하겠습니다. 본 글에서는 New, Difficulty, Amendment 형식에 따라 작성하겠습니다. 1. 관계형 데이터베이스 관계형 데이터베이스(RDB)는 1980년대부터 약 30년간 주류를 이뤄왔습니다. 트랜잭션(transecti..
DDIA Chapter 1: 신뢰할 수 있고 확장 가능하며 유지보수 하기 쉬운 어플리케이션
·
Data Science/데이터 중심 어플리케이션 설계(DDIA)
해당 카테고리와 글은 데이터 중심의 어플리케이션 설계 책을 Pair reading하는 스터디의 결과물을 저장합니다. 사실 데이터라는 말에 혹해서 선택한 책이지만 백엔드 관점에서 이상적인 설계가 무엇인지 다루는 책이긴 합니다. 그럼에도 불구하고 한번 읽어보려고 용기있게 스터디를 모았습니다. 해당 스터디는 다음 템플릿을 이용해 매주 작성할 예정입니다.1. 스터디 방안모집인원: 최대 10명기간매주 약 chapter 1개 분량( 40 ~ 60 page)Part1: 2025. 02. 09(일) ~ 2025.03.02(일) / 총 4주Part2: 2025. 03. 09(일) ~ 2025.04.06(일) / 총 5주Part3: 2025. 04. 13(일) ~ 2025.04.27(일) / 총 3주진행방식매 주 1단원씩..