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.
kafka Kafka Connect 와 CDC 에 대해서 1.개요 CDC (Change Data Capture) 를 테스트 해보고자 MS SqlServer 내 테이블을 Debezium SqlServer Connector 로 Kafka Cluster 에 Topic 으로 변경 내역을 전송하는 "소스 커넥터" 를 구동 시키는 과정을 기록한다. CDC는 Source 데이터의 변경을 감지하고 Kafka Cluster 에 이벤트 레코드로 표현하는 방법이며, CDC 를 활용하면 다양한 Source 에서
adtech AdTech 의 구성요소 AdTech 는 광고를 하기 위한 광고기술을 총칭한다. 단순히 보면 광고를 게재할 수 있는 공간을 "판매" 하는 게시자와 그 공간을 "구매"하는 광고주 사이에 존재하는 다양한 플랫폼과 서비스를 지탱하는 기술이라고 볼 수 있겠다. 1. 주요 구성요소 주요 구성요소를 하나 하나 보기 이전에 SSP 와 DSP 관점에서 시작하는 간략한 흐름을 이해하고자 한다.
java Kafka Streams, KTable-KStream Join 1. 개요 Stateful 한 처리를 해야 하는 상황에 Kafka 를 활용할 수 있는 방법으로 Kafka Streams 를 사용해보기로 했다. Stateful, Stateless 하다는 표현이 있는데 여기서 Stateless 하다는 것은 다른 데이터 없이 하나의 이벤트나 데이터로 해당 프로세스를 마감 가능하다는 의미이고, 반대로 Stateful 하다는 것은 이전의 여러 상태의 값들을 저장하고 있다가 이벤트나
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 Docker Compose 로 Redis Cluster 구축하기 1. Redis 클러스터 환경 둘러보기 Redis Cluster 의 기본적인 구조는 아래와 같다. 상단에 클라이언트가 있고 최소 3개의 Node 가 존재하고 각 노드는 Master - Slave 구조를 가질 수 있으며, Master 가 죽을때 복제본을 가지고 있는 n개의 Slave 중 하나 가 Master 를 대체 하는 형태이다. TaskVibes: ADHD Simple Manage -
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 으로 직렬화하고
java Resilience4j, CircuitBreaker & TimeLimiter 적용에 대한 기록 Resillience4j 의 Circuit Breaker 와 Time Limiter 에 대한 기록을 남긴다. 1. 개요 일반적으로 서비스를 운영하다 보면 특정 이벤트나 시간대에 트래픽이 몰리는 경우가 있을 수 있고 부분적으로 DB 나 Cache 에 장애가 발생 할 수 있는 상황이 있다. 이런 경우 어플리케이션 레벨에서 대응 할 수 있는 PlanB 를 준비 할
mongodb Spring Boot, CRUD API 개발을 위한 Reactive MongoDB 연동 Spring Boot 기반으로 Reactive MongoDB 를 사용하여 CRUD API 를 개발하기 위한 기록을 남기도록 한다.
kafka Spring Boot, Reactor Kafka 에서의 순서보장과 중복방지에 대한 기록 (feat. redis) Spring Boot, Reactor Kafka 에서의 순서보장과 Redis 를 이용한 중복방지에 대한 기록
kafka Spring Boot, WebFlux 에서 Reactor Kafka 기본 연동구현 Spring Boot, WebFlux 환경에서 Reactive Kafka 를 이용해서 Producer 와 Consumer 를 구성한 기록을 남긴다.
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 를 작성 하는 것을
java Spring Boot, WebFlux 에서 Reactive Redis Sorted Set 연동 Spring Boot WebFlux 를 학습하면서 Redis 의 Sorted Set 을 연동한 경험을 기록으로 남겨둔다.
java Spring Boot, CRUD API 개발을 위한 기록 (WebFlux 아키텍처 구성과 API) Spring Boot 기반으로 WebFlux, CRUD API 를 개발하기 위한 기록을 남기도록 한다.
benchmark FastAPI (Python) vs Fiber (Go) vs Spring Webflux (Java) FastAPI (Python), Fiber (Go), Spring Webflux (Java) 각 언어별로 동일한 기능을 구현하고 각 언어의 스레드 관리와 이벤트처리에 대한 성능을 비교하고 싶었다. 그러기에 초당 몇건의 요청을 얼마나 안정적이고 빠르게 응답 하는지를 벤치마킹 해보았다.
java Spring Boot, CRUD API 개발을 위한 기록 -2- (MVC 아키텍처 구성과 API) Spring Boot의 기본적인 MVC 아키텍쳐와 흐름에 대해 알아보고 간단한 API 를 구현 해보기로 한다.
java Spring Boot, CRUD API 개발을 위한 기록 -1- (MVC 프로젝트 생성과 의존성) 본격적인 프로젝트를 시작하기 앞서 "프로젝트 생성과 의존성"에 대해 정리를 한다.
ai / ml 뉴스 기사 수집해서 llama2 에 질의하기 (feat. Silicon 맥북 with GPU) M1/M2 같은 Silicon Mac 계열에서 GPU 를 사용하여 llama2 를 파인튜닝 해보고, 뉴스기사를 Embedding 하여 langchain 으로 얼마나 만족스러운 답변을 하는지를 테스트 해봤다.
ai / ml Embedding으로 Llama2 응답 보정하기 (feat. langchain) 로컬머신에서 LlamaCpp 로 Llama2를 구동하고 Llama2 가 부족한 정보를 벡터디비로 보완해서 성능을 최적화 하는 과정을 정리해본다.
ai / ml Vector DB로 악플 구분하기 feat. Weaviate Vector DB 기능을 간단히 테스트 하기 위해 혐오표현 문장을 DB 에 삽입하고, 테스트 하고자 하는 문장이 혐오표현에 가까운지 여부를 판단하는 코드를 작성해본다.
ai / ml Vector DB로 ChatGPT 보정하기 (feat. OpenAI) Vector DB를 알아보다가 간단하게 OpenAI 에서 부족한 정보를 Vector DB를 통해 보완하는 과정을 남겨본다. 1. Vector DB에 대한 소개 1) Vector 일반적으로 벡터는 크기와 방향을 가지고 있는 수치를 나타내는 개념으로 다양한 분야에서 중요한 개념으로 사용된다. 2) Vector Embedding Vector Embedding은 단어나 문장 또는 이미지, 동영상등 다양한 형태의 특징 데이터를 추출해서