1. RSS
- Really Simple Syndication OR Rich Site Summary
- 웹사이트에서 업데이트 내용을 쉽게 공유하고 배포하기 위한 표준 웹 피드 형식
- 일련의 텍스트 데이터로, 주로 뉴스, 블로그 등 웹 컨텐츠를 정기적으로 업데이트하고 이를 자동으로 수신하려는 사용자에 제공
- RSS를 사용하면 웹사이트를 방문하지 않고도 해당 웹사이트의 새로운 컨텐츠를 받아볼 수 있음
- 특징
- 자동 업데이트 : 방문하지 않고 새로운 컨텐츠를 주기적으로 확인하고 가져올 수 있다.
- 다양한 콘텐츠 지원 (텍스트 뉴스, 블로그 글, 오디오, 비디오 등)
- 사용자 정의 : 사용자가 원하는 웹사이트의 RSS 피드를 구족하고, 피드 리더에서 필요한 컨텐츠 관리
1) RSS Feed
- RSS 형식으로 작성된 업데이트 정보를 가지고 있는 문서
- XML형식으로 작성되고 웹사이트의 콘텐츠와 메타 데이터(제목, 작성자, 업데이트 날짜 등)를 포함
- RSS 피드를 가지고 있는 웹사이트는 일정한 주기로 피드를 업데이트하고 이를 구독자에게 제공
2) 최근 동향
- 소셜 미디어 플랫폼과 알고리즘 기반의 컨테츠 제공이 RSS를 대체하는 역할을 하고 있다.
2. merge rebase와 realse
- merge
- squash merge
- abc를 통합한 새로운 커밋을 만들고 그것을 머지한다.
- 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 전략 : https://im-developer.tistory.com/182