https://www.youtube.com/watch?v=yXPCg5eupGM
앱 개발 과정에서 서버와 사용자가 데이터를 주고 받을 때, 가장 전통적인 방법은 HTTP 요청을 사용하는 것이다. 이는 사용자가 서버에 데이터를 요청하면 서버가 데이터를 보내주는 방식으로 동작한다.
HTTP 요청을 간단하게 이해하려면 문자메시지와 같다고 생각하면 된다. 우리가 서버에 문자 메시지를 보내 데이터를 요청하면 서버는 문자를 확인하고 데이터를 답변으로 보내주는 것이다. 하지만 이 방식에는 한 가지 특징이 있다. 그것은 서버가 능동적으로 데이터를 보내주는 경우는 없다는 것이다. 즉, 사용자가 먼저 요청을 보내야만 서버가 답변을 해준다.
1990년대까지는 HTTP 통신만으로 모든 웹 서비스를 만들 수 있었다. 하지만 현대의 웹 서비스는 복잡해져서 채팅이나 실시간 게임, 주식 거래 등을 모두 처리해야 한다. 예를 들어, 실시간으로 코인 가격을 보여주는 코인 거래소를 만들고 싶다면, 실시간으로 서버에서 코인 가격을 가져와 웹페이지에 보여주는 코드를 작성해야 한다.
그런데 이를 위해 매번 HTTP 요청을 보내는 것은 비효율적이다. 서버가 알아서 2초마다 데이터를 보내주는 것이 훨씬 효율적일 것이다. 이를 위해 사용할 수 있는 방법은 서버 센트 이벤트나 웹 소켓이다.
서버 센트 이벤트는 HTTP 통신을 계속 유지할 수 있는 방법으로, 서버가 능동적으로 데이터를 보낼 수 있게 한다. 하지만 이 방식의 단점은 서버만 데이터를 보낼 수 있다는 것이다. 이를 해결하기 위해 웹 소켓이라는 기술을 사용할 수 있다. 웹 소켓은 TCP 연결 기반으로 서버와 사용자 간의 양방향 통신을 가능하게 한다.
웹 소켓을 사용하는 방법은 간단하다. 사용자가 HTTP 요청을 보내 웹 소켓 연결을 요청하면, 서버가 이를 허락하고 웹 소켓 연결이 시작된다. 이후에는 서버와 사용자가 양방향으로 메시지를 주고 받을 수 있다. 이러한 웹 소켓 기능을 더 쉽게 사용하려면 socket.io와 같은 라이브러리를 사용하면 된다.
'공부 > 컴퓨터 공학, 학교 공부' 카테고리의 다른 글
게임과 인문학: 게임 속 난민사태와 사이버 민족지 (0) | 2025.05.09 |
---|---|
코딩초보들이 헷갈리는 용어 : API가 뭐냐면 (0) | 2024.02.01 |
Chat GPT를 통한 정보보호 아이디어 제안: Proposer information protection ideas through Chat GPT (1) | 2023.12.12 |
모바일 프로그래밍 기획서 - 빈대 지도 (1) | 2023.11.24 |
게임과 인문학 중간고사, 질문과 답 (0) | 2023.11.10 |