실시간 데이터 전송 기술 정리 | Polling, Long-Polling, SSE, WebSocket
·
Programming/ETC
최근 실시간 알림 기능을 구현하면서 공부했던 실시간 데이터 전송에 대표적인 기술들을 정리해본다.1. Polling주기적으로 서버에 요청을 보내 업데이트를 확인하는 방식클라이언트에서 서버로 계속해서 request를 전송한다.서버는 반복되는 request에 응답하면서, 전달할 이벤트가 있는 경우 전달한다.▶︎ 장점구현이 간단하다. (기본 HTTP만 지원되면 구현 가능)▶︎ 단점불필요한 요청이 많아지므로 서버 부하가 증가한다.새 이벤트가 발생하자마자 확인할 수는 없어 지연(Latency)이 존재한다.다수 클라이언트가 있을 경우 네트워크 오버헤드가 증가한다.매우매우 간단하게 실시간 (비슷한) 서비스를 구현해볼 수 있는 방식 2. Long Polling클라이언트가 서버에 요청을 보내고, 서버는 새로운 데이터가 있..
Unique한 값이 필요할 때 사용하는 UUID, UUID란?
·
Programming/ETC
🏷️ UUID (Universally Unique Identifier)이름 그대로 UUID는 전세계적으로 고유한 식별자이다. 이론상으로 중복될 가능성이 거의 없기 때문에 데이터베이스에서 고유한 값을 보장하는 데 매우 유용하게 사용된다.128비트 길이의 값이다.보통 8-4-4-4-12 형태의 36자 문자열로 표현된다. (ex. ``550e8400-e29b-41d4-a716-446655440000``)▶︎ 장점데이터의 고유성을 보장한다.서버간 동기화 없이도 고유한 ID를 생성할 수 있으므로 분산 시스템에 적합하다. ▶︎ 단점길이가 길어 저장 공간을 많이 차지한다. (128비트 = 16바이트 = 문자열로 36자)DB에서 인덱싱 효율이 낮을 수 있다.UUID는 무작위성을 기반으로 생성되기 때문에 순차적인 값이..
JWT 찐하게 이해하기 👀 | JWT 구성과 인증 원리
·
Programming/ETC
많이 듣고 많이 사용했던 JWT싹 다 정리해보고 이전 과제때부터 마주했던 JwtUtil 클래스도 좀 살펴보려고 한다. JWT와 Session을 통한 인증JWT와 Session 모두 웹 서비스에서 사용자의 인증 상태를 유지하는 방법이다.익숙한 말로는 로그인을 유지하는 방법이라고도 할 수 있겠다. HTTP의 stateless한 특성으로 인해 사용자의 인증 정보를 유지하는 기술이 필요하고, 이를 위해 Session 혹은 JWT를 이용할 수 있다.► Session 인증 방식세션 인증 방식을 순서 매기자면 다음과 같다.사용자 최초 로그인 시, 서버는 세션을 생성하여 인증 정보를 세션 저장소(별도 서버)에 저장한다.서버는 세션 생성 시 발급한 sessionId를 클라이언트에 Cookie에 포함하여 응답한다.클라이언..
Servlet 이해하기 (Web Server, WAS, Servlet)
·
Programming/ETC
Web ServerHTTP 기반으로 동작하며 정적 리소스를 제공한다.대표적인 웹 서버ApacheNGINX등등WAS (Web Application Server)웹 서버의 기능에 + DB 조회를 포함하여 다양한 로직에 대한 처리를 함께 한다. 추가적인 코드 실행을 통해 어플리케이션 로직을 수행하고 동적 컨텐츠를 생성한다.대표적인 WASApache Tomcat (Spring Boot에 내장)Eclipse Jetty등등실제 웹 시스템 구성 (Web Server과 WAS의 관계)정적 데이터에 대한 요청은 Web Server에서 바로 처리하여 응답한다.ex) 요청 경로가 `/public/images/logo.png` -> 정적 리소스로 처리, 바로 응답그 외의 경우 Web Server가 Http Request를 W..
도메인 로직(Domain Login)이 뭔데?
·
Programming/ETC
https://enterprisecraftsmanship.com/posts/what-is-domain-logic/ What is domain logic?In this post, I’ll write about a couple of thoughts regarding what domain logic is and how to distinguish it from other types of logic.enterprisecraftsmanship.com 해당 포스트는 위 아티클을 읽고 정리한 내용이다. 어떤 하나의 소프트웨어 어플리케이션이 있을 때 크게 Problem space와 Solution space로 나누어 볼 수 있다.Problem Space / Solution SpaceProblem SpaceThe prob..
Cookie 와 Session
·
Programming/ETC
이번에 프로젝트를 하면서 cookie랑 session이 무엇인지 확실히 짚고 넘어가야할 것 같아서 정리해본다.컴공 3년 다니고 아직도 이 차이를 긴가민가 하는게 조금 쪽팔리지만서도 .. 구글링하면서 아 이랬지! 정도는 떠올라서 그나마 다행이다. Cookie 쿠키쿠키는 사용자의 컴퓨터에 저장되는 작은 정보 저장 파일이라고 보면 된다.사용자의 정보를 cookie에 저장해놓았다가 필요시 쿠키를 참조하여 HTTP를 통해 서버와 통신할 때 정보로서 이용할 수 있다. - 클라이언트가 웹사이트에서 페이지를 요청한다.- 서버는 쿠키를 생성하여 쿠키에 정보를 담아 HTTP 화면을 돌려줄 때 클라이언트에게 함께 준다.- 클라이언트는 받은 쿠키를 로컬 pc에 저장한다.- 해당 서버에 다시 요청 보낼 때, 저장해놓았던 쿠키를..