All Honey Tip

[카테고리:] 기술 탐방

  • [JAVA] 3. 큐(Queue) 직접 구현하기

    [JAVA] 3. 큐(Queue) 직접 구현하기

    수정 일:

    발행 일:

    큐(Queue) 직접 구현하기 지난 시간에서는 큐(Queue)와 스택(Stack)에 대해 사용법 및 간단한 예시를 살펴봤습니다. 이번 시간에서는 Queue를 직접 구현해보는 시간을 가져보도록 합시다. 연결 리스트(LinkedList)를 활용한 큐 구현하기 연결 리스트란, 유연하게 크기 변경이 가능한 자료구조를 일컫습니다. 이 자료구조는 리스트와 노드로 구성되어있는데, 집합의 단위를 리스트(List), 각 요소의 단위를 노드(Node)라고 생각하시면 됩니다[연결 리스트에 대한 설명은 다음 시간에 더 자세히…

  • [JAVA] 2. Stack 설명 및 예시

    [JAVA] 2. Stack 설명 및 예시

    수정 일:

    ,

    발행 일:

    ,

    Stack이란? 저번 시간에서는 선입선출(FIFO)인 Queue에 대해 알아봤습니다. 이번 포스팅에서는 Stack에 대해 알아보도록 하겠습니다. 자바에서 스택(Stack)은 데이터를 일렬로 나열하여 관리하는 자료 구조 중 하나로, “후입선출” (Last-In-First-Out, LIFO) 원칙을 따릅니다. 쉽게 말해, 스택에 쌓인 데이터들 중 가장 최근에 들어온 데이터가 가장 먼저 빠져나가는 형식입니다. 그럼 자바에서 스택(Stack)을 어떻게 사용하는지 알아보겠습니다. Stack 사용법 자바에서 Stack을 선언하려면 java.util 패키지로부터…

  • [JAVA] 1. Queue 설명 및 예시

    [JAVA] 1. Queue 설명 및 예시

    수정 일:

    발행 일:

    Queue란? 자바에서 Queue란, 간단히 말해 데이터를 일렬로 나열하여 관리하는 자료 구조 중 하나로, “선입선출” (First-In-First-Out, FIFO) 원칙을 따릅니다. FIFO란 쉽게 말해, 큐에 쌓인 데이터들 중, 먼저 들어온 데이터가 먼저 빠져나가게 되는 형식을 일컫습니다. 그럼 JAVA에서 큐(Queue)를 어떤 식으로 사용하는지 알아보도록 하겠습니다. Queue 사용법 우선 Queue를 사용하기 위해서는 Queue와 LinkedList 모두 Import가 필요합니다. Queue 주요 함수 일부 주요한 Queue 인터페이스의…

  • [카프카] 4. 아파치 카프카의 ISR(In-Sync-Replicas)

    [카프카] 4. 아파치 카프카의 ISR(In-Sync-Replicas)

    수정 일:

    발행 일:

    지난 시간에 이어, 아파치 카프카의 ISR(In-Sync-Replicas)에 대해 알아보겠습니다. ISR은 리더 파티션과 팔로워 파티션이 모두 Sync된 상태를 의미합니다. 복제 개수가 2인 토픽(리더 파티션 1개와 팔로워 파티션 1개가 존재)으로 가정해보면, 팔로워 파티션에 리더 파티션의 모든 오프셋이 존재해야 동기화가 완료된 상태라고 할 수 있습니다. ISR이 완전하지 못하다면? 팔로워 파티션이 리더 파티션의 오프셋을 모두 복제하지 못한 상태로 서비스가 지속된다면,…

  • [카프카] 3. 아파치 카프카의 복제(Replication)

    [카프카] 3. 아파치 카프카의 복제(Replication)

    수정 일:

    발행 일:

    지난 포스팅에 이어서, 아파치 카프카에서 가장 중요한 개념인 복제(Replication)에 대해 알아보겠습니다. 복제는 카프카를 장애 허용 시스템(Fault Tolerant System)이라고 할 수 있는 원동력입니다. 장애가 발생해도 데이터를 유지하고 안전하게 사용할 수 있게 해주죠. 카프카 브로커의 복제(Replication) 카프카의 데이터 복제는 파티션 단위로 이루어집니다. 토픽 생성 시 파티션의 복제 개수 (Replication factor)도 같이 설정 되는데, 디폴트로 브로커에 설정된 옵션…

  • [Coding Test] 1. Binary Gap

    [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. 접근 제어자

    [C#] 1. 접근 제어자

    수정 일:

    발행 일:

    접근 제어자(제한자)란? C#에서 접근 제어자는 클래스 내부의 멤버 또는 타입에 대한 외부 접근을 제한하는 데 사용되는 키워드입니다. 다른 코드에서 클래스의 멤버나 타입에 접근할 때, 이러한 접근 제어자를 사용하여 해당 멤버나 타입에 대한 접근 범위를 조절할 수 있습니다. [기술 면접] 3. 스프링의 @Transactional 어노테이션에 대해서 아시나요? 접근 제어자의 종류 C#에서 다섯 가지 주요 접근 제어자가 있습니다. 기본 접근…

  • [카프카] 2. 아파치 카프카의 브로커, 클러스터, 주키퍼

    [카프카] 2. 아파치 카프카의 브로커, 클러스터, 주키퍼

    수정 일:

    발행 일:

    지난 포스팅에 이어서, 아파치 카프카(Apache Kafka)의 브로커, 클러스터, 그리고 주키퍼 등의 기본 개념에 대해 알아보겠습니다. 주키퍼는 카프카 클러스터를 운영하기 위해 필요한 Application이고 1개의 클러스터는 n개의 브로커루 구성되어 있습니다. 일반적으로 장애에 대비하여 최소 3개 이상의 브로커 서버를 클러스터로 그룹핑하여 사용합니다. 용어 설명 이해를 돕기 위해 각 용어의 간단한 설명으로 시작하고 본론에서 상세 설명을 시작하겠습니다. N개의 카프카…

  • MSA(MicroService Architecture) 전환 2편 – Toss Bank

    MSA(MicroService Architecture) 전환 2편 – Toss Bank

    수정 일:

    발행 일:

    지난 시간엔, MSA와 Monolithic 의 특징을 알아보고 Toss Bank의 “지금 이자 받기”에 대해 간략하게 말씀드렸습니다. 이번 시간엔 해당 기능이 무엇인지와 어떤 과정을 거쳐서 MSA로 전환되었는지, 좀 더 깊이 있게 탐구합니다. 우선 해당 기능의 기본적인 비즈니스 로직부터 알아보도록 하겠습니다. (※ 본문에 나오는 Code는 필자의 개인 Code, 의견인 점을 참고해주시기 바랍니다.) 지금 이자받기 Business Logic 지금 이자받기의…