iOS/네트워크(6)
-
WebRTC 앱 만들어보기: (1) Domain 지식
등장 배경WebSocket(Web Real Time Communication)은 서버의 중개를 거쳐 통신을 한다. 따라서, Client가 늘어나고, 프레임의 크기가 커질 수록 서버의 부담이 늘어난다.이를 해결하기 위해 등장한 것이 WebRTC이다. P2P로 연결되게 때문에 서버의 부담이 적다. 데이터 송수신에서는 UDP가 이용된다.Signaling두 클라이언트가 1)무엇으로, 2)어떻게 대화할지 서버를 통해 합의하는 과정.IP, 미디어 유형, 코덱 등을 초기화하는 과정Signalling 서버는 양방향 통신이 필요하기 때문에 WebSocket 구현이 일반적임이 시리즈에서는 FireStore를 이용하여 개발해볼 예정SDP(Session Definition Protocol)무엇으로 통신할지: 비디오, 오디오 ..
2024.09.08 -
WebSocket: (2) 등장 배경
Web의 시대로 넘어오면서, 응용 계층인 HTTP를 사용하는 웹브라우저에서 실시간 통신을 구현하려는 시도가 있었다.HTTP Pollingbatch time마다 요청을 보내 새로운 이벤트를 확인한다. 실시간 보장하지 않고, 응답이 없어도 계속해서 batch time마다 응답해야하는 낭비가 있다.HTTP Long Polling요청을 보내고, server event가 올 때까지 대기 후, 응답한다. 낭비되는 리소스가 줄어들었지만, 이벤트가 많이 발생한다면, polling과 유사하다.WebSocket의 등장기존의 Socket과 유사하게 연결을 수립하고, 연결이 유지되는 동안, 실시간 메세지 교환이 가능하다.HandshakeClient에서 Get Method로 WebSocket Key와 Upgrade Header..
2024.09.07 -
WebSocket: (1) Socket이란?
socket이란?컴퓨터 조립해본 경험이 있다면 CPU 접촉 단자를 소켓이라고 부르는 것을 들어보았을 것이다. 연결부를 뜻한다.alt; cpu socket imageNetwork SocketClient와 Server 사이 Connection을 가지고 네트워크 상에서 데이터를 송수신 할 수 있도록 만든 연결부이다. 이중 OSI 7계층에서 4계층에 해당하는 TCP(Transport Control protocol)을 따르는 소켓을 TCP 또는 TCP/IP 소켓, UDP를 따르는 소켓을 UDP 소켓이라고 한다.Socket FlowClinet와 Server의 Flow 차트는 다음과 같다.Client클라이언트가 소켓을 create하고, connect연결 요청을 한다. 연결이 수립(establish)되면, 그 때부터,..
2024.09.07 -
iOS에서 Android Fetcher 흉내내기 - API 호출 줄이기 2023.01.02
-
Follow / Like / Comment Change Notification to List 2023.01.02
-
API의 응답 코드는 어떻게 관리하는 것이 좋을까?
왜? 프로젝트 중 API의 응답 코드를 피처별로 나누다가 의문이 생겼다. 응답 코드를 어떻게 관리하는 것이 효율적일까? 현재 응답 코드는 API 별로 200, 201, 202, 401, 406, 500, 501코드로 내려온다. 응답마다 메시지를 다르게 해야해서 API응답 코드 enum도 API 갯수만큼 만들고 있다. 에러는 다른데 응답 코드가 같아서 생기는 일이다. 현재 API 응답 코드 Twitter의 응답 메시지 및 코드 { "errors": [ { "parameters": { "end_time": [ "2026-10-31T23:59Z" ] }, "message": "Invalid 'end_time':'2026-10-31T23:59Z'. 'end_time' must be a minimum of 10 ..
2022.02.22