[카테고리:] 기술 탐방
-
![[카프카] 4. 아파치 카프카의 ISR(In-Sync-Replicas) 2 [카프카] 4. 아파치 카프카의 ISR(In-Sync-Replicas)](https://allhoneytip.com/wp-content/uploads/2023/07/image-78-e1690629341647-optimized.png)
[카프카] 4. 아파치 카프카의 ISR(In-Sync-Replicas)
지난 시간에 이어, 아파치 카프카의 ISR(In-Sync-Replicas)에 대해 알아보겠습니다. ISR은 리더 파티션과 팔로워 파티션이 모두 Sync된 상태를 의미합니다. 복제 개수가 2인 토픽(리더 파티션 1개와 팔로워 파티션 1개가 존재)으로 가정해보면, 팔로워 파티션에 리더 파티션의 모든 오프셋이 존재해야 동기화가 완료된 상태라고 할 수 있습니다. ISR이 완전하지 못하다면? 팔로워 파티션이 리더 파티션의 오프셋을 모두 복제하지 못한 상태로 서비스가 지속된다면,…
-
![[카프카] 3. 아파치 카프카의 복제(Replication) 3 [카프카] 3. 아파치 카프카의 복제(Replication)](https://allhoneytip.com/wp-content/uploads/2023/07/image-78-e1690629341647-optimized.png)
[카프카] 3. 아파치 카프카의 복제(Replication)
지난 포스팅에 이어서, 아파치 카프카에서 가장 중요한 개념인 복제(Replication)에 대해 알아보겠습니다. 복제는 카프카를 장애 허용 시스템(Fault Tolerant System)이라고 할 수 있는 원동력입니다. 장애가 발생해도 데이터를 유지하고 안전하게 사용할 수 있게 해주죠. 카프카 브로커의 복제(Replication) 카프카의 데이터 복제는 파티션 단위로 이루어집니다. 토픽 생성 시 파티션의 복제 개수 (Replication factor)도 같이 설정 되는데, 디폴트로 브로커에 설정된 옵션…
-
![[Coding Test] 1. Binary Gap 4 [Coding Test] 1. Binary Gap](https://allhoneytip.com/wp-content/uploads/2023/08/제목을-입력해주세요_-001-12-e1691678818829-optimized.png)
[Coding Test] 1. Binary Gap
1. Binary Gap 문제 A binary gap within a positive integer N is any maximal sequence of consecutive zeros that is surrounded by ones at both ends in the binary representation of N. For example, number 9 has binary representation 1001 and contains a binary gap of length 2. The number 529 has binary representation 1000010001 and contains two binary gaps:…
-
![[C#] 1. 접근 제어자 5 [C#] 1. 접근 제어자](https://allhoneytip.com/wp-content/uploads/2023/08/제목을-입력해주세요_-001-7-e1691590889533-optimized.png)
[C#] 1. 접근 제어자
접근 제어자(제한자)란? C#에서 접근 제어자는 클래스 내부의 멤버 또는 타입에 대한 외부 접근을 제한하는 데 사용되는 키워드입니다. 다른 코드에서 클래스의 멤버나 타입에 접근할 때, 이러한 접근 제어자를 사용하여 해당 멤버나 타입에 대한 접근 범위를 조절할 수 있습니다. [기술 면접] 3. 스프링의 @Transactional 어노테이션에 대해서 아시나요? 접근 제어자의 종류 C#에서 다섯 가지 주요 접근 제어자가 있습니다. 기본 접근…
-
![[카프카] 2. 아파치 카프카의 브로커, 클러스터, 주키퍼 6 [카프카] 2. 아파치 카프카의 브로커, 클러스터, 주키퍼](https://allhoneytip.com/wp-content/uploads/2023/07/image-78-e1690629341647-optimized.png)
[카프카] 2. 아파치 카프카의 브로커, 클러스터, 주키퍼
지난 포스팅에 이어서, 아파치 카프카(Apache Kafka)의 브로커, 클러스터, 그리고 주키퍼 등의 기본 개념에 대해 알아보겠습니다. 주키퍼는 카프카 클러스터를 운영하기 위해 필요한 Application이고 1개의 클러스터는 n개의 브로커루 구성되어 있습니다. 일반적으로 장애에 대비하여 최소 3개 이상의 브로커 서버를 클러스터로 그룹핑하여 사용합니다. 용어 설명 이해를 돕기 위해 각 용어의 간단한 설명으로 시작하고 본론에서 상세 설명을 시작하겠습니다. N개의 카프카…
-

MSA(MicroService Architecture) 전환 2편 – Toss Bank
지난 시간엔, MSA와 Monolithic 의 특징을 알아보고 Toss Bank의 “지금 이자 받기”에 대해 간략하게 말씀드렸습니다. 이번 시간엔 해당 기능이 무엇인지와 어떤 과정을 거쳐서 MSA로 전환되었는지, 좀 더 깊이 있게 탐구합니다. 우선 해당 기능의 기본적인 비즈니스 로직부터 알아보도록 하겠습니다. (※ 본문에 나오는 Code는 필자의 개인 Code, 의견인 점을 참고해주시기 바랍니다.) 지금 이자받기 Business Logic 지금 이자받기의…
-
![[카프카] 1. 아파치 카프카가 무엇일까? 8 [카프카] 1. 아파치 카프카가 무엇일까?](https://allhoneytip.com/wp-content/uploads/2023/07/image-78-e1690629341647-optimized.png)
[카프카] 1. 아파치 카프카가 무엇일까?
카프카(kafka)라고 불리는 Apache Kafka에 대해 알아봅니다. 카프카는 2011년 LinkedIn에서 파편화된 데이터 수집 및 분배를 고려하여 만든 아키텍처입니다. 데이터를 생성하고 적재하기 위해서는 Source Application(데이터 생성)과 Target Application(최종 적재)을 연결해야 하는데, 초기에는 Source Application에서 Target Application으로 단방향 통신을 함으로써 운영했지만, 아키텍처가 복잡해지고 Application의 개수가 많아지면서 많은 문제가 발생했습니다. 일부 Target Application에 장애가 생기면, 해당 Application을 바라보고 있는…
-

MSA(MicroService Architecture) 전환 1편 – Toss Bank
마이크로서비스 아키텍처(Microservices Architecture, MSA)는 최근 인기를 끌고 있는 혁신적인 아키텍처 패턴입니다. 기존의 모놀리식(Monolithic) 아키텍처의 한계를 극복하고, 높은 유연성과 확장성을 제공하기 위해 여러 개의 독립적인 작은 서비스로 애플리케이션을 분리하여 개발하는 접근 방식입니다. 많은 기업들이 MSA로의 전환을 시도하고 있으며 국내 금융 기업 Toss Bank의 Core Banking 시스템의 일부를 기반으로 알아보도록 하겠습니다. 기존의 Monolithic Architecture Banking System의 대략적인…