2019/11 2

05. 복제(Replication) - 1

이번 장의 주제는 복제(Replication)입니다. 복제란 네트워크로 연결된 여러 장비에 동일한 데이터의 복사본을 유지하는 것을 의미합니다. 복제를 통한 이점은 다양합니다. 첫째로, 지리적으로 사용자와 가까운 곳에 데이터가 존재할 수 있어서 지연 시간(latency)을 줄여줍니다. 둘째로, 시스템에 일부 장애가 발생해도 지속적으로 동작할 수 있게 해 가용성(availability)를 높여줍니다. 셋째로, 데이터를 여러 장비로부터 읽을 수 있어서 처리량을 늘려줍니다. 이번 장에서는 노드간 변경을 복제하기 위한 세 가지 접근 방법인 싱글 리더, 멀티 리더, 리더리스 복제에 대해 살펴볼 예정입니다. 또한 복제에 고려해야 할 트레이드오프가 존재하는데 예를 들어 동기식 복제와 비동기식 복제 중 어떤 것을 사용할..

case class (케이스 클래스)

스칼라에서는 case class라는 클래스를 제공합니다. case class는 클래스와 유사하지만 약간의 차이가 존재합니다. 기본적으로 불변이며 불변 데이터를 모델링하기에 좋습니다. 또한 개발자들이 이러한 모델링을 위해 작성해야 하는 보일러플레이트 코드(boilerplate code)를 제공해줍니다. 그럼 예제를 통해 살펴보겠습니다. case class Book(id: Int, title: String, isbn: Long) case class는 위와 같이 class 선언시 앞에 case라는 키워드를 붙여서 생성합니다. 그럼 위와 같이 생성을 하게 되면 어떤 코드가 나오는지 살펴보겠습니다. 위의 case class를 scalac로 컴파일한 후 javap 커맨드를 이용해서 디컴파일을 하면 아래의 코드를 확..

Programming/Scala 2019.11.17
반응형