본문 바로가기

비동기2

Spring boot With MongoDB - WebFlux를 통해 비동기적으로 MongoDB에 접근해보자. 들어가기 이전에 채팅방 채팅 내용을 저장하기 위해서 MongoDB를 사용해 본 적이 있었다. Gradle 의존성을 'spring-boot-starter-data-mongodb'로 설정하였었는데, 알고 보니 'spring-boot-starter-data-mongodb-reactive'라는 의존성이 따로 있었다.  이 두 의존성의 차이는 동기적으로 접근할 것인가, 비동기 적으로 접근할 것인가였다. 'reactive'가 추가된 의존성이 비동기 적으로 접근하는 것이다. 찾아보니 채팅 애플리케이션에서 채팅 내용을 저장하고 조회하는 기능은 실시간성(real-time)이 중요한 요소이기에, 비동기적인 처리가 더 적합할 수 있다고 한다. 이는 아래의 비동기 처리의 장점과 동기 처리의 단점을 통해 확인할 수 있다.  비.. 2024. 4. 23.
카프카(Kafka)는 어떻게 사용하는가? 들어가기 최근 모놀리식 아키텍처와 MSA( MircroService Architecture)에 대해 공부를 하였다. 모놀리식 아키텍처는 하나의 애플리케이션 안에 서비스의 모든 부분을 담아서 개발을 하는 것이고, MSA는 서비스의 기능별로 다른 서버를 두어 각각의 애플리케이션으로 개발하는 것이다. 이러한 MSA는 기능별로 독립된 서버이기에 서로의 의존성을 낮추고 나눠서 개발할 수 있으며, 단위테스트가 용이하다는 장점이 있다. 단점으로는 모놀리식 아키텍처보다 훨씬 복잡하다는 점이 있다. 그렇다면 MSA 방식으로 기능을 구현한 애플리케이션들 간에는 어떻게 소통이 이루어질 수 있을까? gateway를 통해 서로 간의 api를 호출하는 방식이 있고 메시지를 주고받아 소통을 하는 방식이 있다고 한다. 메시지 처리 .. 2023. 12. 9.