[카테고리:] 기술 탐방
-
[C#] 1. 접근 제어자
접근 제어자(제한자)란? C#에서 접근 제어자는 클래스 내부의 멤버 또는 타입에 대한 외부 접근을 제한하는 데 사용되는 키워드입니다. 다른 코드에서 클래스의 멤버나 타입에 접근할 때, 이러한 접근 제어자를 사용하여 해당 멤버나 타입에 대한 접근 범위를 조절할 수 있습니다. [기술 면접] 3. 스프링의 @Transactional 어노테이션에 대해서 아시나요? 접근 제어자의 종류 C#에서 다섯 가지 주요 접근 제어자가 있습니다. 기본 접근…
-
[카프카] 2. 아파치 카프카의 브로커, 클러스터, 주키퍼
지난 포스팅에 이어서, 아파치 카프카(Apache Kafka)의 브로커, 클러스터, 그리고 주키퍼 등의 기본 개념에 대해 알아보겠습니다. 주키퍼는 카프카 클러스터를 운영하기 위해 필요한 Application이고 1개의 클러스터는 n개의 브로커루 구성되어 있습니다. 일반적으로 장애에 대비하여 최소 3개 이상의 브로커 서버를 클러스터로 그룹핑하여 사용합니다. 용어 설명 이해를 돕기 위해 각 용어의 간단한 설명으로 시작하고 본론에서 상세 설명을 시작하겠습니다. N개의 카프카…
-
MSA(MicroService Architecture) 전환 2편 – Toss Bank
지난 시간엔, MSA와 Monolithic 의 특징을 알아보고 Toss Bank의 “지금 이자 받기”에 대해 간략하게 말씀드렸습니다. 이번 시간엔 해당 기능이 무엇인지와 어떤 과정을 거쳐서 MSA로 전환되었는지, 좀 더 깊이 있게 탐구합니다. 우선 해당 기능의 기본적인 비즈니스 로직부터 알아보도록 하겠습니다. (※ 본문에 나오는 Code는 필자의 개인 Code, 의견인 점을 참고해주시기 바랍니다.) 지금 이자받기 Business Logic 지금 이자받기의…
-
[카프카] 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의 대략적인…