분류 전체보기

· JVM/Spring
환경 분리가 왜 필요한가? 애플리케이션은 로컬, 개발, 운영, 테스트 등 다양한 환경을 지원하고 싶을 수 있다. 각 환경마다 다른 자원, 스팩을 사용하는 일은 생각보다 자주 마주친다. SpringBoot 는 이를 지원하기 위한 매커니즘으로 Profile 을 제공한다. yaml 파일로 환경 분리하기 사전 준비 SpringBoot 앱이 로드되자마자 Yaml 파일을 읽어 로깅하도록 지정했다. 어노테이션은 주석을 참고하자. (1) 하나의 application.yaml 에 때려박기 (2) 환경별 yaml 파일 분리하기 profile 을 환경별로 분리하여 정의하고 `application.yaml` 에서 `spring.profiles.active` 값만 지정해줘야한다. 해당 값 미지정시 어느 프로파일로 실행할지 결정..
· JVM
build.gradle 이란? groovy 언어 기반의 패키지 관리 파일 gradle 은 총 3단계로 되어있다. 1. Initialization settings.gradle 설정에 따라 여러 프로젝트 모듈 초기화 2. Configuration Dependency graph 를 생성한다. property 등 속성 값을 미리 지정한다. 3. Execution 사전에 정의된 속성값과 Configuration 에서 생성된 DAG 에 따라 각각의 Task 실행 build.gradle 주요 명령어 테스크 목록 출력 # 실행 가능한 테스크 목록 출력 $ gradle tasks gradle 명령어는 task 단위로 실행된다. 빌드 - 실행 - 삭제 # 빌드 $ gradle build # application 실행파일 ..
· 기타/Kafka
Custom Se/Deserializer 문제점 Apache kafka serialization에 보면 Serializer & Deserializer 역할을 가진 인터페이스를 Serde 가 정의되어있다. 직렬화/역직렬화를 하는 클래스를 Serde 라고 지칭하겠다. public interface Serde extends Closeable { // .. Serializer serializer(); Deserializer deserializer(); } Avro 란 JSON 으로 정의된 Schema Avro 기존 커스텀 Serdes 의 문제를 해결했나 Registry 지원으로 스키마 변경 지원 Avro 스키마에 맞는 Serde 구현체 코드 자동생성 Avro Class 로 불린다. 애플리케이션 변경을 요구하지 ..
· JVM/Error
Kafka Broker 서버 구동 방법 (1) Zookeeper 구동 (2) Broker 구동 문제 상황 아래와 같은 에러가 발생하면서 카프카 브로커 시작 실패 해결 방법 zookeper 와 서버 삭제 References Apache Kafka Apache Kafka: A Distributed Streaming Platform. kafka.apache.org
· JVM/Java
Stream 은 왜 만들어졌나? Java , Kotlin 은 List, Set, Array 등 다양한 Collection 을 제공한다. Collection API 와 Iterate 방식은 표준화 되었지만 각 클래스는 같은 기능을 하는 메소드가 중복 정의되어 있다. List 를 정렬하는 방법만 해도 쉽게 2가지를 떠올릴 수 있다. List.sort Collection.sort 리스트 정렬 public class JavaStreamTest { @DisplayName("Sort list with two way ") @Test void forLoop() { List nums = Arrays.asList(5, 4, 3, 2, 1); nums.sort(new Comparator() { @Override public..
· 기타/Kafka
TL;DR; Kafka Streams' local state store (rocksDB) could not operate on windows because of permission issue. Environment Key Value OS Windows Kafka clients version v3.5.1 Kafka streams version v3.5.1 JDK OpenJDK 20.0.2 Kotlin version 1.9.10 Source Code KafkaConfig.kt @Configuration @EnableKafka @EnableKafkaStreams class KafkaConfig { companion object { const val SOURCE_TOPIC: String = "source-top..
M_Falcon
'분류 전체보기' 카테고리의 글 목록 (3 Page)