개발
-
kafka streams개발/Kafka 2022. 5. 1. 16:01
카프카 스트림즈 토픽에 적재된 데이터를 상태기반 또는 비상태기반으로 실시간 변환하여 다른 토픽에 적재하는 라이브러리 카프카에서 공식 지원하는 라이브러리, 완벽하게 호환. 편리한 기능 제공 장애가 발생하더라도 정확히 한번 처리할 수 있도록 장애허용시스템을 제공 JVM에서 하나의 프로세스로 실행되기 때문에 분산시스템이나 스케줄링 불필요 내부적으로 스레드 1개이상 생성가능. 스레드는 1개 이상의 태스크를 가짐 태스크: 스트림즈 애플리케이션을 실행하면 생기는 데이터 처리 최소 단위 토폴로지: 2개 이상의 노드들과 선으로 이루어진 집합 ring, tree, star 등이 있는데 스트림즈에서는 tree 형태의 토폴로지와 유사 프로세서: 토폴로지를 이루는 노드 각각 소스 프로세서: 데이터를 처리하기 위해 최초로 선언..
-
kafka 배경 및 용어정리개발/Kafka 2022. 5. 1. 14:59
카프카 배경 데이터 파이프라인의 파편화를 개선 한 곳에 모아 처리할 수 있도록 중앙집중화 데이터 스트림을 한 곳에서 실시간 관리 실시간 스트림 소비 소스 애플리케이션과 타킷 애플리케이션 사이의 의존도를 최소화 큐 자료구조와 비슷하나 소비되고 삭제되지 않음 상용에서는 최소 3대이상의 서버(브로커)에서 분산 운영 지속적 복제 낮은 지연과 높은 데이터 처리량 엄청난 양의 데이터를 안전하고 빠르게 처리 특징 높은 처리량 묶음 단위 처리 병렬 처리 확장성 안정적 확장 가능 영속성 파일 시스템에 저장 페이지 캐시 영역을 메모리와 따로 생성하여 사용 → 메모리 크기의 의존성이 줄어듦, 파일 입출력 속도 줄어듦 고가용성 replication 카프카 용어 브로커 9092 클라이언트와 데이터를 주고받기 위해 사용하는 주체..
-
AWS 서비스개발/키워드 2022. 3. 10. 21:28
EC2 Amazon Elastic Compute Cloud 애플리케이션을 배포, 관리 및 확장하는데 도움이 되는 추가 기능을 제공. 위치는 리전과 가용 영역(각 리전에 있는 격리 영역)으로 구성. 인스턴스 사이즈: https://aws.amazon.com/ko/ec2/instance-types/ AutoScaling: 애플리케이션을 모니터링하고 용량을 자동으로 조정. AMI(Amazon Machine Image): 인스턴스를 시작하는데 필요한 정보를 제공. 실행환경 구성 및 엑세스 관리 등. EBS(Elastic Block Store): 확장가능한 고성능 블록 스토리지 서비스로 EC2용으로 설계됨. 리소스 태깅: 용도, 소유자 또는 환경 등을 기준으로 AWS 리소스를 다양한 방식으로 구분가능. 보안그룹:..
-
Spring Batch 살짝 알아보기-3개발/Spring 2022. 2. 13. 11:57
블로그 글을 참고하며 휴면계정 배치처리 실습을 해보았다. 기본적인 흐름을 블로그를 참고하였다. 1년이 지난 회원을 휴면계정으로 돌리는 배치 실습을 계획하였다. DB는 간단하게 사용하고 싶어서 h2를 사용하였다. (내 실습레포) 스스로 실습해보며 마주했던 이슈들과 해결했던 과정 위주로 정리해보았다. 실습 과정 중 Issues h2를 사용했기 때문에 기존 데이터를 셋팅해주어야 제대로 배치가 돌아가는 것인지 눈으로 확인해 볼 수 있다고 생각했다. 따라서 초기 데이터를 셋팅해주었다. 100명의 유저 데이터를 넣는데 처음 30명은 1년전 updatedTime을 넣어주고, 70명은 1년이 넘지 않도록 설정했다. 처음에 어떻게 데이터를 셋팅해줄까 고민하다가 for문을 돌려 User엔티티를 만들어 데이터로더를 사용해서..
-
Spring Batch 살짝 알아보기-2개발/Spring 2022. 2. 7. 11:10
스프링 공식문서를 보면서 대략적인 개념을 잡고나서 잘 정리되어 있다는 블로그 글 시리즈를 보면서 좀 세부적이 내용에 대해 알아보았다. 그리고 따라하기 예제가 있는 블로그 글을 참고하여 실습을 진행해 보았다. 배치 더 알아보기 스프링 배치를 실행시키면 연결된 DB에 메타 정보 테이블이 설정되어야 한다. 이것은 처음에 DB에 스키마를 보내 설정해주어야 한다. (H2의 경우 자동으로 설정됨) 해당 내용은 의존성 모듈의 schema-mysql.sql 파일 등으로 DB 벤더마다 설정 파일이 들어있다. 이것을 DB을 생성하고 테이블을 생성해주어야 한다. Job, Step 스프링배치에서 Job은 하나의 배치 작업 단위이다. 하나의 Job 안에 여러 Step이 존재할 수 있고, Step 안에 Tasklet 혹은 Rea..
-
Spring Batch 살짝 알아보기-1개발/Spring 2022. 2. 7. 10:30
현재 스프링 배치를 사용하고 있지는 않지만, 3일동안 간략하게 맛보기 스터디를 하면서 공부했던 내용을 정리해 본다. 개요 유저 인터랙션이 없는 큰 정보의 고도화되고 자동화된 처리 주기적이고 반복적인 큰 데이터리 처리 수많은 트랜잭션의 처리 microservice-based , web-based architecture에서 더 각광받고 있음 사용 시나리오 데이터베이스, 파일, 큐 등에서 많은 records를 읽어올 때 어떠한 방식으로 데이터를 처리할 때 수정된 폼으로 back data를 쓸때 많은 자료를 읽고(Reader), 처리하고(Processor), 저장하는(Writer)에 특화되어 있는 기술이다. 현재 내가 필요한 기술이 아니라 단순히 공부였기 때문에, Retry, Repeat, Parallel Pr..
-
개발 키워드 알아보기개발/키워드 2022. 2. 2. 10:24
Hexagonal Architecture 포트와 어댑터 패턴이라고도 불리는 듯 싶다. 구현체에 의존되지 않기 위해서 포트(외부 구현체와 연결하는 인터페이스)와 어댑터(외부 구현체)를 분리하여 작성하는 설계 방식인 듯 싶다. 포트는 entry point 이다. 외부 구현체에 얽매이지 않고 인터페이스를 통해 application과 연결된다. 여기서 UserInterface는 domain을 의미하는 듯 하며, Application은 domain을 조합하는 부분, Infrastructure는 외부 시스템과의 연결을 의미하는 듯 싶다. - LineEngineering의 관련 참고 글 - Hexagonal Architecture 참고 글 상태머신 현재 상태(Current State)에서 어떤 특정한 사건(Event..