지수의 개발 기록장

고정 헤더 영역

글 제목

메뉴 레이어

지수의 개발 기록장

메뉴 리스트

  • 홈
  • 태그
  • 방명록
  • 분류 전체보기 (43)
    • 토론, 독서 (3)
    • 프로그래밍 (37)
      • AWS (2)
      • JPA (2)
      • Python (6)
      • 기타 (5)
      • Architecture (16)
      • kubernetes (3)
      • kotlin (1)
      • kafka (2)

검색 레이어

지수의 개발 기록장

검색 영역

컨텐츠 검색

분류 전체보기

  • [카프카 핵심 가이드] 4장 : 카프카 컨슈머 - 카프카에서 데이터 읽기

    2025.03.30 by jisooo

  • [카프카 핵심 가이드] 1,2,3장 : 카프카 기본 개념, 브로커, 프로듀서

    2025.02.06 by jisooo

  • [Spring] Aspected-Oriented Programming(AOP) 개념과 종류 정리

    2024.02.28 by jisooo

  • [CS] 트랜잭션의 기본 개념과 격리 수준, 전파 옵션 + Spring의 선언적 트랜잭션 관리, 분산 트랜잭션 1부

    2024.02.19 by jisooo

  • [kubernetes] 파드의 상태와 생애주기 및 애플리케이션 상태 검사 (livenessProbe, readinessProbe)

    2024.01.28 by jisooo

  • [Kotlin In Action] 1장 : 코틀린이란 무엇이며, 왜 필요한가?

    2024.01.21 by jisooo

  • [Architecture] 5부 아키텍처 : 25장 계층과 경계

    2024.01.17 by jisooo

  • [Architecture] 5부 아키텍처 : 24장 부분적 경계

    2024.01.17 by jisooo

[카프카 핵심 가이드] 4장 : 카프카 컨슈머 - 카프카에서 데이터 읽기

4.1.1 컨슈머와 컨슈머 그룹 애플리케이션에서 컨슈머 객체를 생성하고, 토픽을 구독하고, 메시지를 받아 검사하고 결과를 작성한다고 해보자.만약 프로듀서가 애플리케이션이 검사할 수 있는 속도보다 더 빠른 속도로 토픽에 메시지를 쓰게 된다면 어떻게 될까? 만약 컨슈머가 단 한개뿐이라면 애플리케이션은 새로 추가되는 메시지의 속도를 따라잡을 수 없다!프로듀서에서 빠른 속도로 브로커에 쓰여진 메시지는 계속해서 뒤로 밀리게 될 것이다. 따라서 우리는 토픽의 파티션들에 쓰여진 데이터를 소비하는 작업을 확장할 수 있어야 한다. 여러개의 프로듀서가 동일한 토픽에 메시지를 쓰듯이,여러개의 컨슈머가 동일한 토픽에서 서로 다른 파티션의 메시지를 받는 것이다.          컨슈머 그룹   카프카의 주된 목표중 하나는 카프..

프로그래밍/kafka 2025. 3. 30. 23:13

[카프카 핵심 가이드] 1,2,3장 : 카프카 기본 개념, 브로커, 프로듀서

📌 1.2 카프카 입문 카프카는 메시지 발행/구독 시스템이다.분산 커밋 로그, 분산 스트리밍 플랫폼이라고 불리기도 한다. 파일 시스템이나 데이터베이스 커밋 로그는 모든 트랜잭션 기록을 지속성있게 보관함으로써,시스템의 상태를 일관성있게 복구할 수 있도록 고안되었다. 이와 유사하게, 카프카에 저장된 데이터는순서를 유지한 채로 지속성 있게 보관되며 결정적으로 읽을 수 있다. 또한 확장시 성능을 향상시키고 실패가 발생하더라도,데이터 사용에는 문제가 없도록 시스템 안에서 데이터를 분산시켜 저장할 수 있다.      📌 1.2.1 메시지와 배치카프카에서 데이터의 기본 단위는 메시지다. (바이트의 배열)메시지는 키를 가질 수 있고, 이 키는 메시지를 저장할 파티션을 결정할 때 사용된다. (파티션 키로 동작)같은 ..

프로그래밍/kafka 2025. 2. 6. 13:28

[Spring] Aspected-Oriented Programming(AOP) 개념과 종류 정리

AOP (Aspected Oriented Programming) 이란? 애플리케이션의 핵심 기능을 담고 있지는 않지만, 애플리케이션을 구성하는 중요한 한 요소이고, 핵심 기능에 부가되어 의미를 갖는 특별한 모듈을 가리킨다. AOP는 문제를 해결하기 위한 핵심 관심사와 전체에 적용되는 공통 모듈 사항을 기준으로 프로그래밍함으로써 공통 모듈을 여러 코드에 쉽게 적용할 수 있도록 도와주는 역할을 한다. ex) 공통 트랜잭션 처리, 공통 인증 / 인가, 로그 처리 등등.. 이러한 부가 기능들을 한 곳에 모아서 독립적인 모듈의 Aspect로 정의한다. 독립된 측면에 존재하는 부가 기능을 Aspect로 모듈화시킨 덕분에, 핵심 비즈니스는 순수하게 그 기능을 담은 코드로만 존재하고 독립적으로 살펴볼 수 있도록 한다...

프로그래밍/기타 2024. 2. 28. 22:52

[CS] 트랜잭션의 기본 개념과 격리 수준, 전파 옵션 + Spring의 선언적 트랜잭션 관리, 분산 트랜잭션 1부

1) 트랜잭션의 개념 트랜잭션이란 "쪼갤 수 없는 업무 처리의 최소 단위"를 말한다. 흔히 드는 예시로는 은행의 ATM 거래를 자주 들어봤을 것이다. 은행 ATM이나 데이터베이스 등의 시스템에서 사용되는 더 이상 쪼갤 수 없는 업무 처리의 최소 단위이다. 예를 들어, A라는 사람이 B라는 사람에게 1,000원을 지급하고 B가 그 돈을 받은 경우, 이 거래 기록은 더 이상 작게 쪼갤 수가 없는 하나의 트랜잭션을 구성한다. 만약 A는 돈을 지불했으나 B는 돈을 받지 못했다면 그 거래는 성립되지 않는다. 이처럼 A가 돈을 지불하는 행위와 B가 돈을 받는 행위는 별개로 분리될 수 없으며 하나의 거래내역으로 처리되어야 하는 단일 거래이다. 이런 거래의 최소 단위를 트랜잭션이라고 한다. 트랜잭션 처리가 정상적으로 ..

프로그래밍/기타 2024. 2. 19. 00:17

[kubernetes] 파드의 상태와 생애주기 및 애플리케이션 상태 검사 (livenessProbe, readinessProbe)

파드의 생애 주기 쿠버네티스에서 디플로이먼트를 이용해 새로운 버전의 애플리이션으로 롤링 업데이트를 진행할 때는 기존 파드가 정상적으로 종료되었는지, 새로운 파드가 사용자의 요청을 받을 준비가 되었는지 확인하는 것이 좋다. 새로운 파드가 생성되어 Running 상태가 되었더라도 애플리케이션의 초기화 작업 등으로 인해서 사용자의 요청을 아직 처리할 준비가 되지 않은 상태일 수 있다. 그뿐만 아니라, 기존의 파드를 종료할 때는 애플리케이션이 처리중인 요청을 전부 제대로 완료한 뒤에 파드를 종료시켜야 클라이언트 입장에서 불편한 에러 상황을 겪지 않는다. 이러한 부분을 신경쓰지 않으면 디플로이먼트를 통해 파드 업데이트를 진행할 때, 사용자의 요청이 제대로 처리되지 않은 채로 파드가 종료되는 상황이 발생할 수 있다..

프로그래밍/kubernetes 2024. 1. 28. 23:45

[Kotlin In Action] 1장 : 코틀린이란 무엇이며, 왜 필요한가?

코틀린이란? 자바 플랫폼에서 돌아가는 새로운 프로그래밍 언어이다. 간결하고 실용적이며, 자바 코드와의 상호운용성을 중시한다. 현재 자바가 사용 중인 곳이라면 거의 대부분 코틀린을 활용할 수 있다. 대표적으로 서버 개발, 안드로이드 앱 개발 등의 분야에서 코틀린을 쓸 수 있다. 기존의 자바 라이브러리나 프레임워크와 함께 잘 동작하며, 성능도 자바와 같은 수준이다. 1.1 코틀린 맛보기 data class Person(val name: String, val age: Int? = null) fun main(args:Array) { val persons = listOf(Person("Jisoo"), Person("jiyeon", age=29)) val oldest = persons.maxBy { it.age ?..

프로그래밍/kotlin 2024. 1. 21. 12:46

[Architecture] 5부 아키텍처 : 25장 계층과 경계

#클린아키텍처 #cleanArchitecture #계층과경계 ​ ​ 25장 계층과 경계에서는, 구체적인 예시 프로그램 "움퍼스 사냥 게임"과 함께 업무 규칙과 UI, 데이터 영속성 관련 세부사항 컴포넌트가 어떻게 통신하고 어떠한 방향으로 의존성을 지니며, 제어 흐름이 어떻게 흘러가는지 설명하고 있다. ​ ​ 5부에서 계속 설명한 컴포넌트 간 계층을 분리하고 경계를 긋는 일을 종합적인 예시를 들어 다시 한번 정리, 강조하는 내용이 담겨있다. ​ ​ ​ ​ 시스템이 보통 세 가지 컴포넌트 (UI, 업무 규칙, 데이터베이스)로만 구성된다고 생각하기 쉽지만, 대다수의 시스템에서 등장하는 컴포넌트의 개수는 이보다 훨씬 많고 복잡하다. ​ ​ 하지만 이처럼 복잡한 시스템에도 나타내는 계층 간의 분리와 경계의 원리는..

프로그래밍/Architecture 2024. 1. 17. 21:41

[Architecture] 5부 아키텍처 : 24장 부분적 경계

#클린아키텍처 #cleanArchitecture #부분적경계 #전략패턴 #퍼사드패턴 ​ ​ ​ 24장에서는, 앞 장에서 계속 설명한 컴포넌트 간 경계를 긋는 일을 완벽하게 구현하기 위해서는 현실적으로 비용이 많이 든다는 점에 대해서 "부분적 경계"를 만들 수 있는 현실적인 타협안들을 제시한다. ​ ​ 완벽한 아키텍처를 만들기 위해서는 쌍방향의 다형적 Boundary 인터페이스, Input과 Output을 위한 데이터 구조를 만들어야 할 뿐 아니라, 두 영역을 독립적으로 컴파일하고 배포할 수 있는 컴포넌트로 격리하는 데 필요한 모든 의존성을 관리해야 한다. ​ 이렇게 하기 위해선 엄청난 노력을 기울여야 하고 유지하는 데도 많은 노력이 수반된다. ​ ​ ​ 마지막 단계 건너뛰기 ​ 부분적 경계를 생성하는 방..

프로그래밍/Architecture 2024. 1. 17. 21:40

추가 정보

인기글

최신글

페이징

이전
1 2 3 4 ··· 6
다음
GITHUB
지수의 개발 기록장 © Magazine Lab
페이스북 트위터 인스타그램 유투브 메일

티스토리툴바