iOS(50)
-
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 -
WWDC2019 - Advances in Networking, Part 1
주요 내용 요약 Low Data Mode Combine in URLSession WebSocket URLSession and Network framework Network mobility Network 프레임워크와 URLSession 2가지 2track으로 진행한다.모티브사이드 프로젝트 채팅 기능에서 WebSocket을 사용하는데, StartScream 대신 직접 구현해보고자 서칭하다가 보게 됨. URLSession 기반 WebSocketTask를 중점적으로 봄. Low Data Mode 비용이 많이 드는 expensive mode인 cellular이거나 혼잡한 Wifi 환경일 때 LowData Mode라고 한다. Always save network data when there is no impact o..
2024.01.24 -
Memory Leak
Coorinator 패턴을 적용 후, Memory Leak이 있는지 없는지 체크해 보았다. 시나리오는 MainCoordinator(TabBar)가 제거 후, Login flow를 탈 때 TabBar가 가지고 있던 VC들에 대해 체크 1. 첫번째 탭의 첫번쨰 VC에서 RX.debug() 해 놓을 것들이 dispose메세지가 뜨지 않았다. 해서 deinit 안에 로그를 찍어보았는데, deinit 로그가 찍히지 않음. 2. instrument에서 Leak을 이용하여 체크 시도 Leak이 없다고 나온다!!? 하지만 Dispose도 되지 않고, deinit 로그도 찍히지 않았음 3. Rx 때문에 Leak이 나는지 child Coordinator 해제 시 Leak이 나는지 체크 기존 Leak이 나던 첫번째 VC 앞..
2023.10.31 -
인프콘 - FLO 커피챗
경로 작년 Let's Swift FLO 부스 이벤트에서 LinkedIn인 팔로우를 해놨는데, 커피챗 이벤트가 있어서 참여하게 됐다. 소감 플러스 알파 정도로만 생각하고 신청했는데, 채용에도 관련 깊은 팀장 직급 분하고 얘기를 하게 되었다. 면접자의 입장에서 뭘 검증하려는지, 자기는 어떤 것을 준비했었는지 알 수 있는 시간이었다. 너무 가볍게 생각했어서 20분의 시간을 제대로 활용 못해 아쉬웠다. 본인이 iOS 담당이 아니기 때문에 사전 질문은 iOS 파트를 통해 답을 구해오거나, 추가 질문은 메일을 통해 물어봐준다고 하는 등 상당히 친절하셔서 좋은 기억으로 남는다. 질문 FLO에서 요구하는 역량은 어떤 것이 있나요? // FLO iOS JD(Job Description) 자격요건 ㆍiOS 개발 경..
2023.08.16 -
동영상 피드 스크롤 시 중앙의 비디오만 재생되는 기능
유튜브, 인스타, 트위터 등 앱들을 사용할 때는 몰랐는데 생각보다 셀에서 영상이 재생되는 예제를 찾기 힘들었다. 상태 관리가 힘들어서 그런 것 같다. 그러던 중 아래와 같은 요구 사항이 추가되었다 피드 리스트에서 스크롤 시 중앙에 있는 비디오만 재생해주세요 구현 아이디어 1 [참고1] 테이블 뷰의 center 좌표를 구하고 헤당 좌표에 있는 셀의 비디오를 재생 재생 상태 관리는 이전에 재생한 cell을 변수로 저장 func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) { let point = self.convert(tableView.center, to: tableView) guard let ind..
2023.03.29 -
Nested ScrollView - 프로 프로필 피드 탭 구현
피드 기능이 추가 되면서 프로필에 유저가 작성한 피드 리스트를 추가하게 되었다. 스크롤 뷰안에 스크롤 뷰가 들어가게 되면서 자연스러운 유저의 스크롤 경험을 구현하기 어려웠다. 티빙과 같은 자연스러운 스크롤 뷰를 만들고 싶었다. 처음엔 내부 테이블 뷰를 isScrollEnabled 속성을 false로 주어 컨텐츠 사이즈를 다 잡아버리는 방식으로 구현했었다. 그러다 아래의 글을 보게 되었고, 이 방식이 reusable한 cell을 전혀 활용하지 못한다는 것을 알게 되었다. [참고1] 나이브한 테이블 뷰 - https://oleb.net/blog/2014/05/scrollviews-inside-scrollviews/ 찾아보니 크게 두가지 방법이 있었다. 1. 스티키 헤더: [참고2]헤더 뷰를 만들고 스크롤에 ..
2023.03.29