이번엔 실시간 데이터 스트리밍 로직을 한번 공부해보기 위해 WebSocket의 대한 개념과 Starstream에 대한 내용을 한번 알아보고자 한다!먼저 WebSocket은 클라이언트와 서버 간의 전이중 통신을 지원한다. 이 말의 뜻은 양측이 동시에 데이터를 주고 받을 수 있음을 의미하며, 실시간 채팅, 금융 데이터 스트리밍, 온라인 게임 등 빠른 응답이 필요한 앱에서 주로 사용되곤 한다. HTTP는 요청-응답 방식으로, 매번 새로운 연결을 생성하지만, WebSocket은 초기 핸드쉐이크를 통해 한 번 연결이 성립되면 그 연결은 지속적으로 유지되는 특징을 가지고 있다. 이로 인해 반복적인 연결 설정 비용이 줄어들고, 실시간 데이터 전송에 최적화 된다!! 아주 중요한 개념이니 꼭 잊지 말도록 하자. WebS..
오늘은 fastlane를 활용해서 배포 자동화를 통해 테스트플라이트 혹은 배포 시 수월하게 할 수 있는 툴을 사용해보고자 한다. 또한 협업하는 과정에서 인증서를 개별적으로 관리하게 되면 번거로울 뿐 만 아니라 많은 문제가 생겨 시간을 잡아먹을 수 있는데 fastlane의 match를 활용해서 하나의 인증서로 팀원들도 배포자동화를 할 수 있는 환경을 한번 세팅해보자! fastlane 설치하기먼저 fastlane를 설치하기 위해 홈브루를 활용해 간편하게 설치한다brew install fastlane터미널에 넣어주면 간편하게 설치가 완료된다. 그 다음 프로젝트 루트로 이동해서 해당 하는 프로젝트에 fastlane를 초기화 해준다현재 fastlane를 적용할 프로젝트로 이동 후 → fastlane 초기화 fas..
챗봇 앱을 구현하면서 TCA를 활용해 아키텍처를 구성할까, 클린아키텍처를 활용해 구성할까 고민하다가 외부라이브러리를 사용하지 않고 클린아키텍처를 통해 제대로 한번 구현해보고 싶은 마음에 클린아키텍처를 활용해 프로젝트를 구성하기로 했다. 이전 블로그 글을 통해 클린아키텍처에 대해서 정리했지만 간단하게 다시 훑고 지나가 보자 클린아키텍처는 크기 Presentation, Domain, Data 로 계층을 나눈다. Presenstation은 UI와 사용자의 상호작용을 처리하는 역할을 담당하고 View와 ViewModel로 나뉜다. View는 사용자의 행동을 받아드려 ViewModel로 전달하게 되고 ViewModel은 사용자 이벤트를 처리하며 UseCase를 호출해 비즈니스 로직을 실행한다. Domain은 핵심..
11월 25일 월요일 날 세종대학교에서 열린 2024 Let’s Swift에 다녀왔다 첫 컨퍼런스 참여라 많은 기대를 하고 방문하게 되었는데 회사에서 티켓도 사주고 연차도 지원해줘서 아주 나이스.. 덕분에 좋은 경험했다!날씨도 너무 좋고 세종대학교 처음 가봤는데 캠퍼스가 너무 이쁘다.. 대학 졸업한지 한참 지난 다음 대학교에 다시 오니 젊은이들 학교 다니는 모습들에 참 가슴이 몽골몽골해지기도 한 것 같다. 9시 30분부터 입장이 가능했고 나는 9시 30분에 시작으로 착각해 8시 50분에 도착해버렸다.. 조금 더 잘 수 있었는데..처음 도착하면 입장권을 확인하고 앱을 설치하면 스탬프를 받을 수 있었다. 앱을 설치하고 그 안에 시간표랑 여러가지 확인도 할 수 있어서 간편하게 사용하기 위해 미리 다운을 받았다..
오늘은 지금까지 수집한 데이터를 바탕으로 데이터 수집량에 관한 진행상황을 알 수 있는 주간 캘린더와 데이터를 시각화해 이해를 도울 수 있는 작업을 진행하였다. 먼저 캘린더 구현된 내용을 살펴보면 날짜를 1주일 단위로 보여주고 그 밑에 일자별로 데이터 수집량을 확인할 수 있도록 구현하였다.컴포넌트화 하기 위해 수집량을 파악하는 Progress 뷰와 캘린더뷰를 별도로 구분했다. CalendarView먼저 캘린더뷰를 살펴보자import SwiftUIstruct CalendarView: View { @State private var selectedDate = Date() @State private var showMonthPicker = false private let calendar = Cale..
오늘은 이전에 백그라운드를 통해 데이터를 수집했던 로직을 사용했을 때 iOS 정책 상 디바이스가 잠겼을 때 데이터에 접근할 수 없는 다소 민감한 데이터들을 처리하기 위해 고민 했던 내용을 기록으로 남겨두려고 한다. SensorKit, HealthKit 데이터와 같이 다소 민감한 데이터는 백그라운드에서 데이터 수집이 가능하지만, 디바이스가 잠겨있을 때 데이터 접근이 불가해진다. 목표는 최대한 많은 데이터를 수집해야하기 때문에 이 점을 바탕으로 가장 최선의 방식은 디바이스 잠김이 해제됐을때 데이터를 수집할 수 있도록 구현하는게 가장 좋다고 판단했다. 먼저 가장 중요한 개념은 UIApplication에서 protectedDataDidBecomeAvailableNotification 부분이라고 볼 수 있다. h..