본문 바로가기
반응형

분류 전체보기350

카프카 스트림즈 카프카 스트림즈란? 카프카 스트림즈는 토픽에 적재된 데이터를 상태기반 또는 비상태기반으로 실시간 변환하여 다른 토픽에 적재하는 자바 라이브러리다. 스트림즈는 카프카에서 공식적으로 지원하는 라이브러리다. 자바 기반 스트림즈 애플리케이션은 카프카 클러스터와 완벽하게 호환되면서 스트림 처리에 필요한 편리한 기능들(신규 토픽 생성, 상태 저장, 데이터 조인 등)을 제공한다. 비상태 기반 처리 필터링이나 데이터를 변환하는 처리다. 데이터가 들어오는 즉시 처리하고 바로 프로듀스한다. 따라서 유실이나 중복이 발생할 염려가 적고 개발이 쉽다. 상태 기반 처리 상태 기반 처리는 직접 구현이 너무 어렵다. 윈도우, 조인, 취합과 같은 처리는 이전 받았던 데이터를 프로세스가 메모리에 저장하고 있으면서 다음 데이터를 참조해 .. 2023. 3. 30.
카프카 기초 카프카란? 아파치 카프카(Apache Kafka)는 분산 스트리밍 플랫폼으로, 대용량의 실시간 데이터 스트림을 처리하기 위해 설계되었다. 카프카는 대량의 데이터를 안정적이고 빠르게 처리할 수 있으며, 대규모 분산 시스템에서 확장성과 내결함성을 보장한다. 소스애플리케이션과 타겟 애플리케이션의 결합도를 낮추기 위해 등장했다. 카프카 토픽 카프카에서 데이터가 들어가는 공간을 토픽이라고 부른다. 토픽은 여러 개를 생성할 수 있다. 목적에 따라 이름을 명확하게 적어야 유지보수가 편리하다. 데이터베이스 테이블과 파일 시스템의 파일과 유사하다. 카프카 프로듀서가 토픽에 데이터를 넣고, 카프카 컨슈머가 데이터를 가져간다. 하나의 토픽은 여러 개의 파티션으로 구성된다. 파티션 파티션은 0번부터 시작한다. 파티션은 큐와 .. 2023. 3. 29.
OAuth2 OAuth2 위키피디아의 OAuth 정의는 다음과 같다. 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준이다. OAuth는 Open Authorization의 약어다. OAuth는 인터넷 프로토콜, 즉 통신을 하기 위한 약속이다. 권한 부여 프레임워크라고 부르는 경우가 많다. 타사 웹 사이트나 웹이 리소스에 접근할 수 있게 허용하는 것이 주 목적이다. 그리고 프로토콜이므로 OAuth2 흐름 정의와 함께 다른 플랫폼, 도구, 언어를 적용할 수 있다. OAuth2는 OAuth보다 업그레이드 된 버전이라고 생각하면 되겠다. OAuth2 인증 아키텍처의 구성 요소.. 2023. 3. 20.
스프링 부트 액츄에이터 액츄에이터 Actuator 스프링 부트가 제공하는 액츄에이터는 지표, 추적, 감사, 모니터링과 같은 프로덕션 준비 기능을 매우 편리하게 사용할 수 있는 다양한 편의 기능을 제공한다. 나아가서 다양한 모니터링 시스템과 매우 쉽게 연동할 수 있는 기능도 제공한다. 액츄에이터 의존성 추가 아래 의존성을 build.gradle에 추가해야지 액츄에이터를 사용할 수 있다. implementation 'org.springframework.boot:spring-boot-starter-actuator' // actuator 추가 액츄에이터 기능 사용 액추에이터를 사용하려면 애플리케이션의 main() 메서드를 실행시키고 /actuator 경로로 접근해야 한다. /actuator 경로를 통해 액츄에이터가 제공하는 수 많은 .. 2023. 3. 4.
스프링 부트 자동 구성 스프링 부트의 자동 구성 스프링 부트는 자동 구성(Auto Configuration)이라는 기능을 제공해서, DataSource, TransactionManger과 같은 일반적으로 자주 사용하는 수많은 빈들을 자동으로 등록해준다. 자동 구성 덕분에 개발자는 반복적이고 복잡한 빈 등록과 설정을 최소화 하고 애플리케이션 개발을 빠르게 시작할 수 있다. 스프링 부트는 spring-boot-autoconfigure라는 프로젝트 안에서 수 많은 자동 구성을 제공한다. @AutoConfiguration: 자동 구성을 사용하려면 이 애노테이션을 등록해야 한다. 이 애노테이션을 살펴보면 메타 애노테이션으로 @Configuration을 가지고 있으므로 빈을 등록하는 자바 설정 파일로 사용할 수 있다. after의 의미는.. 2023. 3. 4.
서블릿 컨테이너, 내장 톰캣과 스프링 부트 먼저 JAR와 WAR에 대해 알아보자. JAR Java Archive의 줄임말이다. 자바의 클래스 파일과 여러 리소스를 묶어서 만든 압축 파일이다. 이 파일은 JVM위에서 실행되거나 또는 다른 곳에서 사용하는 라이브러리로 제공된다. 직접 실행하는 경우 main() 메서드가 필요하고, MANIFEST.MF 파일에 실행할 메인 메서드가 있는 클래스를 지정해야 한다. WAR Web Application Archive의 줄임말이다. WAR 파일은 WAS에 배포할 때 사용하는 파일이다. 웹 애플리케이션 서버 위에서 동작한다. HTML같은 정적 리소스와 클래스 파일을 모두 포함하므로 JAR보다 구조가 복잡하다. 과거와 현재의 WAS 사용 방식 과거에는 스프링으로 웹 애플리케이션을 개발할 때는 먼저 서버에 톰캣과 같.. 2023. 3. 3.
반응형