2024/06/03 4

[Scala 찍먹하기] 유튜브 크롤링 페이지 개발(feat. vuejs)

8시간에 걸쳐 프로그래밍 언어 Scala로 개발해본 유튜브 크롤링 페이지!찍먹하기가 목적이라 복잡한 로직이나 설정은 넣지 않았지만 의미있는 미니 프로젝트였다.Scala를 기반으로 Akka로 HTTP나 stream 등을 설정했다.MVC 아키텍처 패턴 기반의 Play 프레임워크를 사용할지 말지 고민했지만 익히는데 시간이 걸리겠다 판단했다. 오판이었다..!Express를 해봤기에 Nestjs처럼 폴더구조를 잡아주는 역할을 하는 게 굳이 필요할까 했는데 역시 새로 등장하는 기술에는 이유가 있는 법이었다.

카테고리 없음 2024.06.03

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

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

언어/Scala 2024.06.03

데이터 중심 애플리케이션 설계 (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) [고가용성] 한 장비(또는 여러 장비나 전체 데이터센터)가 다..