data2 MIN READ

[데이터 중심 애플리케이션 설계] 12. 데이터 시스템의 미래

[데이터 중심 애플리케이션 설계] 12. 데이터 시스템의 미래

데이터 중심 애플리케이션 설계 시리즈의 글입니다.

어플리케이션을 설계, 구축하는 방법을 근본적으로 개선하는 아이디어와 접근법

Data Integration

  • 파생 데이터에 특화된 도구의 결합
    • 100프로 정답인 툴은없다..
    • 저자는 분산트랜잭션보다 파생데이터를 이종데이터 시스템 통합의 장래성있는 접근법으로 보고있음.
    • 분산환경에서의 total ordering은 아직 해결해야할 숙제
    • 따라서 causality를 위한 ordering event도 여전히 숙제
  • Batch and Stream processing
    • 사실 stream = micro batching이라서.. 경계가 흐려짐
    • 비동기방식은 이벤트 로그 기반 시스템을 더욱 견고하게함
    • 데이터 재처리, derived view 사용은 굿굿
    • lambda architecture = batch + stream processing
    • 혹은 두개 processing의 통합

Unbundling Databases

  • DB ~= OS
  • 고수준 추상화 for 프로그래머
  • 조직의 dataflow ~= 거대한 database
  • unbundling = 기능을 각자 풀어서 제공
  • 로그기반 통합 추천 (loose coupling)
  • 넓은 범위의작업부하에 대해 좋은 성능을 달성하기위함
  • mysql | elasticsearch 같은 마법의 통합 툴 주세요
  • database inside out
  • stream processor(like pipe)로 각 연산자가 상태 변경 스트림을 받아 다른 상태 변경 스트림을 출력한다면?
  • 즉 MSA처럼 구성한다면? (단, 단방향, 비동기식으로)
  • 마치 spread sheet처럼 동작햇으면 좋겠다..는 저자의 희망
  • 하지만 시간의존성문제 해결이 쉽지않음 ..
  • 파생데이터 = read path 와 write path가 만나는곳..즉 trade-off생김
  • 최신 프로토콜들도 http 기본 요청/응답 → SSE, websocket 등으로 다양화
  • 스트림처리뿐 아니라 최종 사용자 장치까지 확장을..!
  • redux, vuex, pinia 같은 상태관리도구도 스트림구독방식
  • 요청/응답 → 발행/구독 방식으로 변경해야.. ⇒ 보다 반응성있는 사용자 인터페이스

Aiming for Correctness

  • 결국 stateful한 시스템(db)들은 장애가 큰 문제가됨
  • excatly-once = 멱등한 연산 사용
  • 중복억제 = 모든 경로에 식별자 추가
  • transaction은 유용하지만 완벽하지않음
  • 내결함성 추상화를 탐구해야한다..
  • 무결성 > 적시성 (즉, 저자는 ‘최종적 일관성’을 지지)
  • (저자주장) 답은 신뢰성 있는 스트림 처리 시스템..! 트랜잭션없이도 무결성보장가능!
  • 보상트랜잭션은 좋은 방법 (단, 비즈니스로직이 허용할때.)
  • 믿어라, 하지만 확인해라
  • 감사시스템/감사기능.. (암호화폐, 블록체인, 분산원장)

Doing the Right Thing

  • sw개발에 윤리적 선택은 갈수록 중요해지고있음
  • 예측분석 (알고리즘지옥)
  • 편견과 차별 (머신러닝..)
  • 데이터가 사람들을 해치지 않게 하고 긍정적 잠재력을 실현하는 방법을 찾아야함
  • 동의와 선택의 자유 - 일부만 서비스 사용을 거부할 특권이 있는건?
  • 사생활데이터 사용에는 주의를 기울여야..
  • 데이터라는 권력으로 레몬마켓을 만들지 말자
  • 산업혁명을 반복하면 안됨.
  • 각 개인은 스스로 자신을 보호할수있어야함.