전체 글 (750) 리스트형 [RxJava] RxJava 프로그래밍(1) - 리액티브 프로그래밍 서버 다수와 통신하게 되면 API 호출 각각에 콜백을 추가하게 된다. 콜백이 늘어나면 애플리케이션의 복잡성도 증가(callback hell)하게 된다. RxJava는 자바로 리액티브 프로그래밍을 할 수 있는 라이브러리이며 비동기 프로그래밍과 함수형 프로그래밍 기법을 함께 활용한다. RxJava2는 Maybe나 Flowable 같은 새로운 클래스가 추가되었고 비동기 테스팅도 자연스럽게 할 수 있다. 리액티브 프로그래밍은 복잡한 비동기 프로그램을 쉽게 만들 수 있게 해준다. 리액티브의 의미에서 알 수 있듯이 이벤트(스크린 터치, 마우스 클릭, 키 입력, 서버의 비동기 응답)에 소비자가 비동기로 반응하여 처리한다. 또한 비동기에서 처리하기 힘든 에러 처리나 데이터 가공을 쉽게 할 수 있게 도와주기도 한다. 이.. [Nginx] nginx 정적 페이지 POST 활성화 방법 Nginx error_page redirect 설정 이용 nginx는 기본적으로 정적 파일로 POST 요청 처리를 허용하지 않는데, nginx 설정을 수정하여 POST 처리를 우회할 수 있다. 해당 site/domain을 위한 설정을 확인해보면, location 블록이 존재할 것이다. location / { error_page 405 =200 $uri; ... =200은 오타가 아니며, = 뒤에 공백을 추가하면 동작하지 않을 것이다. 위 설정은 405 응답도 200(OK) 응답으로 내려가도록 설정한 것이다. 웹서버를 다시 시작하기전에 구성이 올바른지 확인하려면 아래 명령을 실행하여, 문법이 올바른지 미리 확인해볼 수 있다. /usr/sbin/nginx -t 문법에 이상이 없음을 확인하면, nginx 서버.. [아키텍처] 도메인 주도 설계(6) - 도메인 객체의 생명주기 보호되어 있는 글입니다. [Java] Kryo 직렬화 라이브러리 Kryo는 Java 진영의 빠르고 효율적인 바이너리 객체 그래프 직렬화 프레임워크이다. Kryo 프로젝트는 고속, 경량의 사용하기 쉬운 API를 목적으로 만들어졌다. 이 프로젝트는 파일, 데이터베이스 또는 네트워크를 넘어 객체를 유지에 유용하다. Kryo는 또한 깊고 얕은 복사/clone 기능를 수행할 수 있다. 바이너리 변환이 아닌 객체에서 객체로 직접 복사하는 기능이다. Kryo 클래스는 자동으로 직렬화를 수행한다. 출력 및 입력 클래스는 바이트 버퍼 방식으로 처리하고, 선택적으로 스트림 플러시 처리가 가능하다. import com.esotericsoftware.kryo.Kryo; import com.esotericsoftware.kryo.io.Input; import com.esotericsoftw.. [Spring] WebFlux는 어떻게 적은 리소스로 많은 트래픽을 감당할까? https://alwayspr.tistory.com/44 Spring WebFlux는 어떻게 적은 리소스로 많은 트래픽을 감당할까? 위 그림은 DZone 게시글 중 하나인 Spring WebFlux를 이용한 Boot2와 Spring MVC를 이용한 Boot1을 비교한 그래프이다. 해당 그래프에서는 두 가지 특징을 볼 수 있다. 첫 번째로는 유저가 적을 때에는 성능� alwayspr.tistory.com 더보기 Spring WebFlux와 Spring MVC를 성능 비교했을때, 성능엔 별반 차이가 없다. 두번째로 유저수가 늘어날수록 극명한 성능 차이를 보여주고 있다. 어떻게 이러한 차이가 일어날 수 있을까? 1. I/O 더 적은 하드웨어 리소스, 더적은 스레드로 동시성을 처리하기 위해서는 논블로킹 웹스택.. 이전 1 ··· 53 54 55 56 57 58 59 ··· 150 다음