이번 스터디 프로젝트에서 채팅기능을 구현해야 하기에 간단하게 개념 정리를 먼저 해보려 한다.
웹소캣을 통한 채팅의 경우 이미 구현해본 경험이 있지만 그땐 제대로 모르고 쓰기도 했고 시간도 좀 지났기에 다시 정리를 하면 나중에 오류를 잡는데에도 도움이 될 거라 생각한다.
소캣통신이란 HTTP와 같은 연결 프로토콜이며 이를 이용하여 실시간성이 필요한 게임,채팅등을 구현할 수 있다.
최초로 서버와 클라이언트가 연결을 시작할 땐, HTTP와 같이 Handshake를 하여 연결설정을 하지만 그 이후 데이터 전송에서 Header부분에 필요한 정보들이 훨씬 적기에 서버-클라이언트간 빠른 정보 전달이 가능하다는 특징이 있다.
또한, 전방향성을 가져 하나의 채널로 송,수신을 할 수 있다.
아래의 사진처럼 , HTTP환경에서 사용하는 웹소캣통신은 ws로 시작하는데
HTTP의 경우 다른 사람이 패킷을 훔칠 수 있기에 위험성이 다분하다.
따라서, 잠깐 공부겸 만들고 버릴 프로젝트가 아니라 유지를 할 목적이고 다른 사람들이 들어와서 사용해볼 수 있는 프로젝트를 만들기 위해선 HTTPS를 적용하여 웹소캣또한 wss 즉, SSL을 적용시켜야 한다.
만약, 서버가 분리되어 있는 경우 (백엔드 서버, 웹 소캣 서버 분리) NGINX같은 was를 사용할 떄 리버스 프록시를 사용해야 하지만
그게 아니라면 서버에 Https적용만 하면 소캣통신또한 알아서 ws에서 wss로 업그레이드가 된다.
따라서, 우선 서버 도메인을 인증받아 Https를 적용한 후 웹 소캣을 구현해보려 한다.
다음글에서 EC2인스턴스 서버에 Https를 적용하는 방법을 써 볼 예정이다 !
'Spring' 카테고리의 다른 글
왜 Spring Scheduler를 사용할 때 트랜잭션이 정상적으로 수행되지 않을까? (0) | 2023.05.10 |
---|---|
Jsoup으로 로그인 후 웹 사이트 크롤링 하기 (1) | 2023.05.09 |
spring boot v3에 스웨거 적용하기 (0) | 2023.04.18 |
[Spring Boot] SMTP를 이용해 이메일 인증을 구현해보자 (0) | 2023.04.17 |
Spring Batch (0) | 2023.04.05 |