목차 지금 진행하고 있는 과제전형에서 웹플럭스+R2DBC+MySQL을 이용해 프로젝트를 구성하게 되었다. 리액티브한 디비는 몽고만 써본 터라 초기 설정에 아주 조금 시간이 소요되었는데, 결론부터 말하자면 리액티브 몽고 디비에 비해 R2DBC는 다소 허접하고 덜 만들어진 느낌을 지울 수가 없었다. 그래도 좋아지겠지.. 하며 내가 구성해둔 기본의 기본 설정을 기록. R2DBC R2DBC는 Reactive Relational Database Connectivity의 약자로, 리액티브 프로그래밍 모델을 기반으로 한 관계형 데이터베이스 연결을 제공하는 라이브러리이다. 2018년 5월에 처음 공개되었으며, 기존의 JDBC 방식으로 접근 가능하면서도 비동기/논블로킹을 지원한다는 장점이 있다. 따라서 당연히 고성능, ..
목차 앞으로 쓰게 될 모든 웹플럭스 실습 글에 굳이 강조하겠지만, 아래의 코드는 그야말로 내 마음대로 공식문서와 각종 레퍼런스를 짜깁기해서 만들어낸 결과물이다. 당연히 Best Choice와는 거리가 멀 수밖에 없지만, 이거라도 잊지 않으려고 하나씩 적어본다. 우선 리액티브 몽고 템플릿에 대한 소개로 시작하자. Reactive Mongo Template 아직 한 번도 적지 않은 것 같은데, 리액티브 몽고디비를 사용하려면 그래들에 아래와 같은 의존성을 추가해야 한다. implementation 'org.springframework.boot:spring-boot-starter-data-mongodb-reactive' 우선 여기서 알아갈 수 있는 사실은, 리액티브 몽고디비 역시 스프링 데이터의 일원이라는 사실..
RSocket RSocket은 넷플릭스에 의해 개발된, 리액티브 스트림을 지원하는 프로토콜이다. 당연하게도 양방향, 비동기로 메시지를 주고받는 프로토콜로서 TCP, 웹소켓 등의 전송 프로토콜 위에서 작동하고, 오버헤드가 적어 마이크로서비스 간의 통신에 적합하다. 물론 리액티브 스트림과 프로젝트 리액터를 구현한 WebFlux에서도 편하게 사용할 수 있으며, 일단 커넥션이 맺어지면 클라이언트/서버의 구분은 사라지고 양쪽 모두 아래의 비동기 패턴 중 하나로 통신을 시작할 수 있다. Request-Response 요청-응답 패턴 클라이언트가 서버에게 요청을 보내면 서버가 처리 후 응답 메시지를 보내는 비동기 패턴. 한 번에 하나의 요청과 응답을 처리할 수 있으며, 이 덕분에 여러 개의 요청을 처리할 때 동시성 ..
목차 개인 프로젝트를 진행하면서 이름만 많이 듣던 Reactive mongo DB를 사용하고 있다. 잘 모르는 채로 더듬더듬 쓰면서 경험치가 쌓이다 보니, 이제야 전반적인 개념이 궁금해져서 정리 시작. MongoDB 몽고 디비는 HUMONGOUS DB를 줄인 표현이다. 그 이름대로 대용량 환경에 대응하기 위해 개발되었다. 또한 몽고디비는 대표적인 NoSQL DB 중 하나이며, 문서 지향(Document-Oriented) 데이터 모델을 사용하고 JSON과 비슷한 동적 스키마형 도큐먼트(몽고DB에서는 이를 BSON이라 부른다)로 데이터를 저장 및 조회한다. 이베이, 뉴욕 타임스, 구글, 페이스북 등이 이 몽고디비를 주력으로 사용하고 있으며, 메모리 내에서 작업하도록 설계되어 있기 때문에 같은 조건에서 RDB..
원래 계획은 리액티브 스트림에 이어서 모노, 플럭스까지 정리하는 거였지만, 하나도 모르는 내가 한 번에 몰아 정리하기는 불가능하다는 판단이 들어 글을 나누었다. 읽고, 실습해도 이상하게 개념이 잡히지 않는 웹플럭스, 쪼개서 알아보자. Reactive Streams 리액티브 스트림은 비동기/논블로킹 처리를 위한 스트림 기반의 프로그래밍 모델이다. 또한 데이터 생산자와 소비자 사이에서 백프레셔를 지원해 데이터의 흐름을 제어할 수 있으며, 이는 리액티브 선언문에 쓰여있는 대로 병목현상이나 예기치 못한 소프트웨어의 정지를 방지한다. 리액티브 스트림의 탄생 이전에는 라이브러리마다 다른 방식으로 같은 목적의 프로그램을 구현해야 했으며, 2013년 넷플릭스와 레드햇을 위시한 기업들이 공동으로 개발하며 표준화 작업을 ..
2014년 9월 16일에 발행됨. (v2.0) 다른 분야에서 활동하는 조직들은 유사한 소프트웨어를 구축하기 위한 패턴들을 독립적으로 발견하고 있습니다. 이러한 시스템은 보다 견고하고, 탄력적이며, 유연하며 현대적인 요구사항을 반영하기 좋은 위치에 있습니다. 이런 변화는 최는 몇 년간의 급격한 애플리케이션 요구사항의 변화에서 기인합니다. 불과 몇 년 전까지만 해도 거대한 애플리케이션은 수십 개의 서버로 구성되어, 몇 초의 응답 시간과 몇 시간의 오프라인 유지보수를 허용하고, 기가바이트 데이터를 담고 있었습니다. 오늘날의 애플리케이션은 모바일 기기에서 부터 수천 개의 멀티 코어 프로세서에서 동작하는 클라우드 기반의 클러스터까지, 모든 기기에 배포되고 있습니다. 사용자는 밀리초의 응답 시간과 100%의 가동률..
지난 글에서 리액티브 프로그래밍과 리액티브 스트림즈, 그 구현체인 프로젝트 리액터에 대해 알아보았다. 2022.10.12 - [Development/Spring] - [Spring]리액티브 프로그래밍(Reactive Programming) 2022.10.12 - [Development/Spring] - [Spring]리액티브 스트림즈(Reactive Streams) [Spring]리액티브 스트림즈(Reactive Streams) 지난 글에서 리액티브 시스템이란 쉽게 말해 반응 속도가 빠른 프로그램을 설계하는 원칙이며 리액티브 프로그래밍은 그 원칙을 구현하는 논 블로킹, 비동기 방식의 선언형 개발 패러다임이라 gnidinger.tistory.com 짧게 요약하면 아래와 같은 내용이다. 리액티브 프로그래밍 ..
목차 리액티브 프로그래밍(Reactive Programming)이란 논 블로킹, 비동기 데이터 흐름 및 새로운 정보의 가용성에 기반을 둔 선언형 개발 패러다임이다. 또는 리액티브 시스템을 구현하는 방법이자 하위 개념이라고 볼 수도 있다. 정의에 사용된 단어에 대한 뜻은 잠시 후에 알아보기로 하고, 우선 리액티브 시스템이 무엇인지 정리하고 가자. Reactive System 리액티브 시스템이란 '반응이 좋은, 민감한' 시스템이란 뜻이다. 이렇게 말해선 잘 와닿지 않을 수도 있으니, 조금 더 직관적으로 말하자면 리액티브란 한 마디로 입력이 발생했을 때 최대한 빠른 시간에 응답하도록 하는 설계 원칙이라고 할 수 있다. 이는 웹 앱에서 굉장히 중요한 원칙인데, 고객들이 대체로 느린 반응속도를 기다려주지 않기 때..
- Total
- Today
- Yesterday
- 세모
- 자바
- 파이썬
- 칼이사
- 알고리즘
- java
- Python
- 동적계획법
- Backjoon
- 유럽
- 맛집
- a6000
- 남미
- 여행
- 세계일주
- 기술면접
- 유럽여행
- 중남미
- RX100M5
- 면접 준비
- 지지
- 백준
- Algorithm
- 스트림
- BOJ
- 스프링
- spring
- 세계여행
- 야경
- 리스트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |