본문 바로가기
카테고리 없음

[CS] RSS, git merge, 카프카, CQRL

by hbIncoding 2023. 9. 8.

1. RSS

  • Really Simple Syndication OR Rich Site Summary
  • 웹사이트에서 업데이트 내용을 쉽게 공유하고 배포하기 위한 표준 웹 피드 형식
  • 일련의 텍스트 데이터로, 주로 뉴스, 블로그 등 웹 컨텐츠를 정기적으로 업데이트하고 이를 자동으로 수신하려는 사용자에 제공
    • RSS를 사용하면 웹사이트를 방문하지 않고도 해당 웹사이트의 새로운 컨텐츠를 받아볼 수 있음
  • 특징
    • 자동 업데이트 : 방문하지 않고 새로운 컨텐츠를 주기적으로 확인하고 가져올 수 있다.
    • 다양한 콘텐츠 지원 (텍스트 뉴스, 블로그 글, 오디오, 비디오 등)
    • 사용자 정의 : 사용자가 원하는 웹사이트의 RSS 피드를 구족하고, 피드 리더에서 필요한 컨텐츠 관리

  1) RSS Feed

  • RSS 형식으로 작성된 업데이트 정보를 가지고 있는 문서
  • XML형식으로 작성되고 웹사이트의 콘텐츠와 메타 데이터(제목, 작성자, 업데이트 날짜 등)를 포함
  • RSS 피드를 가지고 있는 웹사이트는 일정한 주기로 피드를 업데이트하고 이를 구독자에게 제공

 2) 최근 동향

  • 소셜 미디어 플랫폼과 알고리즘 기반의 컨테츠 제공이 RSS를 대체하는 역할을 하고 있다.

2.  merge rebase와 realse

  • merge

merge

  • squash merge
    • abc를 통합한 새로운 커밋을 만들고 그것을 머지한다.

squash merge

  • rebase merge
    • 최신형상에 작업한 것처럼 보여서 머지한 기록이 남지 않는다.

rebase merge

3.  카프카

  • 파이프라인, 스트리밍 분석, 데이터 통합 및 미션 크리티컬 애플리케이션을 위해 설계된 고성능 분산 이벤트 스트리밍 플랫폼
  • Pub-Sub 모델의 메세지 큐 형태로 작동하며 분산환경에 특화되어 있다.
  • 특징
    • 데이터 스트림 플랫폼
    • 고성능 및 확장 가능 : 높은 처리량과 데이터 생산자와 소비자 간의 비동기 통신을 지원하여 처리시간 최소화하고 노드를 추가하여 시스템을 쉽게 확장 가능
    • 메세지 큐 시스템 : Kafka는 메시지 큐 시스템의 역할을 하며, 데이터를 Topic이라는 카테고리로 구성된 큐에 저장. 이를 통해 데이터 스트림을 주제별로 구분하고 처리 가능
    • 내구성과 복제 : 디스크에 데이터를 지속적으로 저장하여 데이터 내구성과 복제 기능을 제공하여 장애 시에도 데이터 유자ㅣ
    • 다양한 클라이언트 및 에코시스템 : 다양한 프로그래밍 언어로 작성된 클랄이언트 라이브러리 지원하여, 다양한 플랫폼 및 언어에서 Kafka와 통합할 수 있다. KafkaConnect, Kafka Streams, KSQL 등의 에코시스템 도구를 통해 데이터 처리 및 분석을 지원한다.
    • 사용 사례 : 실시간 로그처리, 이벤트 드리븐 아키텍처(EDA), 통계 분석, 사물 인터넷 데이터 수집, 실시간 대시보드 및 알림 등
    • 토픽과 파티션 : 카프카 데이터는 토픽에 저장되며 토픽은 여러개의 파티션으로 나뉜다. 이로 인해 데이터를 분산하여 병렬로 처리 할 수 있다.
    • 스트림 처리 : Kafka Streams로 데이터를 실시간으로 처리하고 분석 할 수 있다.

4.  CQRS(Command Query Responsibility Segregation)

  • 소프트웨어 디자인 패턴중의 하나
  • 읽기와 쓰기 작업을 분리하는 것을 중점으로 한다.
  • 읽기와 쓰기 작업을 별도의 모델로 관리하며, 복잡한 응용 프로그램에서 데이터의 일관성, 확장성 및 유지보수성을 향상 시킬 수 있다.
  • 주요 개념과 특징
    • Command & Query 분리 : 시스템의 상태를 변경하는 Command와 데이터를 조회하는 Query로 분리
    • 별도 Command 모델 : 시스템 상태를 변경하는 데 사용. 주로 비즈니스 로직이 포함되며, 데이터의 유효성 검사 및 업데이트 작업이 수행된다.
    • 별도의 Query 모델 : 읽기 작업을 위해 사용된다. 데이터 조회 및 필터링을 위한 최적화된 구조로 설계된다. 이 모델은 빠른 응답과 검색을 위한 인덱싱이나 캐싱과 같은 기술을 사용할 수 있다.
    • 데이터 동기화 : Command 모델이 데이터를 변경하면 해당 변경 사항을 Query 모델에 동기화 해야함. 이러한 동기화는 비동기적으로 백그라운드에서 수행될 수 있다.
    • 스케일링과 성능 향상 : CQRS는 읽기와 쓰기 작업을 분리하므로 각각의 모델을 별도로 최적화할 수 있다. 이는 응용 프로그램의 성능을 향상시키고 스케일링을 더 쉽게 할 수 있도록 도와준다.
    • 복잡한 비즈니스 로직 처리 : CQRS를 사용하면 복잡한 비즈니스 로직을 더 쉽게 처리할 수 있다. Command 모델은 비즈니스 로직에 집중하고 Query모델은 데이터 조회에 집중한다.
    • 이벤트 소싱과 조합 : 이벤트 소싱(Event Sourcing)과 함께 사용되기도 한다.이벤트 소싱은 모든 상태 변경을 이벤트로 저장하고 재생하는 방식으로 동작하며, 시스템의 히스토리를 보존할 수 있다.

5. 참고 문서

 

[Git] Merge 이해하기 (Merge / Squash and Merge / Rebase and Merge)

회사에서 Git을 사용해서 형상 관리를 하고 있다. 그 동안 내가 개인 repository branch에 commit, push등을 해본 적은 많지만 다른 사람과 협업을 하면서 branch를 생성하고 master에 merge를 해본 적은 없어서

im-developer.tistory.com