Category

Kafka

Kafka 스트림즈 DSL Queryable store

less than 1 minute read

카프카 스트림즈에서 KTable은 카프카 토픽의 데이터를 로컬의 rocksDB에 Meterialized View로 만들어 두고 사용하기 때문에 레코드의 메세지 키, 메세지 값을 기반으로 keyValueStore로 사용할 수 있다.

Kafka 멀티스레드 컨슈머

less than 1 minute read

카프카는 처리량을 늘리기 위해 파티션과 컨슈머 갯수를 늘려서 운영할 수 있다. 파티션을 여러개로 운영하는 경우 데이터를 병렬처리하기 위해서 파티션 갯수와 컨슈머 갯수를 동일하게 맞추는 것이 가장 좋은 방법이다.

Kafka 컨슈머의 안전한 종료

less than 1 minute read

컨슈머 애플리케이션은 안전하게 종료되어야 한다. 정상적으로 종료되지 않은 컨슈머는 세션 타임아웃이 발생할때까지 컨슈머 그룹에 남게된다.

Kafka Assignor

less than 1 minute read

컨슈머와 파티션 할당 정책은 컨슈머의 assignor에 의해 결정된다. 카프카에서는 RangeAssignor, RoundRobinAssignor, StickyAssignor를 제공한다. 카프카 2.5.0는 RangeAssignor가 기본값으로 설정된다.

Kafka 토픽을 생성하는 두가지 방법

less than 1 minute read

1. 첫번째는 카프카 컨슈머 또는 프로듀서가 카프카 브로커에 생성되지 않은 토픽에 대해 데이터를 요청할 때, 그리고 두번째는 커맨드 라인 툴로 명시적으로 토픽을 생성하는 것이다.

Kafka SaaS

1 minute read

1. 클라우드 서비스 - 컨플루언트 컨플루언트는 카프카에 대한 개념을 최초로 생각하고 아키텍쳐를 제안, 개발한 인물인 제이 크랩스와 그의 동료들이 설립한 회사이다. 제이 크랩스는 링크드인에서 데이터 인프라를 담당하는 아키텍트 팀장이었는데 카프카의 성장 가능성과 미래를 보고...

Kafka 클러스터

1 minute read

개요 카프카 클러스터를 실행하기 위해서는 주키퍼가 필요하다. 주키퍼의 서로 다른 znode에 클러스터를 지정하면 된다. root znode에 각 클러스터별 znode를 생성하고 클러스터 실행 시 root 가 아닌 하위 znode로 설정...

Kafka 클라이언트 메타데이터

less than 1 minute read

카프카 클라이언트는 통신하고자 하는 리더 파티션의 위치를 알기 위해 데이터를 주고(프로듀서) 받기(컨슈머) 전에 메타데이터를 브로커로부터 전달받는다. 메타데이터는 다음과 같은 옵션을 통해 리프레쉬 된다. 카프카 프로듀서 메타데이터 옵션 ...

Kafka 토픽 이름

less than 1 minute read

토픽 이름 제약 조건 빈문자열 X 마침표 1개(.) 또는 마침표 2개(..)로 생성 X 249자 이상 X 사용 가능 문자 (이외 문자 X) 영어 대소문자 숫자 0~9 ...

Kafka 레코드

1 minute read

1. 브로커에 한번 적재된 레코드는 수정할 수 없고 로그 리텐션 기간 또는 용량에 따라서만 삭제된다. 2. 레코드의 구성 timestamp - 타임스탬프 레코드의 타임스탬프는 스트림 프로세싱에서 활용하기 위한 시간을 저장하는 용도로 사용된다. 카...

Kafka 토픽과 파티션

1 minute read

1. 토픽은 카프카에서 데이터를 구분하기 위해 사용하는 단위이다. 2. 토픽은 1개 이상의 파티션을 소유하고 있다. 3. 파티션에는 프로듀서가 보낸 데이터들이 들어가 저장되는데 이 데이터를 ‘레코드(record)’라고 부른다. 4. 파티션은 자료구조에서 접하는 큐(queue)와 비...

Kafka 브로커

4 minute read

카프카 클라이언트와 데이터를 주고받기 위해 사용하는 주체인 애플리케이션이다.

Kafka 개요

less than 1 minute read

데브원영님의 카프카 강의를 바탕으로 공부한 내용을 정리하였습니다!

Back to Top ↑

Git

git 계정 분리

less than 1 minute read

git config 설정 이 포스팅에서는 디렉토리별로 git 계정을 분리하는 방법을 정리한다. 1 .gitconfig 전역 설정 파일 수정 ~/.gitconfig [user] name = zave7 email = zave...

git submodule

less than 1 minute read

$ git submodule - Initialize, update or inspect submodules git submodule 하위 모듈을 상위 모듈과 함께 버전관리를 할 수 있도록 하는 명령이다. 기본적으로 최상위 디렉토리 하위에 서브모듈의...

git pull

less than 1 minute read

$ git pull - Fetch from and integrate with another repository or a local branch git pull 다른 리포지토리 또는 로컬 분기에서 가져와 통합한다. fetch + merge 이다. ...

git clean

less than 1 minute read

$ git clean - Remove untracked files from the working tree git clean git에 의해 추적되지 않는 working directory의 파일들을 제거한다. interactive 모드 및 파일명 패...

git remote

less than 1 minute read

$ git remote - Manage set of tracked repositories git remote 원격 저장소를 지정하거나 조회할때 사용하는 명령이다. 여러 저장소를 지정할 수 있다.

git push

less than 1 minute read

$ git push - Update remote refs along with associated objects git push 로컬 레파지토리에서 추가된 커밋을 원격 레파지토리에 반영하는 명령이다. push할 때 원격 레파지토리의 커밋 히스토리가...

git fetch

less than 1 minute read

$ git fetch - Download objects and refs from another repository git fetch 로컬에는 없지만, 원격 저장소에는 있는 히스토리를 모두 가져온다. 자동으로 merge 되지 않기 때문에 따로 해줘...

git 시작

1 minute read

Git ★ 재밌는 깃 시작~! 깃 정말 중요합니다! 개인적으로 github 시작하기전에 git 부터, gui 도구를 사용하지 않고 cli 로 배우고 사용하는 것을 추천합니다! 기존에 작성했던 내용을 깃블로그로 이전 중 입니다. (git.txt)

git status

less than 1 minute read

$ git status - Show the working tree status git status 깃에 의해 관리되고 있는 상태를 보여주는 명령어이다. 자주 쓰이는 명령어이다.

git rm

less than 1 minute read

$ git rm - Remove files from the working tree and from the index git rm Git에서 파일을 제거하려면 git rm 명령으로 Tracked 상태의 파일을 삭제한 후에 (정확하게는 Staging Are...

git log

less than 1 minute read

$ git log - Show commit logs git log 커밋 히스토리를 조회하는 명령이다.

git init

less than 1 minute read

$ git init - Create an empty Git repository or reinitialize an existing one git init 이 명령은 .git이라는 하위 디렉토리를 만든다. .git 디렉토리에는 저장소 버전관리에 필요...

git diff

less than 1 minute read

$ git diff - Show changes between commits, commit and working tree, etc git diff 파일의 내용을 비교해주는 명령이다. CLI 상으로 보기힘든 부분을 외부 도구를...

git config

less than 1 minute read

$ git config - Get and set repository or global options 깃의 환경설정 명령어이다. 환경설정을 잘 활용하면 효율적으로 깃을 사용할 수 있게된다. 설정은 key=value 형식으로 이루어지는데, Git은 여파 설정 파일을 참조하...

git commit

less than 1 minute read

$ git commit - Record changes to the repository git commit index 영역의 내용을 기반으로 커밋 오브젝트를 생성하는 명령이다. 커밋 오브젝트에는 부모 커밋의 해시 값과, root tree 해시 값에...

git checkout

less than 1 minute read

$ git checkout - Switch branches or restore working tree files git checkout 특정 커밋의 상태로 전환하는 명령이다. 체크아웃의 상세한 내용은 추후 채워넣겠다..

git branch

less than 1 minute read

$ git branch - List, create, or delete branches git branch 현재 로컬의 브랜치 리스트를 조회하는 명령이다. 브랜치의 상세한 개념은 추후 내용을 채워넣겠다..

git add

less than 1 minute read

$ git add - Add file contents to the index git add Index, 다른 말로 Staging Area 영역에 깃에 의해 추적되는 파일들의 상태를 기록하는 명령어이다. commit 을 수행하기 전 필수로 거쳐야할...

Back to Top ↑

NLP

Back to Top ↑

Springboot

기존 Java Springboot 프로젝트에 Kotlin 도입

2 minute read

Java 프로젝트에 Kotlin 을 추가하게 된 계기 기존 프로젝트는 스프링부트 + JPA 로 구성되어있어 생산성이 비교적 좋아졌다. 그렇지만 현재 다른 언어들과 같이 모던하지 못한 문법 때문에 불편함을 느꼈고 특히 자바 8에서 Optional 나왔음에도 완전히 Null...

스프링부트 순환참조

less than 1 minute read

1. 문제 컴포넌트 클래스에서 HandlerExceptionResolver 를 생성자로 주입받게 되면 org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfigurat...

initializationError FAILED

less than 1 minute read

문제 jar build 시 initializationError FAILED 에러가 발생하면서 실패했다.

httpMessageNotReadableException 에러

less than 1 minute read

원인 로그를 남기기 위해 HttpServletRequest 클래스를 감싼 커스텀 래퍼클래스를 작성 HttpServletRequest 의 InputStream 을 읽어 올 때의 조건을 만족하지 않아 발생 문제가 발생하는 부분 : && inp...

스프링부트 Controller Advice 우선순위 지정

less than 1 minute read

@Order 어노테이션 int 값 : 숫자가 낮을 수록 우선순위가 높다 (마이너스 값도 가능) Ordered.HIGHEST_PRECEDENCE : 가장 높은 우선순위 Ordered.LOWEST_PRECEDENCE : 가장 낮은 순위(기본 값) @Co...

Springboot

less than 1 minute read

thread max 스프링부트 thread는 기본 200으로 설정되어있다.

Back to Top ↑

Android

안드로이드 컴포넌트

1 minute read

안드로이드 컴포넌트 컴포넌트는 안드로이드 앱을 구성하는 기본 요소이다. 각 구성 요소는 시슴템이나 사용자가 앱에 들어갈 수 있는 진입점이 되면 경우에 따라서는 다른 구성 요소에 종속되는 경우도 있다. 컴포넌트 종류는 네 가지로 Activity, Service, Cont...

안드로이드 리소스

2 minute read

안드로이드 리소스 리소스는 코드 이외에 프로그램 동작에 필요한 여러 구성요소들을 말한다. 예들들어 설정 파일이나, 이미지, 사운드, 데이터, 텍스트, 다국어 드으이 정보들을 말한다.

Back to Top ↑

DDD

Back to Top ↑

Python

파이썬 Package

1 minute read

파이썬 패키지에 대해 학습한 내용을 간략히 정리합니다. (위키독스 점프 투 파이썬 참조)

Back to Top ↑

AWS

AWS RDS 설정

less than 1 minute read

문제 RDS mariaDB에 Trigger를 생성이 되지 않는다. 원인 AWS RDS는 SYS 엑세스(SUPER 권한)를 제공하지 않는다. 해결방법 MySQL DB 인스턴스에서 바이너리 로깅을 활성화한 경우 DB 인스턴스에 대해 생성하는 사용자 지정 DB 파...

AWS SES 연동

less than 1 minute read

AWS Simple Email Service 연동 하기

Amazon Linux

less than 1 minute read

시간대 수정 1) 인스턴스에서 사용할 표준 시간대를 식별 $ ls /usr/share/zoneinfo 해당 위치의 디렉토리 구조를 탐색하여 원하는 표준 시간대의 파일을 찾아야함 일부 항목은 디렉토리이며 이러한 디렉토리에는 도...

Docker 실습

3 minute read

1. AWS EC2 인스턴스 생성 ( ubuntu ) 접속 : https://ap-northeast-2.console.aws.amazon.com/console/home?nc2=h_ct&region=ap-northeast-2&src=header-signin E...

Back to Top ↑

Hibernate

JPA Lazyloading 시 NoSuchMethodException 발생

less than 1 minute read

1. 문제 신규 Entity 추가 다른 엔티티에서 해당 엔티티를 @JoinColum 으로 매핑 후 Lazyloading 시에 초기화가 되지 않는다는 NoSuchMethodException 발생 Caused by: java.lang.NoSuchMethodExcept...

Back to Top ↑

Docker

도커 로그

less than 1 minute read

- Docker Log 별다른 설정을 하지 않았을 경우 컨테이너의 표준 출력 로그 아래와 같은 경로에 쌓이게 된다 /var/lib/docker/containers//-json.log log 가 계속 쌓여서 disk full 이 발생할 수도...

Back to Top ↑

Kotlin

kotlin scope function

3 minute read

코틀린 스코프 함수 코틀린 표준 라이브러리는 객체의 컨텍스트 내에서 코드 블럭을 실행하기 위한 목적만을 가진 여러가지 함수를 제공한다. 이런 함수들을 람다식으로 호출할 때, 이는 임시로 범위(scope) 를 형성한다. 이 범위 내에서는 객체의 이름이 없어도 객체에 접근...

kotlin kapt 문제

less than 1 minute read

kapt란 kapt (annotation processing for kotlin) 는 코틀린이 자바의 어노테이션을 처리할 때 kotlin 파일의 어노테이션 처리를 포함합니다. JVM을 기동시킬 때 Kotlin의 어노테이션을 포함시키이 위해 사용되는 플러그인입니다. 기존 a...

kotlin variable

1 minute read

Kotlin Variable 코틀린 변수 선언 변수 선언시 키워드 var 또는 val 를 명시해야한다. 변수명: 타입 순으로 작성한다. ex) var v1: Int val v2: Long ...

Back to Top ↑

MariaDB

MariaDB 테이블 파티셔닝

less than 1 minute read

파티셔닝에서 사용할 수 있는 함수 공식문서주소 : https://dev.mysql.com/doc/refman/8.0/en/partitioning-limitations-functions.html 주요 용어 파티션 프루닝 : 접근이 불필요한 파티션은 전혀 접근하지 않는것...

Back to Top ↑

JUnit

JUnit UnnecessaryStubbingException 발생

less than 1 minute read

1. 문제 JUnit(Jupiter) Mockito 클래스의 when, thenReturn 을 이용하여 테스트 코드 작성 테스트 코드 실행 시 아래 익셉션 발생! org.mockito.exceptions.misusing.UnnecessaryStubbingExcep...

Back to Top ↑

Data

통계 및 데이터 분석

5 minute read

통계 및 데이터 분석에 대해 학습한 전반적인 내용을 간략히 정리합니다.

데이터 전처리

2 minute read

데이터 전처리에 대해 학습한 전반적인 내용을 간략히 정리합니다.

데이터 활용

1 minute read

데이터 활용에 대한 전반적인 내용을 간략히 정리합니다.

Back to Top ↑

Command

Back to Top ↑

Win-Tool

window wsl2 설치

1 minute read

- WSL WSL : Windows Subsystem for Linux 윈되우 10에서 네이트브로 리눅스 실행파일을 실행하기 위한 호환선 계층이다. 윈도우에서 리눅스를 사용하기 위한 도구라고 보면된다.

Window vim

less than 1 minute read

PowerShell vim 설치

Back to Top ↑

Querydsl

No property [methodName] found for type [Entity]! 익셉션 발생

less than 1 minute read

- 문제 커스텀 인터페이스와 구현체를 작성하여 애플리케이션 실행 시 No property [methodName] found for type [Entity]! 가 발생했다. - 원인 스프링이 repository 구현체를 naming 규칙에 따라 생성하는데 그 규...

Back to Top ↑

Github

Back to Top ↑

Elasticsearch

Elasticsearch 재인덱싱

less than 1 minute read

Elasticsearch 기본 내용 정리 새 인덱스 생성 PUT books_2 { "mappings": { "properties": { "title": { "type": "text" }, ...

Back to Top ↑

Etc

면접 Tip

less than 1 minute read

면접 팁에 대해서 핵심만 간략하게 정리합니다.

Back to Top ↑

Linear-Algebra

Back to Top ↑

Connection-Pool

Back to Top ↑

Crontab

Back to Top ↑

Timestamp

Back to Top ↑

Software

Software Life Cycle

1 minute read

소프트웨어 생명 주기 (Software Life Cycle) 소프트웨어 생명 주기는 소프트웨어 개발 방법론의 바탕이 되는 것으로, 소프트웨어를 개발하기 위해 정ㅇ의하고 운용, 유지보수 등의 과정을 각 단계별로 나눈 것이다. 폭포수 모형(Waterfall Model) ...

Back to Top ↑

REST

진정한 REST

2 minute read

REST ( Representational State Transfer ) 논문 저자 : Roy T. Fielding 현재 상태 : REST API가 아니지만 REST API라고 부른다.

Back to Top ↑

Numpy

Back to Top ↑

ML-Algorithm

Back to Top ↑