2024/06/03 3

[Scala 찍먹하기] 시작하기: 설치부터 프로젝트 생성/실행/종료까지

0. Scala란?2004년에 발표된 객체지향/함수형 프로그래밍의 요소가 결합된 멀티 패러다임 프로그래밍 언어이다. Scala는 확장 가능하다는 의미의 단어 'Scalable'에서 유래되었다. JRE(자바 실행 환경)와 서로 잘 호환되도록 설계되어 JVM(자바 가상 머신)에서 실행할 수 있고, Java 언어와도 호환된다.Scala는 Spring의 초대량 요청 처리에서의 한계를 극복하는 데 도움이 될 수 있다고 한다. 함수형 프로그래밍으로 불변성, 순수 함수를 강조하기 때문에 예측 가능한 코드를 작성할 수 있기 때문이다. 또한 강력한 타입 시스템으로 런타임 안정성을 높여주기도 한다. Scala에서 많이 사용되는 Akka 프레임워크는 액터 모델을 기반으로 하여 분산 시스템과 동시성 처리를 쉽게 할 수 있도록..

언어/Scala 2024.06.03

[고투런1기] 데이터 중심 애플리케이션 설계 (5장 복제)

[2부 분산 데이터]1. 고부하로 확장1.1 비공유 아키텍처1.2 복제 대 파티셔닝5장 복제1. 리더와 팔로워1.1 동기식 vs 비동기식 복제1.2 새로운 팔로워 설정1.3 노드 중단 처리1.4 복제 로그 구현2. 복제 지연 문제2.1 자신이 쓴 내용 읽기2.2 단조 읽기2.3 일관된 순서로 읽기2.4 복제 지연을 위한 해결책3. 다중 리더 복제3.1 다중 리더 복제의 사용 사례3.2 쓰기 충돌 다루기3.3 다중 리더 복제 토폴로지4. 리더 없는 복제4.1 노드가 다운됐을 때 데이터베이스에 쓰기4.2 정족수 일관성의 한계4.3 느슨한 정족수와 암시된 핸드오프4.4 동시 쓰기 감지 [정리: 여러 장비로 분산해 저장하는 데이터]- 복제의 용도1) [고가용성] 한 장비(또는 여러 장비나 전체 데이터센터)가 다..