S3와 유사한 객체 저장소
저장소 시스템 101 블록 저장소 HDD, SSD 하드디스크 유연하고 융통성이 높음 파일 저장소 블록 저장소 위에 구현됨 파일과 디렉터리 구조 보편적으로 사용 객체 저장소 실시간 갱신이 필요없는 데이터 보관에 초점(아카이브, 백업) 모든 데이터를 수평구조 객체에 보관 계층 디렉터리 X RESTful ...
저장소 시스템 101 블록 저장소 HDD, SSD 하드디스크 유연하고 융통성이 높음 파일 저장소 블록 저장소 위에 구현됨 파일과 디렉터리 구조 보편적으로 사용 객체 저장소 실시간 갱신이 필요없는 데이터 보관에 초점(아카이브, 백업) 모든 데이터를 수평구조 객체에 보관 계층 디렉터리 X RESTful ...
분산 이메일 서비스 1. 문제 이해 및 설계 범위 확정 기능 요구사항 대상 : 10억 명 기능 : 인증, 이메일 발/수신, 가져오기, 필터링, 검색, 스팸 방지, 첨부파일 통신 : HTTP 비기능 요구사항 안정성 : 데이터가 소실되어서는 안됨 가용성 : 장애가 있어도 시스템 동작(복제) 확장성 : 사용자가 늘어도 영...
Cassandra와 MongoDB 비교 사용 사례: Cassandra vs. MongoDB 가동 시간의 비율이 높고 분산 아키텍처를 기반으로 하는 Cassandra는 고가용성 요구 사항에 적합합니다. MongoDB는 문서 중심의 접근 방식으로 비정형 데이터를 처리할 수 있으므로 데이터가 지속적으로 변경되는 시스템에 유용합니다. 둘 중 하나를 선...
언제 사고팔까 매매가는 하락하지만 전세가는 상승할 때 : 바닥에 진입할 수 있는 시기, 다만 여유를 가지고 기다리자. 매매가와 전세가가 동반상승할 때 : 늦었더라도 올라타야 할 때, 빠른 결정이 중요 매매가는 상승하지만 전세가는 정체될 때 : 욕심버리고 다음을 준비 매매가와 전세가가 정체될 때 : 기다리는 자에게 기회가 오는 구간...
LoD (Law of Demeter) 최소 지식의 원칙(The Least Knowledge Principle) 이라고도 함 모든 유닛이 최소한의 지식만을 갖도록 설계해야 한다는 원칙 LoD를 통해 높은 응집도와 낮은 결합도를 유지할 수 있도록 유지할 수 있음 LoD를 위반하는 코드 웹 페이지를 크롤링하는 코드를 작성한다고 가정해보자...
SOLID SRP (단일 책임 원칙) 하나의 클래스나 모듈은 하나의 책임만 가져야 한다. 클래스와 모듈은 서로 의미가 동일하다. 클래스를 분리해야하는 기준 클래스에 코드, 함수 또는 속성이 너무 많아 코드의 가독성과 유지 보수성에 영향을 미치는 경우 클래스가 너무 과하게 다른 클래스에 의존하는 경우 클래스에 private...
4장 카프카 컨슈머: 카프카에서 데이터 읽기 시작하기 카프카에서 데이터를 읽는 애플리케이션은 토픽을 구독하고 구독한 토픽들로부터 메시지를 받기 위해 KafkaConsumer 클래스를 사용한다. 카프카에서 데이터를 읽는 것은 다른 메시지 전달 시스템과 개념이 조금 다름 이는 카프카 특유의 개념과 발상과 연관 ...
suspend fun 이란 코루틴이 중지 되었다가 재개 될 수 있는 지점 다른 suspend를 붙은 함수를 호출할 수 있다. public fun CoroutineScope.launch( context: CoroutineContext = EmptyCoroutineContext, start: CoroutineStart = Corout...
코루틴의 Life cycle Completing 단계가 필요한 이유 자식 코루틴이 있을 경우 응답을 기다려야 하기 때문 부모 자식 코루틴에서 처리 중 에러 발생 시 취소 요청을 전파해야하기 떄문 fun main(): Unit = runBlocking { launch { delay(600L) printWithThre...
CoroutineScope 사실 launch, async는 CoroutineScope의 확장 함수이다. //launch public fun CoroutineScope.launch( context: CoroutineContext = EmptyCoroutineContext, start: CoroutineStart = CoroutineStart....