Kafka란대규모 실시간 데이터 스트리밍을 처리하고 관리하는 분산 이벤트 스트리밍 플랫폼입니다. 링크드인(LinkedIn)에서 개발되었으며, 현재 오픈 소스로 제공되어 널리 사용되고 있습니다.사용 사례로그 및 메트릭 수집대규모 시스템에서 생성되는 로그와 메트릭 데이터를 카프카에 전송하여 중앙에서 실시간으로 수집, 처리, 분석실시간 데이터 파이프라인데이터를 한 시스템에서 다른 시스템으로 실시간으로 전달하는 데이터 파이프라인 구축에 사용됩니다.실시간 스트리밍 분석금융 거래, IoT 센서 데이터 등 실시간 스트리밍 데이터를 처리하고 분석하는 데 사용됩니다.메시지 큐서로 독립적인 서비스 간의 메시지 교환을 위해 사용됩니다. 이벤트 스트리밍 플랫폼이란이벤트 스트리밍 플랫폼은 데이터를 실시간으로 스트리밍하고 처리..
STMOP란Simple Text Oriented Messaing Protocol의 약자WebSocket 위에서 동작하는 텍스트 기반 메시징 프로토콜클라이언트와 서버가 전송할 메시지 유형, 형식, 내용들을 정의하는 메커니즘기본적으로 Publish-Subscribe 구조로 되어있다.Publish-Subscribe 구조란 **메시지를 공급하는 주체와 소비하는 주체를 분리**해 제공하는 메시징 방법이다. Springboot에서 STOMPWebSocket 기반으로 각 Connection마다 WebSocketHandler를 구현하지 않고 @Controller로 된 객체를 이용해 관리할 수 있음메시지는 STOMP의 Destination 헤더를 기반으로 @Controller 객체의 @MethodMapping 메서드로 ..
Transaction이란트랜잭션은 데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위를 의미합니다. 데이터베이스의 상태를 변화한다는 것은 insert, update, delete 같은 SQL 문을 이용해 데이터베이스에 접근하는 것을 의미합니다. ⭐️ Spring에서의 @Transcational 이란Springboot에서 @Transcational은 하나의 함수가 하나의 데이터베이스 트랜잭션의 범위 안에서 실행되어야 하는 것을 명시합니다. 해당 어노테이션을 메서드에 적용시키면, Springboot는 해당 메서드를 시작할 때 트랜잭션을 시작하고, 메서드가 성공적으로 완료되면 트랜잭션을 commit 합니다. (만약, 도중 예외가 발생하면 rollback 합니다.) 이를 통해 비정상적인 종료나 오류로 인..
Stream(). collect()stream(). collect()는 데이터의 중간 처리 후 마지막에 원하는 형태로 변환해 주는 역할을 합니다.stream 요소들을 List, Set, Map 자료형으로 변환stream 요소들의 결합 (joining)stream 요소들의 통계 (최대, 최소, 평균값)stream 요소들의 그룹화와 분할 Collectors.toList()모든 Stream의 요소를 List 인스턴스로 수집하는 데 사용합니다.stream().collect(Collectors.toList());stream().toList(); Collectors.groupingBy()Collectors의 groupingBy()는 일부 속성 별로 객체를 그룹핑하고 결과를 Map 인스턴스에 저장하는 데 사용됩니다...