논블로킹 2

[R2DBC] R2DBC란 무엇인가?

R2DBC가 무엇인지에 대해 정리해보겠습니다. 그리고 이후 포스팅에서는 Spring에서 R2DBC를 활용하여 서비스를 구축하는 방법에 대해 학습해보고자 합니다. R2DBC (Reactive Relational Database Connectivity) 는 관계형 DB에서 효율적으로 코드가 동작할 수 있도록 reactive programming API를 가능하게 해줍니다. 즉 관계형 DB에 논블로킹 접근이 가능하게 해줍니다. 기존 관계형 DB 접근 API (ex JDBC 등 )는 블로킹 API이기때문에, 완전한 논블로킹 서비스를 구축할 수 없었습니다. 그렇기 때문에 이를 해결하고, 보다 적은 스레드와 하드웨어로 더 많은 동시 처리를 하기 위해 R2DBC가 탄생했다고 합니다. 이제는 Spring Data 에..

Spring 2022.07.22

동기와 비동기 그리고 블로킹과 논블로킹

동기와 블로킹, 비동기와 논블로킹에 대해 헷갈리는 경우가 있습니다. 하지만 자세히 보면 두 개념은 기준이 다른 개념입니다. 간단한 설명과 함께 각 개념을 정리해보겠습니다. 먼저 설명에 앞서 아래와 같이 함수명을 정의하고 시작하겠습니다. - 요청한 함수 : Func A - 요청된 함수 : Func B 먼저 동기와 비동기에 대한 설명입니다. 동기 (Sync) - Func A가 Func B를 요청하고 작업이 완료되었는지 계속 확인 - 결과가 주어질 때까지 대기해야 한다 비동기 (Async) - Func A는 요청 후 신경 쓰지 않고 다른 작업을 계속 처리 할 수 있음 - Func B가 작업을 마치면 Call back 으로 알려줌 동기와 비동기의 가장 큰 차이점은 완료여부를 확인하는 주체의 차이로 볼 수 있습니..

ETC 2022.06.13