반응형
Event 처리는 비동기가 아니다?
Spring 2022. 8. 17. 13:25

비동기 처리를 위해서 이벤트를 발행하는 방식을 선택하는 경우가 있다. 나 역시도 그랬는데 사용하다가 궁금증이 생겼다. 그냥 Async 어노테이션을 달아 놓은 것과 EventListener를 적용한 것은 어떤 차이가 있을까? 결과부터 얘기하자면 모든 Event 처리 방식은 비동기가 아니다. 그것을 확인할 수 있는 테스트를 해보았다. 해당 테스트는 정아마추어님 블로그를 상당히 많이 참고했다. 테스트 전 준비 먼저 Event 모델을 만들었다. EventListener를 그냥 사용했을 때와 Asnyc 어노테이션과 함께 사용했을 때를 구분하기 위한 모델을 각각 만들었다. data class SampleEvent( val name: String, val email: String ) // 비동기용 data class..

코틀린 환경에서 Async 어노테이션 테스트하기
Spring 2022. 2. 8. 16:19

비즈니스 로직을 처리하다보면 비동기처리를 하고 싶을 때가 있다. 여러가지 방법이 있지만 스프링에서는 Async 어노테이션을 사용하여 비동기 처리가 가능하다. 하지만 Async를 바로 적용하기 보다 테스트를 먼저 해보고 싶다는 생각이 들 수 있다. 동작 방식 등을 이해하고 싶다거나 비즈니스 로직이 비동기 처리에 적합한지 확인하기 위해서 테스트에서 Async를 사용하고 싶을 수 있다. 그래서 테스트에서 Async를 어떻게 적용할 수 있는지 설명해보겠다. 아래에 공개되는 모든 코드는 필자의 깃헙에도 있으니 참고하시면 되겠다. ⚠️ 경고 ⚠️ 여기서는 다음과 같은 내용은 자세히 다루지 않습니다. 별도로 찾아보시길 권합니다. > 동기/비동기, 쓰레드, 멀티쓰레드 등 🍿 @Async란 스프링 프레임워크에서 제공하는..

RxKotlin을 공부하면서 이해하지 못한 개념 정리
Android, iOS 2020. 12. 13. 20:56

요즘 Rx를 공부하고 있다. "요즘 핫하다", "트렌드"다라고 하기에는 실무에서는 어느 정도 당연하게 쓰고 있다. 늦은 감은 있지만 더 늦는 것보다 지금이라도 공부하자 싶어서 [코틀린 리액티브 프로그래밍]이라는 책을 보고 있다. 이 서적은 요 근래 서적중 가장 마음에 드는 IT 서적이기에 학습이 끝날 때 리뷰도 꼭 하고 싶다. (물론 아직 절반도 보지 못해서 뒷장 공부할 때 마음이 바뀔 수 있다.) 아무리 괜찮은 서적이라도 내 기반 지식이 모자라면 이해하지 못하는 포인트가 생긴다. 학습중 이해하지 못한 개념을, 일종의 중간 점검이라고 생각하면서 작성해본다. 1. 코루틴의 async와 await Rx를 학습하고 있어서 코루틴도 추가적으로 학습을 했다. 하지만 Rx를 위한 보조 학습으로 코루틴에 접근을 해서..

728x90
반응형