데이터 중심 애플리케이션 설계

데이터 중심 애플리케이션 설계

  • Books
  • 2022년 4월 27일

이 책은 총 3부로 구성되어 1부에서는 근본 개념에 대해 설명하고 2부에서는 데이터를 분산 저장하기 위한 내용을, 3부에서는 한 데이터셋에서 다른 데이터셋을 파생하는 시스템애 대해 설명한다.


1장. 데이터 시스템의 기초

1) 신뢰성

잘못될 수 있는 일을 결함이라 부른다. 이 결함을 예측하고 대처할 수 있는 시스템을 내 결함성/탄력성을 가졌다고 말할 수 있다.

결함과 장애는 동일하지 않은데, 결함은 사양에서 벗어난 시스템의 한 구성 요소로 정의되지만, 장애는 사용자에게 필요한 서비스를 제공하지 못하고 시스템 전체가 멈춘 경우이다.

결함 유형

  • 하드웨어 결함
  • 소프트웨어 오류 : 하드웨어 결함과 달리 신속한 해결책이 없으며 아래와 같은 방법들이 도움을 줄 수 있다.
    • 시스템의 가정과 상호작용에 대해 주의 깊게 생각하기
    • 빈틈없는 테스트
    • 프로세스 격리
    • 죽은 프로세스의 재시작 허용
    • 시스템 동작의 측정
    • 모니터링
  • 인적 오류

2) 확장성

확장성은 증가한 부하에 대처하는 시스템 능력을 설명하는 데 사용하는 용어로 시스템에 부여하는 일차원적인 표식이 아니다! “X시스템은 확장 가능하다” 와 같은 말은 의미가 없는 말이다.

부하 기술하기

현재 시스템의 부하를 기술해야 부하 성장 질문 (부하가 두 배로 되면 어떻게 될까? 와 같은 질문) 을 논의 할 수 있다. 이때 부하는 초당 요청수, db의 읽기 대 쓰기 비율, 동시 활성사용자 수, 캐시 적중률과 같은 부하 매개변수라 부르는 값들을 통해 나타낼 수 있다.

Tags :

Related Posts

문자열

문자열

문자의 집합(배열)이라는 의미이다. 기존의 문자는 ASCII코드로 1byte를 갖기 때문에 0255로 총 255개의 문자를 표현할 수 있었는데 이 수로는 현재 존재하는 언어(문자)들을 모두 표시할 수 없기 때문에 더 큰 byte의 문자가 필요해졌다. 대표적으로 UTF-8이 있는데 이는 한 문자당 14byte를 갖고 UTF-16은 2byte를 갖는다....

Read More
어노테이션

어노테이션

  • Java
  • 2021년 1월 31일

메서드를 오버라이딩 할때 사용했던 @Override와 같이 @ 기호를 사용하는 문법 요소로 Java5부터 등장했다. 단어의 의미인 주석과는 비슷하지만 다른 역할로써 사용되는데 메서드/클래스 등에 의미를 단순히 컴파일러에게 알려주기 위한 표식이 아닌 컴파일타임 이나 런타임에 해석될 수 있다. 1) 장점 기존의 자바는 선언적 프로그래밍방식으로 개발을 하면서 각 계층별 설정 데이터들을 XML에 명시했었는데 서비스의 규모가 클 수록 설정양이 많아지고 도메인 처리의 데이터들이 분산되어 있어 수정이 힘들었다....

Read More
@OneToMany 관계시 발생한 에러

@OneToMany 관계시 발생한 에러

  • Error
  • 2021년 4월 11일

JPA의 구현체인 hiberante를 이용해서 엔티티간의 상속관계를 설정하고 처음 사용해보는데 발생한 에러인 A collection with cascade=“all-delete-orphan” was no longer referenced by the owning entity instance 문제 해결한 방법을 기록하려고 한다. User의 엔티티와 Customer엔티티간의 1:N 양방향 연관관계를 맺기 위해 User에는 @OneToMany를 Customer에는 @ManyToOne관계를 설정을 하고 로직을 돌려보는데 위와 같은 에러가 발생했다....

Read More