본문 바로가기

Reactive programming2

[Reactive Programming] 비동기-논블로킹 프로그래밍 동기 프로그래밍 (Synchronous) 작업의 실행 흐름은 순차적으로 동작 코드를 파악하기 쉽고 결과를 쉽게 예측 가능하므로 디버깅이 쉬움 특정 작업 중 다른 작업을 할 수 없다는 단점 비동기 프로그래밍 (Asynchronous) 작업의 실행 흐름은 기본적으로 순차적이지 않음 현재 실행 중인 작업 이외에 다른 작업 가능. 클라이언트, 서버 등 모든 환경에서 유용하게 사용 가능 대표적으로 CallBack, Promise, Future, Coroutine 등이 있다. 비동기 프로그래밍 구현 방식 - Kotlin Thread 가장 기본이 되는 방식 Runnable 인터페이스를 구현하여 구현 하나의 스레드 - 싱글 스레드, 다중 스레드 - 멀티스레드 fun main() { for (i in 0..5) { va.. 2023. 2. 11.
WebFlux는 무엇이고, 왜 나왔고, 언제 쓰이는가? 어제 Cart API 코드 리팩터링을 마무리하고, 리뷰를 받기 위해 PR을 올렸다. 클린 한 코드로 작성하려고 노력하기 위해 리뷰어님이 주신 의견을 되뇌고, 클린 코드를 작성하기 위한 방법을 구글링을 통해 하루 종일 모니터를 노려보며 클래스 간 책임을 나누어 보았다. 빨리 성장하고 싶다!! 리뷰를 앞두고, 카카오페이를 이용한 도메인 코드들을 리팩터링 하기 앞서, 기존에 외부 API와 통신하기 위해 사용하던 템플릿인 RestTemplate의 대체 여부에 대해 떠올랐다. RestTemplate은 deprecated 되었으므로, WebClient의 사용을 고려해보라는 의견을 받았다. WebClient에 대해 알아보다가 동기/비동기, 블로킹/논블로킹이라는 개념의 정의에 대해 다시 공부하게 되었고, 나아가 Web.. 2022. 8. 31.
반응형