profile
수동적인 과신과 행운이 아닌, 능동적인 노력과 치열함

[스프링 배치] Item Reader and Item Writer

모든 배치 처리는 다량의 데이터를 읽어서, 계산하고, 그 결과를 쓰는 작업이다. 스프링 배치는 따라서 bulk read, wirte를 위해 세가지 핵심 인터페이스를 제공한다. Item Reader ItemReader는 간단한 개념이긴하지만, 매우 다양한 입력으로부터

2022년 3월 26일
·
0개의 댓글
·

무제

설득당할 수 있어야 하고설득할 수 있어야 한다.

2022년 3월 4일
·
0개의 댓글
·
post-thumbnail

스프링 배치 - Job 설정과 실행

tags: Job 인터페이스 구현체는 다양하고, 설정방법도 다르고 Builder 패턴으로 이를 추상화한다.Job(보통 Step을 가지고 있는)은 JobRepository가 필요하다.JobRepository는 BatchConfigurer를 통해 설정한다.위에 보이는 Jo

2022년 2월 20일
·
0개의 댓글
·
post-thumbnail

스프링 배치 - 소개 및 도메인 개념

https://godekdls.github.io/Spring%20Batch/introduction/굉장히 잘 번역되어져 있다.스프링 배치의 기본 가이드라인, Batch processing 전략등은 두고 두고 봐도 좋을듯.간단하게 요약하자면, 스프링 배치 프로젝

2022년 2월 10일
·
0개의 댓글
·

12장 - 상속 다루기

상속 다루기는 다음과 같은 내용을 담고 있다.메소드 올리기필드 올리기생성자 올리기메소드 내리기필드 내리기타입코드를 서브클래스로 바꾸기서브클래스 제거하기슈퍼클래스 추출하기계층 합치기서브클래스를 위임으로 바꾸기슈퍼클래스를 위임으로 바꾸기많네...동기 : 동일한 기능을 하

2022년 2월 5일
·
0개의 댓글
·

리팩토링 - 9장 데이터 조직화

데이터 구조는 프로그램에서 중요한 역할을 한다. 그러나 데이터들이 여러 서비스에서 무분별하게 참조된다면 혼란과 버그를 낳을 수 있다.따라서 데이터구조를 리팩토링 함에 따라, 데이터 구조로 인한 유지보수 비용을 절약하자.참조가 불분명하여 변수가 어디서 변경될지 예측하지

2022년 1월 22일
·
0개의 댓글
·

도메인주도설계 - Aggregate와 Repository

오래만의 글이다 👨‍💻목적 : 여러객체로 구성된 객체의 일관성을 좀더 쉽게 유지하기 위해, 객체간의 범위를 묶는 것객체와 객체들간의 결합된 모델을 하기에는 많은 비용이 든다.여러 사용자가 객체를 동시에 접근할 경우 일관성을 유지하기가 쉽지 않다.예로들면 어떤 예제가

2022년 1월 20일
·
0개의 댓글
·

4장 테스트 구축

코드의 검증을 컴파일러가 수행할 수 있도록 한다.결과를 정의해두고, 정의해둔대로 코드가 결과대로 실행했는지는 테스트 코드가 검증해준다.따라서 사람이 하는 실수를 원천 방지 -> 생산성 증대테스트 프레임워크 JUnit, MochaTDD 기법의 탄생설계 - 테스트 코드 작

2021년 12월 11일
·
0개의 댓글
·

클린코드 - 시스템 (관심사 분리)

시스템이라 쓰고 결국 클린 코드가 말하고자 하는 내용을 반복한다.도시에서 각각의 역할과 책임들이 잘짜여져있듯이 소프트웨어도 시스템들간의 역할과 책임을 잘 분리 해놔야 구성요소를 효율적으로 사용할 수 있음.이 장에서는 좋은 시스템을 구성하기 위해 관심사의 분리를 잘해야

2021년 9월 25일
·
0개의 댓글
·
post-thumbnail

kafka로 Chat Application 만들기 정리

카프카 환경세팅채팅 어플리케이션 구축카프카 연동nginx 환경세팅(도커) 및 로드밸런싱, 리버스 프록시 모든 서버의 채팅의 동기화위 conf 파일을 보듯이 nginx를 통해 카프카와 연동된 채팅서버들을 Load Balancing을 해주고 있다.여기서 발생하는 문제점은

2021년 9월 25일
·
0개의 댓글
·
post-thumbnail

클린코드 6장. 객체와 자료구조

캡슐화 하는 이유 : 남들이 변수에 의존하지 않고, 추상화된 메소드만을 통해서 프로그램을 서술해 나가도록 할 수 있음그래서 캡슐화를 왜 해야하는지 그럼, 무작정 캡슐화를 하면 되는걸까 라고 의문점을 던지는 것으로 시작해서 객체지향적인 풀이법이 마냥 해답은 아니다. 어떤

2021년 8월 22일
·
0개의 댓글
·
post-thumbnail

카프카 활용한 채팅 어플리케이션 만들기 - (계획 - 2)

채팅 어플리케이션을 어떻게 구현할지에 대해서 좀 더 생각을 해봤습니다 ㅎㅎ..카프카는 기본적으로 pull based pub/sub 형태를 띄고 있어서, 데이터의 분산 처리에 용이합니다.채팅 같은 경우는 producer가 메시지를 queue에 전달하면, 구독하고 있는 모

2021년 8월 1일
·
2개의 댓글
·
post-thumbnail

카프카 docker compose.yaml

도커 컴포즈 설정하는데, 이렇게 시간 걸리기 있는지 모르겠다.docker hub docu에서는 docker compose up -d --scale kafka=3 으로 스케일링 해주고 있는 것 같은데, 왜 난 container 이름 규칙 때문에 생성되지 않는지 모르겠다.

2021년 7월 22일
·
0개의 댓글
·

[쿠버네티스] RBAC 기반 ServiceAccount

쿠버네티스는 보안측면에서도 다양한 기능 제공RBAC를 기반으로 하는 서비스 어카운트서비스 어카운트 : 사용자 또는 어플리케이션 하나에 해당RBAC(Role based Access Control) : 특정명령을 실행할 수 있는 권한 (서비스를 읽을 권리, 포드를 생성할

2021년 7월 22일
·
0개의 댓글
·
post-thumbnail

Kafka 활용한 채팅 어플리케이션 만들기 - (계획)

코드에 대한 복습은 역시 토이 프로젝트 만들어보면서, 익히는게 가장 와닿을 것 같다.토이 프로젝트로 만들어보면 어떨까 생각이번 프로젝트의 목표는 다음과 같다.카프카에 익숙해지기분산처리를 할 수 있는 카프카 채팅 어플리케이션 만들기소켓은 특정 유저에게만 붙어서, 다른

2021년 7월 22일
·
0개의 댓글
·
post-thumbnail

카프카 컨슈머 상세개념

카프카는 처리량을 늘리기 위해 파티션 개수 와 컨슈머 개수 를 늘려서 운영할 수 있음.파티션과 컨슈머 개수를 동일하게 맞추는 것이 가장 좋은 카프카 운영법파티션의 데이터를 처리하는 방법은 다수의 프로세스 를 운영하거나, 다수의 쓰레드 를 운영하는 방법이 존재자바는 Th

2021년 7월 19일
·
0개의 댓글
·

GOF - 템플릿 메소드 패턴

클래스의 구현중 자주 변할 수 있는 부분의 구조만을 제공하고 구체적인 구현의 책임은 서브 클래스로 미루는 패턴어떤 한 알고리즘을 이루는 부분 중 변하지 않는 부분을 한번 정의해 놓고 다양해질 수 있는 부분은 서브클래스에서 정의할 수 있도록 남겨두고자 할 때서브 클래스

2021년 7월 17일
·
0개의 댓글
·

카프카 프로듀서 옵션

카프카 프로듀서의 acks 옵션 0,1,-1(all) 로 나눌 수 있음일반적으로 브로커가 동시에 유실되는 경우가 매우 적기 때문에 ISR 중 하나만 확인해도 거의 데이터의 안전성을 보장여러 번 연산을 수행하더라도 동일한 결과를 내는 것멱등성 프로듀서는 동일한 데이터를

2021년 7월 14일
·
0개의 댓글
·

apache redirect flag

https://zetawiki.com/wiki/%EC%95%84%ED%8C%8C%EC%B9%98_mod_rewrite_RewriteRule\_%ED%94%8C%EB%9E%98%EA%B7%B8

2021년 7월 9일
·
0개의 댓글
·

k8s - 서비스

쿠버네티스 또한 따로 공부했지만, 내일 스터디 발표를 위해 적은 정리 요약본.여러개의 디플로이먼트를 하나의 완벽한 어플리케이션으로 연동하려면 포드 IP가아닌 서로를 발견(Discovery)할 수 있는 방법이 필요Container 와 Pods 의 IP는 영속적이지 않아

2021년 6월 27일
·
0개의 댓글
·