전체 글 (33) 썸네일형 리스트형 HTTP Connection 역사 알아보기 목차 들어가면서 HTTP Connection 기본 개념 HTTP/1.0 Connection HTTP/1.1 Connection 마무리 참조 들어가면서 이번 글을 통해 HTTP Connection 기본 개념과 HTTP 버전별 동작 스펙을 정리해보겠다. HTTP Connection 기본 개념 HTTP 에서는 Connection을 신경쓰지 않는다. Connection은 HTTP 보다 하위 레이어인 transport layer에서 관리된다. HTTP는 꼭 connection-based인 transport protocol을 사용할 필요는 없다. 대신 신뢰성있는 protocol이면 된다. 쉽게 말하면 HTTP 메시지가 유실되지 않는 transport protocol이면 된다. transport protocol에 가.. Redis Pub/Sub과 Kafka 비교 목차 들어가면서 Redis Pub/Sub Kafka Redis Pub/Sub vs Kafka 마치면서 들어가면서 이번 글을 통해 Redis Pub/Sub과 Kafka를 비교해보겠다. Pub/Sub 패턴을 구현한 Message Queue로 여러 솔루션이 존재하지만, Kafka는 그 중 유명한 솔루션 중 하나이다. 하지만 Redis Pub/Sub은 Redis의 캐시 기능에 밀려 잘 모르는 분도 많다. 알고보면 Reids Pub/Sub도 적절한 상황에 활용한다면 좋은 솔루션이 될 수 있다. 이번글을 통해 Reids Pub/Sub과 Kafka의 차이를 알아보고 언제 사용하는게 좋을지 정리해보겠다. Redis Pub/Sub Redis Pub/Sub은 Redis에서 제공하는 기능으로 mesage broker로 사용.. SSE(Server Sent Event) 개념 정리 들어가면서.. 이번 글에서는 SSE(Server Sent Event) 개념을 정리한다. SSE(Server Sent Event) SSE는 서버에서 클라이언트에게 실시간으로 데이터를 전송하는 기술이다. 기본 컨셉은 HTTP connection을 길게 유지하면서, 서버에서 클라이언트에게 데이터를 전송한다. 아래 그림을 보면 이해하기 쉽다. SSE가 나오게된 배경 SSE는 서버에서 데이터 변경이 있을때 클라이언트에게 실시간으로 알려주기 위해 주로 사용된다. SSE 기술이 등장하기 전에는 Client에서 서버의 데이터 변경을 확인하기 위해 주로 polling 방식을 사용했다. Short Polling 클라이언트에서 주기적으로 API를 호출해 서버의 데이터 변경사항을 확인하는 기법이다. 플로우는 아래 그림과 같다.. 테스트의 Spring Container와 운영 환경의 Spring Container가 다르다..? 들어가면서 이번 글에서는 개발하면서 만난 이슈를 해결해 가는 과정을 공유하겠다. Issue 서버 상태를 확인해주는 HealthCheck API를 만들었다. 이 때 ServletWebServerApplicationContext를 이용해 서버 포트 번호를 확인했다. @RestController @RequestMapping("/health") class HealthCheckController( private val webServerAppCtxt: ServletWebServerApplicationContext, ) { @GetMapping("/info") fun serverInfo(request: HttpServletRequest) = mapOf( "IPAdress" to request.getHeader("X-.. HTTPS 적용 방법과 동작원리 들어가면서 인터넷을 통해 다른 서비스를 사용해 봤거나, 개인 프로젝트로 웹 서비스를 개발해본 분들은 HTTPS에 대해 들어본 적 있을 것이다. 이번 글에서는 HTTPS를 적용해야하는 이유, 적용 방법 그리고 동작 원리를 정리하겠다. HTTPS 필요한 이유 HTTPS를 사용해야하는 이유는 크게 3가지 존재한다. (물론 더 있을 수도 있다.) 1. 보안 HTTPS를 사용하면 사용자와 서버간 통신이 암호화돼 제 3자(해커)가 통신 내용을 알 수 없다. 덕분에 사용자에게 신뢰성을 줄 수 있다. 2. 마케팅 마케팅 관점에서 내 서비스가 검색 엔진에 자주 노출되는게 유리하다. 실제로 구글 검색 엔진은 HTTPS가 적용된 사이트에 적용 안된 사이트 보다 더 높은 우선선위를 부여한다. (구글 문서) 3. 기술 선택 H.. Spring Data Redis Pub/Sub 파헤치기 들어가면서 Pub/Sub을 지원하는 도구라 하면 보통 RabbitMQ, Apache ActiveMQ, Amazon SQS 와 Apache Kafka를 생각할 것이다. 하지만 Redis도 NoSQL 기능에 더해 Pub/Sub을 지원한다. 이번 글에서는 Redis Pub/Sub과 Spring Data Redis가 어떻게 Redis Pub/Sub을 지원하는지 알아보겠다. 목차 1. Redis Pub/Sub 2. Spring Data Redis로 Redis Pub/Sub 사용하기 3. Spring Data Redis 코드 파헤치기 Redis Pub/Sub Redis의 Pub/Sub 지원은 일반적인 Pub/Sub 기술들과 유사하다. 1. 구독자는 토픽을 구독한다. 2. 토픽에 메시지가 발행될때 메시지가 구독자들에.. Spring's STOMP support 파헤치기 들어가면서 실시간 채팅 서비스와 같이 클라이언트와 서버 간 양방향 소통이 필요한 서비스는 어떤 기술을 사용해 개발할까? 가장 많이 사용되는 기술은 WebSocket이다. WebSocket을 사용하면 HTTP보다 효율적으로 데이터를 주고받을 수 있다. 따라서 Spring의 WebSocket 지원 기능을 활용해 실시간 채팅 서비스를 개발할 수 있다. 하지만 WebSocket을 직접 이용해 채팅 서비스를 만들기 위해서는 번거로운 작업이 필요하다. 그리고 Spring에서도 WebSocket을 직접 이용하는 게 아니라, 상위 프로토콜을 사용하는 걸 권장한다. As explained in the introduction, direct use of a WebSocket API is too low level for ap.. WebSocket과 친해지기 들어가면서 서버와 실시간으로 데이터를 주고받는 서비스를 개발하는 데 필요한 WebSocket! 이번 글을 통해 WebSocket 개념을 정리하겠다. WebSocket WebSocket은 뭘까? RFC 6455에 따르면 다음과 같이 나와 있다. The WebSocket Protocol enables two-way communication between a client running untrusted code in a controlled environment to a remote host that has opted-in to communications from that code. The security model used for this is the origin-based security model comm.. 이전 1 2 3 4 5 다음