Blog Posts

2022-05-12

작년의 나 제작년 말부터 다른 서비스에 인력이 급하게 필요하여 투입 됨. 그리고 기존 팀에서 개발했던 시스템 기반으로 플랫폼 쪽으로 팀이 분리가 되었다. 완전한 분리가 아닌...

[Cassandra] Primary Key

Cassandra Table 설계시에 중요한 Primary Key 에 대해서 공부해보자.

[Cassandra] Cursor paging

Cassandra 와 같은 nosql 을 사용했을 때, 전체 row 의 갯수를 조회하여 pagination 하는 방법은 득보다 실이 큰 상황이다. cursor base 로 pagination 하여 최대한...

[Cassandra] Counter Column 에 대해서

Cassandra Counter Column 에 대해서 Counter Type 에 대해서 : https://docs.datastax.com/en/cql-oss/3.3/cql/cql_reference/counter_type.html 그외 참고 링크 https://docs.datastax.com/en/cql-oss/3.3/cql/cql_using/useCountersConcept.html https://www.datastax.com/blog/whats-new-cassandra-21-better-implementation-counters https://docs.datastax.com/en/archived/cql/3.1/cql/cql_using/use_counter_t.html

[Spring-Kafka 경험기] Spring-Kafka JsonDeserializer 사용할 때 주의해야할 점

spring-kafka 를 사용해서 consumer 를 구축할 때, 아래와 같이 원하는 객체(TestV1DTO)로 바로를 사용하기 위해 JsonDeserializer 를 선언할 경우 리팩토링할 때 주의해야할 점이 있습니다.

Cache 를 적용하여 서비스 개선하는 방법...

캐싱 전략이라던가 local cache, global cache 등에 대한 정보들은 많다. 업무를 하면서 캐시를 적용하여 성능을 개선한다던가, 초기 캐시레이어를 도입할 때 고민했던 부분들에 대해서 정리해보았다. java,...

[Kafka 경험기] 데이터 순서 보장하기

데이터 순서 보장하기 카프카 Topic 은 순서를 보장하지 않지만, Partition 내에서는 순서가 보장된다. Topic 의 Partition 을 1개, 컨슈머를 1개로 설정하면 순서는 보장 될 것이다....

[Kafka 경험기] 무한 컨슘 및 재처리 기능 추가시 고려할 부분

무한 컨슘 및 재처리 기능 추가시 고려할 부분 계속해서 컨슘 발생 컨슈머에서 max.poll.interval.ms 가 지나도 poll() 이 발생하지 않을 경우, 해당 consumer 에 문제가 생긴걸로...

[Kafka 경험기] Header 사용하기

Header 사용하기 https://kafka.apache.org/documentation/#record https://issues.apache.org/jira/browse/Kafka-Header%20%5Bb%5D payload 에 담기에는 애매한 데이터들을 추가할 때 사용하기 좋습니다. http header 와 같이! 예시) 2개의 Producer 에서 1개 Consumer 로 데이터를...

[Kafka 경험기] 데이터 저장 기간

데이터 저장 일시 Kafka 는 데이터를 디스크에 저장하고 보관기간을 설정 합니다. 보관기간을 설정할 때 사용할 데이터 사이즈도 고려해야할 대상이지만 아래와 같은 경우도 고려하면 좋다. 최대...

[Kafka 경험기] Data 가 1MB 초과 했을 때

Data 가 1MB 초과 했을 때 프로듀싱할 데이터 사이즈가 1MB 를 초과할 경우 아래와 같은 에러가 발생.

[GRPC] 3. GRPC 를 사용해보면서... #1

Server 에서 구현체를 만들지 않으면? client 에서 io.grpc.StatusRuntimeException 가 발생함.

[GRPC] 2. Java 나 Spring 에서 GRPC 사용해보기.

Java에서 사용해보기 build.gradle ```gradle buildscript { repositories { mavenCentral() }

[GRPC] 1. GRPC 살펴보기

GRPC 란? Google 에서 만든 RPC Google Remote Procedure Call 다른 RPC 와 같이 IDL(interface definition language) 를 이용하여 정의함.

Java String 에 대해서

java.lang.String 클래스 Java 에서 문자열을 위한 클래스 불변객체! (immutable)

[Kotlin 맛보기] 2. Null 에 대해서...

kotlin 은 기본 값이 null이 아닌 not null 이다. nullable 하게 사용하기 위해서는 ?를 선언해야한다.

[Spring Batch] spring batch 성능 개선하기(경험 공유)

단순 Select 후 값을 변환하여 Insert 하는 Batch Job 개선하기 A 테이블에서 B 테이블로 Snapshot 데이터를 저장하는 배치 입니다.

[Spring 다시보기] Spring DI

DI 란? Dependency Injection 의존성 주입 객체를 직접 생성하는 것이 아닌 외부에서 생성한 후 주입하는 것

[Kotlin 맛보기] 1. 기본문법

코틀린 공식 홈페이지, 문서 코틀린 연습해보기 코틀린을 처음 배우면서 작성한 글 입니다.

[RestHighLevelClient] 2. Index 생성, 삭제 등

index 생성 kibana dev tool PUT ${indexName} { "settings":{ "number_of_shards": 3, "number_of_replicas": 2 },"mappings":{ "properties":{ "message":{ "type":"text" } } } }

[RestHighLevelClient] 1. 기본 사용법

Java High Level REST Client 를 사용하여 Elasticsearch를 사용해보자!

docker-compose를 이용한 Local 개발용 ELK 세팅하기

로컬에서 개발환경을 구축할 경우에 사용할 수 있도록 docker-compose를 사용하여, elasticsearch와 kibana를 세팅할 예정 n대를 띄우지 않고 싱글노드로도 충분히 테스트 할 수 있으므로, 한대를 띄우는 내용으로...

[Spring Batch] 간단한 코드로 chunk 구조 쉽게 이해하기.

Spring Batch 에서 Tasklet을 사용하지않고, ItemReader, ItemProceesor, ItemWriter 를 사용한 Chunk 개념을 손쉽게 이해하기 위해 간단하게 구현해본 소스 아래 구현한 소스 외에도 Spring batch 에는...

Kafka CLI 사용하기

자주 사용 하는 Kafka CLI 명령어 모음.

Java Kafka Client 사용하기(Producer, Consumer)

java에서 Kafka client 를 사용하여 producer와 consumer 를 간단하게 구현해보자.

docker-compose 를 사용하여 kafka Cluster 및 Kafka Manger 세팅하기

로컬환경에서 간단하게 테스트할 목적으로 Single Broker 로 세팅할 경우 링크 를 확인해보자. 카프카 클러스터 관련해서 테스트 등을 진행하려고 Cluster 환경을 간단하게 구성하고, Kafka Manager를 추가하여,...

Spring Bean에 대하여 - 1

Spring 에서 자주 이야기하고 사용하고 있는 @Bean 에 대해서 알아보자. 설정하는 법, Lifecycle, Scope 등을 알아보자

Vue에서 자주 사용하는 filter를

자주사용하는 Vue Filter!!

[PWA, Vue.js] Vue를 사용해서 PWA 를 만들어보자! -1

PWA 란? PWA : Progressive Web Applications Web Application 과 Native Application(IOS or Andorid 등) 기능 모두의 이점을 갖도록 개발된 웹 앱 여러 기술들이 사용됨....

Spring Boot 에서 MongoDB CRUD 만들기!

Spring Boot 에서 MongoDB CRUD 만들기!