Taes-k DevLog
  • 몰라도 되는 스프링
  • Refactoring (2판)
  • Review
  • 요령과 기본(Spring)

Debezium CDC를 활용한 DB 변경 로그 시스템 구축

CDC(Change Data Capture)를 사용하는 이유 DBMS의 Transaction log를 통해 변경데이터를 분석하기때문에 데이터 변경사항이 100% 보장됩니다. 쿼리를 통한 데이터 추출이 아니기때문에 DBMS에 부하가 적습니다. 쿼리를 통한 ‘폴링’방식의 데이터 추출시 최종 데이터 변경 내용만 조회 되기 때문에...

02 Mar 2021

몰라도 되는 Spring - Spring batch 메타 데이터 스키마

Spring batch를 사용하기위한 첫 단계 요청이 들어올때 마다 실시간으로 데이터를 처리 하는것이 아닌 일괄적으로 모아서 하는 작업을 배치 (Batch) 작업이라고 합니다. 이러한 특성때문에 배치작업은 일반적으로, ‘정해진 시간에 대량의 데이터를 일괄적으로 처리한다’는 특징을 갖습니다. Spring에서는 Spring...

01 Mar 2021

avro schema registry 설치하기

confluent schema registry 단독 설치 Confluent사 에서 제공하는 schema-registry를 사용하기위해 찾아보던중, 공식 사이트에서 schema-registry를 단독으로 설치하는 예제를 제공해주지 않아 정리하여 글을 남깁니다. 공식 사이트에서는 confluent-platform을 통해 zookeeper, kafka, management-console, schema-registry를 통합하여 설치 하게 되어 있는데...

26 Feb 2021

ELK를 사용한 로그 시스템 구축하기

ELK 로그 환경 요즈음 로그 시스템을 만들때 아마도 가장 많이 사용되는 기술은 ELK일 것입니다. ELK에 대해서는 너무 잘 알려져있기 때문에 설명은 생략하겠습니다. (https://www.elastic.co/kr/what-is/elk-stack) 이번 포스팅에서는 Kafka + ELK 를 통해서 로그 시스템을 구축하는 예제를 정리하려...

15 Feb 2021

몰라도 되는 Spring - AOP Proxy

Spring AOP 객체 지향인 OOP 를 보완하기 위해 Spring 에서 제공하는 관점 지향의 AOP에 대해 알아보도록 하겠습니다. OOP의 주된 모듈이 클래스이기 때문에 AOP는 유사한 목적을 갖는 클래스들을 관통할수 있도록 Aspect 단위로 모듈화를 합니다. 이를 위해...

07 Feb 2021

Avro를 사용해 Kafka message를 송수신 해보자

IDL Avro를 설명하기 전, 인터페이스 정의 언어(Interface Description Language, 이하 IDL)에 대해서 먼저 간략하게 말씀을 드리겠습니다. IDL은 소프트웨어 컴포넌트간 통신시 사용되는 인터페이스를 정의 한 언어입니다. 동일한 언어를 사용하는 소프트웨어 (Java ↔ Java) 뿐만 아니라 다른...

05 Feb 2021

Java의 Argument 전달방식

Call by Value, Call by Reference Java Argument 전달방식에는 대부분 알고계시다시피 Call by value, Call by reference 두가지 방식이 있습니다. 이는 단어적의미로는 잘 와닿지는 않지만, 전문용어로 평가 전략(Evaluation Strategy)이라고 합니다. Java의 Argument 전달방식을 알아보기전에 위...

23 Jan 2021

과연 java.nio는 java.io보다 항상 좋은 성능을 보일까?

java.nio는 java4 부터 java.io의 단점을 보완하기위해 추가된 패키지로 nio(new-io)라는 이름으로 등장 하였습니다. (+ java7 부터 nio2를 통해 java.io와 java.nio가 추가 개선되었습니다.) 이번 포스팅에서는 File Read/Write 작업에 대해 java.io 를 사용 한 코드와 java.nio 를 사용한...

06 Jan 2021

MSA 프로덕션 레디 서비스 - 보안, 공통환경, 모니터링 (MSA-7)

MSA 보안 서비스 일반적으로 monlithic 환경 에서는 세션기반으로 보안 서비스가 구동되지만, 세션이 분리되어있는 MSA 환경 에서는 세션기안 보안 서비스를 사용하기가 어렵습니다. 일반적으로 MSA 환경 에서는 API Gateway에서 OAuth 2.0을 활용 해 각 서비스들에게 인증 토큰을...

27 Dec 2020

API 게이트웨이 (MSA-6)

MSA에서의 외부 API 이슈 MSA에서 외부 API를 제공한다고 할 때에는 다음과 같은 고려사항이 발생 할 것입니다. 클라이언트 소스에 따라 요구되는 데이터 종류가 다를 수 있다 서비스 접근 경로가 다양하다 성능이 낮은 네트워크를 통해 접근 할...

14 Dec 2020

Lombok Builder 사용시 유의할점

Lombok Builder 사용시 유의할점 개발을 매우 편리하게 도와주는 Lombok의 @Builder를 자주 사용하실텐데요, 사용상 주의하셔야 할 점이 있습니다. Obj obj = new Obj(); obj.setId(1); obj.setName("하나"); Obj obj = Obj.builder .id(1) .name("하나") .build(); 특정상황에서 위 선언한 두개의...

03 Dec 2020

java.nio.files.Files.lines에 대한 탐구

OOM이 터질수 있는 File read 인가 File에 존재하는 line count 를 구하기 위해 아래 메서드를 사용해 보았습니다. try(Stream<String> lines = Files.lines(path)) { count = lines.count(); } 위 코드를 PR올린 후 팀원분께서 ‘혹시 사이즈가 큰 파일을...

01 Dec 2020

에러노트 - non-static variable this cannot be referenced from a static context

에러 메세지 non-static variable this cannot be referenced from a static context 우선 해당 에러메세지를 통해 static context에서 non-static varaible을 참조하여 발생한 에러로 파악됩니다. 실행 환경 Intellij IDE Ultimate 2019.04 Intellij Lombok plugin 0.33 Project...

30 Nov 2020

분산된 데이터 쿼리하기 - API 조합패턴과 CQRS (MSA-5)

API 조합 패턴 하나의 DB에 여러 데이터를 저장하던 모놀리식 아키텍처에서는 여러 도메인의 데이터들를 조회하고, DB에서 쿼리로 조인하여 조합하기도 비교적 쉽게 수행 할 수 있었을 것 입니다. 하지만 MSA 환경에서는 여러 도메인의 조합된 데이터를 조회하는것은 여간...

22 Nov 2020

Spring boot 2.4.0 update

Spiring boot 2.4.0 update Spring boot 2.4.0 update 사항 정리 (2020. 11. 12) 원문 : https://spring.io/blog/2020/11/12/spring-boot-2-4-0-available-now versioning 형식의 변경 MAJOR.MINOR.PATCH[-MODIFIER] 형식으로 변경됨 2.4.0, 2.4.0-M1, 2.4.0-SNAPSHOT, … 기존 (2.3.5.RELEASE) -> 변경 (2.4.0) JUnit 5’s Vintage Engine...

18 Nov 2020
Previous
Next
cobura12@gmail.com