목차 Node.js Node.js는 오픈 소스 JavaScript 엔진인 크롬 V8에 비동기 이벤트 처리 라이브러리인 libuv를 결합한 플랫폼이다. 2009년 라이언 달에 의해 고안되었으며, 이벤트 기반 비동기 자바스크립트 런타임이기 때문에 확장성과 성능이 뛰어나며 프론트엔드의 필수 언어인 JS로 서버까지 구성할 수 있다는 장점까지 더해 빠르게 점유율을 높여가고 있다. 내가 지금 이 글을 적고 있는 이유도 회사의 다른 서비스가 Node.js로 개발되었고 개발될 예정이기 때문이다. 굳이 정확하게 분류하자면 강조했듯이 서버사이드 자바스크립트 런타임, 즉 JS 코드를 서버에서 실행하는 환경을 가리키며 Node.js 자체로는 엄밀히 말해 프레임워크가 아니라고 한다. 계속해서 특징과 장단점에 대해 짧게 정리하자..
목차 한동안 WebFlux로 개발을 하면서 제목에 쓰인 것들에 대해 몸으로 배울 수 있었다. 그러나 여전히 막연한 부분이 있고, 비동기와 논블로킹이 헷갈릴 때도 있어서 오랜만에 최대한 간결하게 핵심만 정리하고 넘어가기. Synchronous execution, Asynchronous 요약부터 하고 들어가자면, 둘의 차이는 결괏값 리턴 순서가 요청 순서를 지키느냐(동기) 아니냐(비동기) 하는 것이다. 조금 덜 직관적으로 말하자면 둘의 차이는 호출된 요청의 결과를 어느 쪽에서 처리하느냐 하는 데 있다고 볼 수도 있다. 결과는 당연히 호출한 쪽에서 신경 써야 하는 거 아닌가? 싶지만 아니다. 위 그림을 보면 알 수 있듯이, 동기 처리의 경우 B메서드를 호출한 A가 작업 완료 여부를 처리한다. 따라서 여러 작업..
목차 앞으로 쓰게 될 모든 웹플럭스 실습 글에 굳이 강조하겠지만, 아래의 코드는 그야말로 내 마음대로 공식문서와 각종 레퍼런스를 짜깁기해서 만들어낸 결과물이다. 당연히 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..
목차 이전 글에서 NGINX에 대해 개괄적으로 공부할 때 이벤트 루프(Event Loop)라는 것이 등장한 적이 있다. 2023.03.07 - [Development/Network] - [Network]NGINX 튜토리얼 [Network]NGINX 튜토리얼 여기저기에서 이름은 많이 주워들은 엔진엑스. 좋다! 빠르다! 가볍다! 길래 쓰지 않을 이유가 없어 보여 한 번 써볼까 하고 기웃거리는 것이 이 글의 목적이다. 엔진엑스는 2004년 10월, 러시아에 gnidinger.tistory.com 이번 글에서는 웹플럭스에서도 사용되는 이벤트루프와 네티(Netty)에 대해 훑어보자. Event Loop 이벤트 루프란 한 마디로 정의하면 비동기 처리를 위해 사용되는 단일 스레드이자 메인 루프라고 할 수 있다. 단어..
- Total
- Today
- Yesterday
- RX100M5
- 파이썬
- 리스트
- spring
- 백준
- 유럽여행
- 자바
- 야경
- java
- 스트림
- 중남미
- 기술면접
- 맛집
- 세계일주
- 남미
- Backjoon
- Algorithm
- 세모
- Python
- 여행
- 칼이사
- 알고리즘
- BOJ
- 동적계획법
- 세계여행
- 지지
- 유럽
- 스프링
- a6000
- 면접 준비
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |