Monologue

A developer's monologue

flutter

Flutter, Android Version 변경

1.버전변경 * Project > pubspec.yaml  version: 1.0.0+19 * Project > android > app > build.gradle def flutterVersionCode = localProperties.getProperty('flutter.versionCode') if (flutterVersionCode == null) { flutterVersionCode = '2' } def flutterVersionName = localProperties.getProperty('flutter.versionName') if (flutterVersionName == null) { flutterVersionName = '1.0.0+19' } * Project > android > local.properties  flutter.buildMode=release flutter.versionName=1.

AdTech 의 구성요소
adtech

AdTech 의 구성요소

AdTech 는 광고를 하기 위한 광고기술을 총칭한다. 단순히 보면 광고를 게재할 수 있는 공간을 "판매" 하는 게시자와 그 공간을 "구매"하는 광고주 사이에 존재하는 다양한 플랫폼과 서비스를 지탱하는 기술이라고 볼 수 있겠다. 1. 주요 구성요소 주요 구성요소를 하나 하나 보기 이전에 SSP 와 DSP 관점에서 시작하는 간략한 흐름을 이해하고자 한다.

Kafka Streams, KTable-KStream Join
java

Kafka Streams, KTable-KStream Join

1. 개요 Stateful 한 처리를 해야 하는 상황에 Kafka 를 활용할 수 있는 방법으로 Kafka Streams 를 사용해보기로 했다. Stateful, Stateless 하다는 표현이 있는데 여기서 Stateless 하다는 것은 다른 데이터 없이 하나의 이벤트나 데이터로 해당 프로세스를 마감 가능하다는 의미이고, 반대로 Stateful 하다는 것은 이전의 여러 상태의 값들을 저장하고 있다가 이벤트나

intellij, Code Convention 과 Formatter
java

intellij, Code Convention 과 Formatter

intellij 에서 Code Convention 을 적용하기 위한 설정을 기록한다. Code Convention 은 Naver 캠퍼스 핵데이 Java 코딩 컨벤션을 사용하기로 했다. 캠퍼스 핵데이 Java 코딩 컨벤션 1. Code Style, Formatter 설정 아래 주소의 naver-intellij-formatter.xml 를 다운로드 받아서 Import Scheme 에서 로드 한다. hackday-conventions-java/rule-config/naver-intellij-formatter.xml at master · naver/hackday-conventions-java캠퍼스

Redis, JSON vs MSGPACK
redis

Redis, JSON vs MSGPACK

1. 개요 JVM 환경의 Webflux 서버에서 Redis 사용시 JSON 을 사용할때와 MessagePack 을 사용할때 어떤 점이 다른지 확인하고자 하며 아래와 같이 구현하고 벤치마크 하였다. 2. 구현 1) Dependency implementation 'org.msgpack:jackson-dataformat-msgpack:0.9.4' 2) Configure Java-based configuration 으로 ReactiveRedisTemplate 를 생성하는 메소드를 등록한다. Key 는 String 으로 직렬화하고

Resilience4j, CircuitBreaker & TimeLimiter 적용에 대한 기록
java

Resilience4j, CircuitBreaker & TimeLimiter 적용에 대한 기록

Resillience4j 의 Circuit Breaker 와 Time Limiter 에 대한 기록을 남긴다. 1. 개요 일반적으로 서비스를 운영하다 보면 특정 이벤트나 시간대에 트래픽이 몰리는 경우가 있을 수 있고 부분적으로 DB 나 Cache 에 장애가 발생 할 수 있는 상황이 있다. 이런 경우 어플리케이션 레벨에서 대응 할 수 있는 PlanB 를 준비 할

kafka

Docker Compose 로 Silicon Mac에서 KRaft, Kafka Cluster 구축하기

오랜만에 Kafka 를 볼 일 있어서 Docker Compose 환경으로 Kafka 3.5.1 를 설치하고 기본적인 환경을 테스트 해보고자 한다. 1. Kafka 클러스터 환경 둘러보기 Zookeeper 환경은 오래 되기도 했고 이미지를 새로 받아서 올려야 하는 관계로 KRaft 방식의 클러스터를 구성하기로 했다. 해당 방식의 차이는 브로커의 ID, 호스트, 포트 등의 정보,

java

Spring Boot, WebClient 짧은 사용기

SpringBoot WebClient은 Spring 5.0에서 도입된 Reactive HTTP 클라이언트이다. RestTemplate의 대안으로, HTTP 요청을 보내기 위한 간단하고 직관적인 API를 제공하고 있다. 이 기록은 WebFlux 를 학습해가는 입장에서 BFF 를 구현한다는 가정하에 Member, Banner 의 목록을 제공하는 API 를 호출해서 하나의 API 로 묶어 FrontEnd 를 위한 API 를 작성 하는 것을

Vector DB로 ChatGPT 보정하기 (feat. OpenAI)
ai / ml

Vector DB로 ChatGPT 보정하기 (feat. OpenAI)

Vector DB를 알아보다가 간단하게 OpenAI 에서 부족한 정보를 Vector DB를 통해 보완하는 과정을 남겨본다. 1. Vector DB에 대한 소개 1) Vector 일반적으로 벡터는 크기와 방향을 가지고 있는 수치를 나타내는 개념으로 다양한 분야에서 중요한 개념으로 사용된다. 2) Vector Embedding Vector Embedding은 단어나 문장 또는 이미지, 동영상등 다양한 형태의 특징 데이터를 추출해서