본문 바로가기

반응형

(18)
신뢰할 수 있고 확장이 가능하며 유지보수하기 쉬운 어플리케이션 (3) 신뢰성은 얼마나 중요할까?증명되지 않는 시장을 위해 시제품을 개발하는 비용이나 매주 작은 이익률의 서비스를 운영하는 비용을 줄이려신뢰성을 희생해야 하는 상황이 있다 하지만 이 경우에는 비용을 줄여야 하는 시점을 잘 알고 있어야 한다이러한 상황은 뭐가 있을까?시장 검증 전 초기단계고비용 구조를 유지하기보다는 빠른 테스트와 피드백 수집을 통해 시장 반응을 확인하는 게 우선제품-시장 적합성 찾기 전제품이 시장에서 명확한 적합성을 찾지 못했을 때 최소한의 기능으로 테스트하는 것이 효과적높은 경쟁압력의 초반 단계빠르게 움직이는 산업시장에서 초기에는 자리선점이 중요하다고 생각자금 소진 위험할 말은 많으나 말하지 않겠음MVP 개발 단계이것 또한 확장성시스템이 현재 안정적으로 동작한다고 해서 미래에도 안정적으로 동작한..
Chapter 1. Streaming 101 (2) 진짜 볼때마다 느끼는건데 번역이 너무 아쉬워요... 스트리밍 시스템이 배치 시스템을 이기기 위해서는? 두가지가 필요하다 1. 정확성 (correctness) 정확성은 스트리밍시스템이 배치와 동등해지기 이해 필요한 조건이며, 핵심은 일관성을 제공할 수 있는 스토리지[consistent storage]로 귀결된다 스트리밍 시스템에서는 시간이 지남에 따라 영구 상태를 유지할 수 있는 체크포인트 방법이 필요하다 어떤 스트리밍 프레임워크든 체크포인트를 만듬에 따라서 중복을 최대한 방지하면서 멱등성를 보장하는 시스템을 설계하는것이 가장 이상적인데 과연 스트리밍 시스템에서 멱등성을 100프로 보장할 수 있을까 또한 스토리지는 장애 등의 상황에서도 일관성을 유지할 수 있도록 설계되어야한다. 스파크 스트리밍이 등장하면서..
Chapter 1 . Streaming 101 (1) Streaming 101 스트리밍 데이터 처리 (Streaming data. precessing) 이 주목받는 이유는 다음과 같다 기업의 입장에서는 데이터에 대한 좀 더 시기적절한 통찰력이 중요한 때이고, 스트리밍으로 전환해 이런 통찰력을 빠르게 얻을 수 있다 현대에서는 대규모의 무한 데이터셋이 점점 더 보편화되고 있으며, 이러한 데이터는 끝없이 입력되는 데이터를 다룰 수 있도록 설계된 시스템을 사용하면 더욱 쉽게 처리할 수 있다. 데이터가 도착하는 시점에 처리될 수 있다면 시스템의 작업 부하가 고르게 분산 돼 좀 더 일관되고 예측 가능한 형태로 시스템 자원을 소비할 수 있다 결국 기업이 데이터를 다룰 수 있는 수단이 증가하고 데이터가 나오는 곳이 정해져 있지 않으니 스트리밍으로 전환하여 좀 더 능동적인..
chapter 4. 아키텍처 (1) 4.1.1 MySQL Engine Architecutre MySQL 서버는 크게 MySQL 엔진가 스토리지 엔진으로 구분할 수 있다 MySQL 엔진은 클라이언트로부터의 접속 및 쿼리 요청을 처리하는 커넥션 핸들러 SQL 파서 및 전처리기, 쿼리의 최적화된 실행을 위한 옵티마이저가 중심을이룬다 4.1.1.1 MySQL 엔진 또한 MySQL은 표준 SQL(ANSI SQL) 문법을 지원하기 때문에 표준 문법에 따라 작성된 쿼리는 다른 DB에도 호환되어 실행될 수 있음 다만 자체 문법을 가지고 있는 DB(Oracle, Postgre) 같은 경우 다를 수 있음 다만 큰틀에서는 같은 의미로 말할 수 있음 4.1.1.2 Stroage 엔진 MySQL 엔진은 요청된 SQL 문장을 분석하거나 최적화 하는 등 DBMS의 ..
계약에 의한 디자인 소프트웨어는 사용자가 만들어서 직접 사용하기도 하지만 다른 레이어 나 컴포넌트 에서 호출하는 경우도 있다 이런 경우 이들 간 교류를 어떻게 해야하는지 고민해보자 컴포넌트는 기능을 숨겨 캡슐화 하고 함수를 사용할 클라이언트에게는 API 를 노출해야한다 컴포넌트의 함수, 클래스. 메서드는 특별한 유의사항에 따라 동작해야 하며, 그렇지 않을 경우 코드가 깨지게 된다 반대로 코드를 호출하는 클라이언트는 특정 형태의 응답이나 실패를 기대하고 해당 형태와 다른 응답을 받는 경우 함수 호출에 실패하게 되고 부가적인 결함을 생기는 경우도 있음 물론 API를 디자인할 때 예상되는 입출력과 부작용을 문서화해야함 그러나 문서화가 런타임 시의 소프트웨어의 동작까지 강제할 수는 없다 이렇게 코드가 정상적으로 동작하기 위해 필요..
Part 1 - [Chapter 2] . 데이터 엔지니어링 수명 주기 (2) 2.1.3 데이터 저장 데이터를 저장할 공간이 필요하다, 스토리지 설루션을 선택하는 것은 나머지 데이터 수명주기에서 성공을 거두기 위한 열쇠이면서, 다음과 같은 다양한 이유로 데이터 수명 주기에서 가장 복잡한 단계의 하나다 첫째, 클라우드의 데이터 아키텍처는 종종 여러 스토리지 설루션을 활용함 둘째, 복잡한 변환 쿼리를 지원하는 데이터 스토리지 설류션은 순수하게 스토리지로만 작동하는 경우가 거의 없으며 많은 설루션이 복잡한 쿼리를 지원한다 심지어 객체 스토리지 설루션도 Amazon S3 Select와 같은 강력한 쿼리 기능을 지원할 수 있다 셋째, 저장은 데이터 엔지니어링 수명 주기의 한 단계이지만 변환 및 서비스 제공과 같은 다른 단계에서도 자주 관여한다 둘쨰가 참 흥미로운데 이게 보면 대표적으로 S3..
Chapter 2. 클라이언트에서 데이터 가져오기: 데이터 수집 우리가 다루는 첫 번째 단계인 수집 단계(Collection tier)는 우리의 스트리밍 시스템으로 데이터를 입수하는 지점이다. 수집 단계를 강조한 스트리밍 데이터 아키텍처는 다음 과 같다. 2.1 일반적인 통신 패턴 오늘날, 클라이언트에서 생성되는 데이터를 시스템에 입수하기 위해(또는 수집 단계에서 서버가 직접 데이터를 Pulling 하기 위해) 몇 안되는 프로토콜을 사용한다 만물 인터넷의 등장으로 다양한 통신 패턴들이 존재하겠지만. 다음과 같은 몇 가지 통신 패턴 중 한 가지 패턴을 선택하여 통신하는 것이 일반적이다. 요청/응답 패턴 (Request/response pattern) 발행/구독 패턴 (Publish/subscribe pattern) 단방향 패턴 (One-way pattern) 요청/확인..
Chapter 1. 스트리밍 데이터 소개 1. 스트리밍 데이터 소개 2013년 5월, 스칸다니비아 연구 센터에서 발간한 보고서에 따르면 전 세계에 존재하는 90% 가량의 데이터는 자닌 2년 안에 생성되었다고 추정했다 2014년 EMC가 IDC와 함께 파트너십을 맺고 디지털 유니버스 연구를 발표 했는데 디지털 유니버스의 규모가 2년마다 두 배로 증가하고 있으며 2013년부터 2020년 사이에 4조 4천억 기가바이트에서 44조 기가바이트로 10배 증가할 것으로 보고 했다 빅데이터라는개념은 오랜기간 존재했지만 수집, 적재, 분석하는 기술을 갖게 된 것은 그리 오래되지 않았다 이로써 빅데이터를 기반으로 빠른 의사 결정을 내리고 소비자와 기업 주변에서 일어나는일을 서비스에서 활용하여 사용할 수 있게 되었다 하지만 기술만 있다고 빅데이터를 잘 다룰 수 있..

반응형