본문 바로가기

반응형

프로그래밍

(112)
[kafka] Message Listeners를 이용한 Consumer 구현 목차 Consumer Message Listeners 이용한 구현 Listener 종류 MessageListenerContainers 종류 Committing Offset nack 1. Consumer 컨슈머는 카프카 클러스터( 파티션 )에서 저장된 데이터를 읽어오는 역할을 합니다. 구현 방법은 Message Listeners, @KafkaListener 두 가지로 가능합니다. 이번 글에서는 Message Listeners 를 이용하여 구현한 내용을 정리해보겠습니다. 2. Message Listeners 이용한 구현 Message Listener Container를 사용할 때 Receive Data를 listener에서 제공해야만 합니다. 2-1. Listener 종류 Listener When Consu..
[kafka] KafkaTemplate을 이용한 Producer 구현 목차 KafkaTemplate 구성 KafkaTemplate 사용하여 Producer 구현 KafkaTemplate 원초적으로 Producer를 통해 Kafka에 Message를 Send하려면 KafkaProducer 인스턴스를 사용하여 send() 메서드를 호출해야합니다. KafkaTemplate은 KafkaProducer 감싸고 있는 인스턴스라고 생각하시면 이해하시기 편합니다. KafkaTemplate.send() 는 내부에서 결국 KafkaProducer 인스턴스의 send()를 호출하고 있습니다. 1. KafkaTemplate 구성 KafkaProducerConfig.kt DefaultKafkaProducerFactory 인스턴스를 사용하여 KafkaTemplate 를 생성할 수 있습니다. @Co..
그림으로 이해하는 카프카란? 카프카는 실시간으로 기록 스트림을 게시, 구독, 저장 및 처리할 수 있는 분산 데이터 스트리밍 플랫폼입니다. 극단적인 예로 아래와 같은 MSA Service가 있다고 가정합니다. 대충봐도 너무 복잡하다... 아키텍처의 복잡도가 매우 높은 것을 한 눈에 알아볼 수 있습니다. 다음 그림은 카프카를 도입하여 아키텍처를 재설계한 그림입니다. 카프카를 통해 아키텍처를 수정 극단적인 예를 들기 위한 아키텍처 그림입니다. 실제로는 무조건 카프카를 쓰기보다 용도에 맞게 사용해야합니다. 이 것 말고도 다양하게 카프카를 사용할 수 있습니다. 다음으로 카프카 구성에 대해 알아보겠습니다. Name Description 카프카 클러스터 카프카 서버 브로커 카프카 클라이언트와 데이터를 주고받기 위해 사용하는 주체 데이..
[Kotlin] 테스트 코드 쉽게 작성하기 (KotlinFixture, MockK, LiveTemplates ) 개인적으로 테스트 코드는 중요하다고 생각합니다. 하지만 다양한 이유로 테스트 코드는 많이 Skip 됩니다. 시간적 여유가 없을 때 테스트 코드를 위한 노가다 작업이 많을 때 그 외 등등... 이 방법을 백퍼센트 보완하진 못하지만 좀 더 용이하게 작성하기 위해 제가 사용하는 방법을 공유합니다. 목차 MockK KotlinFixture Live Templates 1. MockK Java 진영에는 Mockito가 있다면 Kotlin 진영에서는 Mockk가 있습니다. Mockk는 Java에서 Mock처리하는 것과 동일하게 Kotlin스럽게 Mock을 처리할 수 있도록 도와줍니다. 환경구성 build.gradle.kts testImplementation 'com.ninja-squad:springmockk:{ver..
테스트 코드 학습(Mockito) Mockito란? 이전에 작성한 이 글과 함께 보시면 이해하시는 데 도움이 될 것입니다. Spring Camp - 테스트 코드에 대하여 테스트 코드를 작성할 때 아름다운 그림은 모든 인스턴스가 완성되어 있고 외부 통신 등 non-testable의 경우가 없는 것일 것 같습니다. 하지만 실전은 그렇게 마음대로 되지 않을 때가 많습니다. 인스턴스 메서드가 완성되지 않고 non-testable 영역도 있고.... 이런 경우 메서드가 완료될때까지 기다려야합니다. non-testable 영역은.. 포기.. 이런 경우 Mockito 즉 가짜를 만들어서 내가 요청을 주면 원하는 응답이 나오는 가짜 인스턴스를 만들어 테스트를 할 수 있는 환경을 구축합니다. public class ZooService { private ..
테스트 코드 학습 (junit5) - 개념 및 간단한 사용법 junit5 가 나온지 2년이 넘어가고 있습니다. TDD로 프로젝트를 개발하기 위해선 당연히 Test Code를 작성할 줄 알아야합니다. 이번 글에는 Test Code에 대해서 개념과 간단한 사용법에 대해서 정리하겠습니다. JUnit 이란? Java Unit Testing. 자바에서 단위 테스트 작성 도구입니다. 로직을 구현하고 테스트를 하려면 서비스를 띄우고 직접 행위를 해야만 테스트를 할 수 있었으나 JUnit을 사용하여 서비스를 띄우지 않고도 로직에 대한 테스트를 실행할 수 있게되었습니다. Junit4에서는 1개의 jar파일로 구성되어 있었고 그 외 기능을 구현하려면 다른 Library를 추가하는 방식으로 구현했어야합니다. JUnit5로 넘어오면서 자체적으로 여러 모듈로 구성되어있습니다. 기본적으로..
Spring Camp - 테스트 코드에 대하여 테스트 코드의 중요성은 진작에 알고 있었으나, 언제 적용하나? 적용하려면 어떻게 공부하지 막막하던 참에 직장 동료분께서 추천해주시어 영상을 보고 내용이 너무 좋아 정리하게 되었습니다. www.youtube.com/watch?v=YdtknE_yPk4&list=PLdHtZnJh1KdaM0AfxPA7qGK1UuvhpvffL&index=12 왜 작성해야하는가? 가장 큰 이유는 안정감과 자신감입니다. 테스트 코드는 코드에 대한 가장 빠른 피드백을 줄 수 있는 도구입니다. 내가 작성한 코드 대해서 버그를 미리 대비하고 수정을 하였을 때 버그가 없는지 피드백을 해줍니다. 이러한 이유로 안정감과 자심감이 생겨 배포를 자신있게 할 수 있게됩니다. 모든 케이스에 대해 작성 지금은 발생하지 않겠지만 코드 수정으로 발생할 수..
자바의 열거형 특징 및 사용법 목표 자바의 열거형에 대해 학습하세요. 학습할 것 (필수) enum 정의하는 방법 enum이 제공하는 메소드 (values()와 valueOf()) java.lang.Enum EnumSet 추천 도서 www.yes24.com/Product/Goods/7516911 토비의 스프링 3.1 세트 『토비의 스프링 3.1』은 스프링을 처음 접하거나 스프링을 경험했지만 스프링이 어렵게 느껴지는 개발자부터 스프링을 활용한 아키텍처를 설계하고 프레임워크를 개발하려고 하는 아키텍트에 www.yes24.com www.acornpub.co.kr/book/jpa-programmig 자바 ORM 표준 JPA 프로그래밍 JPA 기초 이론과 핵심 원리, 그리고 실무에 필요한 성능 최적화 방법까지 JPA에 대한 모든 것 www.ac..
자바의 멀티쓰레드 프로그래밍 사용방법 목표 자바의 멀티쓰레드 프로그래밍에 대해 학습하세요. 학습할 것 (필수) Thread 클래스와 Runnable 인터페이스 쓰레드의 상태 쓰레드의 우선순위 Main 쓰레드 동기화 데드락 추천도서 www.yes24.com/Product/Goods/3015162 자바 병렬 프로그래밍 스레드는 자바 플랫폼에서 가장 기본적으로 제공되는 기능 중 하나다. 멀티코어 프로세서가 대중화되면서 고성능 애플리케이션을 작성할 때 병렬 처리 능력을 효과적으로 활용하는 일의 중요 www.yes24.com Process 의미 그대로 Process입니다. 프로그램을 실행하여 실행 중인 것 예를 들어 OS에서 크롬을 킨다던가, intellij를 실행한다던가 엑셀을 실행하는 것 모든 것 OS에서 Resource를 할당받아 구동되는 것 ..
자바의 예외 처리 방법 목표 자바의 예외 처리에 대해 학습하세요. 학습할 것 (필수) 자바에서 예외 처리 방법 (try, catch, throw, throws, finally) 자바가 제공하는 예외 계층 구조 Exception과 Error의 차이는? RuntimeException과 RE가 아닌 것의 차이는? 커스텀한 예외 만드는 방법 추천도서 www.11st.co.kr/products/2874490917?utm_medium=%EA%B2%80%EC%83%89&gclid=Cj0KCQiA7NKBBhDBARIsAHbXCB5I37sBM_HgHnyywcYnfRFFqVixy9co8mCWT83X-aNHrulHvk99TTIaAkZqEALw_wcB&utm_source=%EA%B5%AC%EA%B8%80_PC_S_%EC%87%BC%ED%95%91&..

반응형