Study OR Book25 [코틀린 코루틴] 28장 - 다른 언어에서의 코루틴 사용법 [요약]이 장에서는 다른 플랫폼에서 코루틴을 사용하는 데 제한이 있다는 것에 대해 배웁니다.코틀린 코루틴 개념을 다른 언어에서 사용할 수 있도록 변환하는 방법도 배우게 됩니다.기본적인 방법: 중단 함수를 블로킹이나 콜백 함수로 변환그 외: 플로우를 RxJava나 리액터 같은 라이브러리 객체로 변환, 다른 언어에서 사용 가능한 클래스로 래핑 다른 언어에서의 코루틴 사용법언어에 따라 동시성에 접근하는 방식은 제각기 다르다.자바: 스레드를 시작하고 블로킹하는 것이 일반적이다.자바스크립트: 비동기 처리가 기본이며, 비동기 함수를 가지고 있다. 따라서 특정 플랫폼에서 동시성과 관련한 제한에는 어떤 것들이 있는지 알 필요가 있다.이 장에서는 아래 두 가지에 대하여 알아보게 된다.1) 코틀린의 특징 중 어떤 것들이.. 2025. 8. 6. [실전 레디스] Chaprter 09_메모리 관리 이번장에서는 메모리 관리 아키텍처, 메커니즘에 대해 알아보게 된다.운영하며 이슈가 발생하는 경우 원인 파악 그 외에도 메모리를 효율적으로 사용할 수 있게 된다. 메모리 관리 아키텍처레디스 서버는 메모리를 다음과 같은 형태로 사용한다. 레디스는 malloc 함수로 메모리를 할당하기 때문에 운영체제의 메모리 페이지 할당 매핑을 제어할 수 없도록 구현되어 있다.이게 중요한 이유는 레디스에서 데이터 삭제 명령어를 실행해도 확보된 메모리가 운영체제로 반환된다는 보장이 없기 때문이고, 실제 메모리 사용량인 RSS도 변하지 않기 때문이다. 즉, 메모리가 부족한 상태에서 키를 삭제해도 운영체제 관점에서는 메모리 여유 공간이 반영되지 않으므로 주의가 필요하다. 클라이언트에서 보낸 명령어는 레디스 서버의 클라이언트 쿼.. 2025. 7. 21. [실전 레디스] Chaprter 10_클라우드에서 사용하는 레디스 이 장에서는 클라우드에서 사용되는 레디스에 대한 내용을 설명하고 있다. AWS ElastiCache for RedisElastiCache는 AWS에서 제공하는 완전 관리형 인메모리 캐싱 서비스이다. 특징완전 관리형: AWS가 설치, 패치, 백업 모니터링을 모두 처리고가용성: Multi-AZ 배포로 자동 장애 조치 지원확장성: 읽기 전용 복제본을 통한 수평 확장 가능보안: VPC 내 배포, 암포화 지원, IAM 통합모니터링: CloudWatch와 통합된 메트릭 제공장점운영 부담 최소화자동 백업 및 복구네트워크 지연시간 최소화AWS 다른 서비스와의 원활한 통합단점비용이 상대적으로 높음Redis 버전 업그레이드가 AWS 일정에 의존일부 고급 Redis 기능 제한 Redis OSS (Open Source S.. 2025. 7. 21. [코틀린 코루틴] 24장 - 공유플로우와 상태플로우 공유플로우(SharedFlow)SharedFlow: 이벤트 스트림을 여러 수집자에게 브로드캐스팅하는 플로우 특징여러 수집자가 동시에 값을 수집할 수 있음수집자가 없어도 값을 방출할 수 있음버퍼링과 리플레이 기능 제공완료나 예외를 공유하지 않음 아래는 브로드캐스트 채널과 비슷한 MutableSharedFlow 이다.공유플로우를 통해 메시지를 보내면 대기하고 있는 모든 코루틴이 수신하게 된다. replay = 0 이라는 의미는 새로운 수집자에게 이전 값을 보내지 않는다.즉, 수집자(각 launch의 collect)가 구독한 시점 이후에 내보내지는 값만 받게 된다.아래 두 개의 코루틴이 동시에 같은 SharedFlow를 구독하게 되며, 각각 #1, #2로 구분되어 출력된다.suspend fun main(): .. 2025. 7. 14. [실전 레디스] Chaprter 08_레디스 클러스터 8.1 레디스 클러스터 기능 개요레디스 클러스터란?레디스 클러스터는 여러 레디스 인스턴스를 하나의 논리적 단위로 묶어 수평적 확장(horizontal scaling)을 지원하는 분산 시스템 주요 특징자동 샤딩(Auto Sharding): 16,384개의 해시 슬롯으로 데이터를 자동 분산고가용성: 마스터 노드 장애 시 자동 페일오버확장성: 노드 추가/제거를 통한 동적 확장 데이터 일관성: 강력한 일관성 모델 제공 클러스터 vs 센티넬목적수평 확장 + 고가용성고가용성 (모니터링 + 페일오버)데이터 분산자동 샤딩복제 기반최소 노드 수6개 (마스터 3 + 슬레이브 3)3개 (센티넬 노드) 8.2 레디스 클러스터 장애 탐지장애 탐지 메커니즘메커니즘 레디스 클러스터는 고시프 프로토콜(Gossip Protocol)을.. 2025. 7. 14. [실전 레디스] Chaprter 07_레플리케이션 레디스의 레플리케이션과 메커니즘을 알아보는 시간 데이터 레플리케이션: 쓰기 작업이 있을 때마다 업데이트된 데이터를 다른 서버로 복제하는 것 위 방식을 통해 얻을 수 있는 것서버 추가 및 리소스 확장하여 읽기 쿼리의 부하 관리데이터 중복성을 통한 페일오버로 가용성 얻을 수 있음 7.1 레플리케이션 기능단일 노드 방식은 장애나 네트워크 연결 문제, 시스템 충돌 같은 문제에 쉽게 영향을 받는다.따러서 실제 운영에서는 다중 노드로 구성하여 가용성을 확보한다. 레디스는 여러 노드로 운영하기 위한 레플리케이션 기능을 제공하고 있다. 마스터-레플리카 모델에서는 지속적으로 마스터의 업데이트 내용을 여러 레플리카에 반영하는데, 이 방식은 RDBMS에서 사용하는 방식과 유사하다. 레플리케이션의 목적은 '읽기 작업 확.. 2025. 7. 7. 이전 1 2 3 4 5 다음