Si Jong Tech Blog
close
프로필 배경
프로필 로고

Si Jong Tech Blog

  • 분류 전체보기 (240) N
    • ◽️ Programming (240) N
      • T I L (91) N
      • Swift 문법 (22)
      • UIKit (18)
      • SwiftUI (12)
      • TCA (6)
      • RxSwift (7)
      • iOS (35)
      • 회고 (5)
      • ◽️ Algorithm (32)
      • ◽️ Computer Science (12)
  • 홈
  • 태그
  • 방명록
MVI 아키텍처로 단방향 데이터 흐름 만들기

MVI 아키텍처로 단방향 데이터 흐름 만들기

2025.04.03 - [◽️ Programming/T I L] - 단방향 데이터 흐름이 왜 좋은데!? 단방향 데이터 흐름이 왜 좋은데!?스터디를 진행하면서 토론을 했던 주제가 TCA에서 얘기하는 단방향 데이터 흐름에 대한 이해를 도울 수 있는 토론이었던 것 같아 끝나고 개인적으로 다시 정리해서 글을 남기려고 한다. 매주 하dongdida.tistory.com 프로젝트를 진행하면서 단방향 아키텍처에 관한 관심이 생겼다 이전에는 클린아키텍처를 가지고 Repository, UseCase, ViewModel, View 를 구성해 관리했지만 이전에 블로그 글을 남겼던 내용과 같이 양방향 아키텍처를 충분히 사용해본 지금 상태에서 단방향 아키텍처는 어떤 방식으로 진행되는지 궁금했기 때문.. 대표적으로 SwiftUI..

  • format_list_bulleted ◽️ Programming/T I L
  • · 2025. 6. 17.
  • textsms

SwiftUI Navigation Router Injection VS NavigationPath

SwiftUI로 프로젝트를 진행하면서 네비게이션 관리가 점점 어려워 진다고 느껴지는 경우가 많다. 어디서 네비게이션을 처리해야할지 항상 고민이었는데 처음 도입하는데 복잡하다고 느낄 수 있지만 팀원의 추천으로 Router를 활용한 방식을 한번 도입해보려고 한다. Router Injection은 네비게이션 로직을 완전히 추상화해 의존성으로 주입하는 패턴이다. 일단 기존의 네비게이션을 활용하자면struct CalendarView: View { @State private var events: [Event] = [] @State private var navigationPath = NavigationPath() var body: some View { NavigationStack(..

  • format_list_bulleted ◽️ Programming/SwiftUI
  • · 2025. 6. 15.
  • textsms
FCM을 활용해 푸시 알림 구현하기 (1/2)

FCM을 활용해 푸시 알림 구현하기 (1/2)

이번 프로젝트에서 맡은 역할 중 FCM을 활용한 알림 서비스 구현 Task가 있어 먼저 자세하게 FCM이 어떤건지.. 어떻게 구현하는건지.. 어떤 방식으로 구성되어있는지 한번 알아보려고 한다! 먼저 FCM은 Firebase Cloud Messaging으로 말 그대로 Firebase 플랫폼에서 제공하는 메세지 전송 서비스로 앱에서 푸시 알림을 전달하는데 주로 사용 되게 된다! 이 서비스는 앱에 실시간 데이터를 전송하거나 사용자에게 알림을 제공하는데 유용하게 사용된다고 한다! 또한, 크로스플랫폼을 지원하는 것도 장점!! 그럼 기본 개념에 대해서 알아보자FCM의 구조앱 클라이언트 : 푸시 알림을 수신 하는 앱FCM 서버 : 알림을 전송하는 서버 (Firebase에서 관리)FCM 전송 API : 푸시 알림을 전..

  • format_list_bulleted ◽️ Programming/T I L
  • · 2025. 5. 30.
  • textsms
AVAudioSession설정으로 인한 트러블 슈팅 과정

AVAudioSession설정으로 인한 트러블 슈팅 과정

요즘 프로젝트를 진행하면서 너무 정신없이 바쁘단 핑계로 아주 오랜만에 블로그를 남긴다.. 영상 챗봇 관련 내용을 진행하면서 AVAudioSession을 다루는데 영상을 킨상태로 음성을 다루자니 자동으로 ducking되는 현상때매 꽤나 애먹었던 기억이 있어서 AVAudioSession은 어떤 것이고 무엇을 다루고 설정할 수 있는지 정리 해놓으려고 한다. 먼저 iOS에서 AVAudioSession은 앱과 iOS 오디오 시스템인 Core Audio 사이에서 중개자 역할을 담당한다. 여기서 어떤 방법을 통해 연결하는지 알아보도록 하자AVFoundation계층에서 AVAudioSession은 AVFoundation 프레임워크 안에 구현된 클래스이다. 앱은 AVFoundation을 통해 오디오 세션을 구성하고 활성..

  • format_list_bulleted ◽️ Programming/iOS
  • · 2025. 5. 26.
  • textsms
모듈화에 대한 고민, 최적의 구조를 찾아야한다!!

모듈화에 대한 고민, 최적의 구조를 찾아야한다!!

현재 나는 정신 건강 챗봇 서비스를 개발하고 있는데 얼굴 인식, 음성, 텍스트를 분석해 현재 감정상태를 판단하고 이 감정에 맞는 답변을 낼 수 있는 프로젝트를 진행 중이다. LLM 모델은 AI 연구소 측에서 담당하여 협업하며 진행 하는 중.. 현재까지 프로젝트를 진행하면서 Feature 단위로 모듈화를 나눠 UserSession, Chatbot, FaceCatch, VoiceRecord 등 각 기능별로 모듈화를 해 내부 네트워크 통신이나 데이터 저장하는 로직을 해당하는 기능에 모두 통합해 구성하였다. 이렇게 구성했을때 기능에 따라 모든 기능이 분리되어 관리된다는 장점이 있었지만, 영상 채팅 기능을 추가하여 기능을 디벨롭하면서 명확한 한계점을 맞이할 수 있었다.. API 통신을 하는 네트워크 로직, 데이터..

  • format_list_bulleted ◽️ Programming/T I L
  • · 2025. 5. 9.
  • textsms
Tuist를 사용하면서 만난 Duplicate Symbol Error

Tuist를 사용하면서 만난 Duplicate Symbol Error

Tuist를 활용해 카드 정보를 API로 호출 받아 관리하는 프로젝트를 진행하게 되었는데 이전에 학습해 둔 Tuist를 바탕으로 각 모듈을 나눠 기능을 구현하게 되었다. 네트워크 기능을 제외한 모든 기능을 모듈 별로 구현한 다음 마지막으로 네트워킹을 넣게 되었는데 이 시점에서 Duplicate Symbol Error가 발생하여 해결하기 까지 아주 골치가 아팠다.. 하지만 결국 원인을 알게 되었고 해결 했으니 잊지 않기 위해 그 과정을 한번 정리해보자 Duplicate Symbol Error란 무엇인가Tuist를 활용하여 모듈을 나눠 개발을 하다가 빌드 과정에서 이런 오류를 만나게 될 때가 있다Duplicate symbol '_ExampleFunction' in: /path/ModuleA.o /..

  • format_list_bulleted ◽️ Programming/iOS
  • · 2025. 4. 30.
  • textsms
  • navigate_before
  • 1
  • 2
  • 3
  • 4
  • ···
  • 40
  • navigate_next
프로필 로고

Si Jong Tech Blog

전체 카테고리
  • 분류 전체보기 (240) N
    • ◽️ Programming (240) N
      • T I L (91) N
      • Swift 문법 (22)
      • UIKit (18)
      • SwiftUI (12)
      • TCA (6)
      • RxSwift (7)
      • iOS (35)
      • 회고 (5)
      • ◽️ Algorithm (32)
      • ◽️ Computer Science (12)
최근 글
인기 글
최근 댓글
태그
  • #swift
  • #TIL
  • #MVC
  • #uikit
  • #IOS
  • #티스토리챌린지
  • #tableView
  • #알고리즘
  • #project
  • #오블완
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바