본문 바로가기

iOS 개발4

WebRTC 3 : 다음 스텝을 위한 개념정리 지난 시간의 개념을 정리하는 겸, 공부를 더 이어가기 전에 먼저 알아두면 좋은 용어와 개념에 대해서 정리를 해보겠습니다:) NAT(Network Address Translation) NAT는 '네트워크 주소 변환'으로 IP 패킷에 있는 출발지와 목적지의 IP주소와 TCP/UDP 포트 숫자 등을 바꿔 재기록하면서 네트워크 트래픽을 주고 받는 기술이다. 자세히 설명하자면, 각 기기에는 자신만의 identifier(IP)가 있는데, 이건 같은 컴퓨터 네트워크상에서 유효하다. 즉, 회사망/내부망인 LAN은 Private IP를 사용하기 때문에 다른 네트워크(인터넷 웹사이트 방문 등)에서는 통용되지 않는다. 그렇기 때문에 우리가 통상적인 네트워크에서 데이터를 주고 받기 위해서는 Public IP가 필요하다. NA.. 2021. 7. 21.
WebRTC 2 : Signaling Server WebRTC 두 번째 시간입니다. 지난 시간에 WebRTC를 통해서 우리는 Peer To Peer의 realtime communication이 가능하다고 했는데요. 하지만 이 말이 전적으로 맞는건 아닙니다. 다시 말해서 어쨋든! 서버가 필요하다는 거죠. 그럼 어떤 서버들이 있을까요? Signaling ICE & STUN / TURN Media Servers (option) 지난 시간에 눈으로만 익현던 친구들입니다. 하나 하나 알아가보겠습니다! 1. Signaling Server 란? WebRTC는 사용자 간의 Peer to Peer Connection을 통해서 Object를 교환합니다. 하지만 단순한 P2P 연결만 있다고 해서 통신이 가능한건 아니겠죠? 상대방, 즉 Object를 보내는 주체가 누구인지를.. 2021. 7. 21.
WebRTC 1 : WebRTC가 뭐야? 이전에 만들었던 아주 허접한 앱을 발전시키고자 리팩토링을 하던 중 상담 기능 추가가 필수적이어서 WebRTC를 활용해보려고 글을 적습니다. 일단 자료가 적고 UIKit이나 끄적될 줄 알았던터라 조금 더 low-level의 공부 + 새로운 API를 습득하는 것이 쉽지는 않아 걱정되지만 완주와 제대로된 서비스를 목표하며 달려보도록 하겠습니다! 1. 그래서 WebRTC가 뭔데? 약자 그대로 Web RealTime Communication, 웹에서 실시간 소통을 가능하게 하는 Open Framework 입니다. Framework라는 말에서 우리가 어떤 태도로 접근해야 하는지 각이 나오죠? 라이브러리처럼 우리가 필요한 곳에만 쏙쏙 집어넣고 사용하는 방식이 아니라 구조와 체계를 이해하고 그 안에서 우리가 할 수 있.. 2021. 7. 21.
weak와 unowned의 차이점 Retain Cycle과 그로 인한 Memory Leak을 방지하기 위해서는 weak과 unowned를 마주하는 것은 개발의 당연한 수순이다. 그리고 이 둘을 헷갈려하는 것도 자연스러운 수순이다. 이미 많은 글이 구글에 있기 때문에 자세한 설명은 그들에게 맡기고, 왜 이 둘 사이를 헷갈려하는지 어떻게 이해하는 것이 좋은지에 살펴보자. 핵심은 Reference Count가 0일 때, nil의 '보장' 여부를 정확하게 이해하는 것이다. Objective-C에서는 ARC가 선택적이지만 Swift에는 무조건 ARC를 통해서 메모리를 관리하게 된다. ARC는 Complie 단계에서 자동으로 Reference Count(retain, release)를 분석해서 메모리 해제여부를 결정하는데, 이 때 weak와 uno.. 2021. 5. 31.