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

Si Jong Tech Blog

  • 분류 전체보기 (253)
    • ◽️ Programming (253)
      • T I L (92)
      • Swift 문법 (23)
      • UIKit (18)
      • SwiftUI (13)
      • TCA (7)
      • RxSwift (7)
      • iOS (44)
      • 회고 (5)
      • ◽️ Algorithm (32)
      • ◽️ Computer Science (12)
  • 홈
  • 태그
  • 방명록
Sendable에 대해서 알아보자

Sendable에 대해서 알아보자

https://developer.apple.com/documentation/swift/sendable/ Sendable | Apple Developer DocumentationA thread-safe type whose values can be shared across arbitrary concurrent contexts without introducing a risk of data races.developer.apple.com SendableSendable은 Swift Concurrency 환경에서 여러 스레드나 액터 간에 안전하게 값을 전달할 수 있음을 보장하기 위한 프로토콜이다. 이는 데이터 경합(data race)과 관련된 문제를 방지하고, 동시성 안전성을 확보하는데 중요한 역할을 한다. Send..

  • format_list_bulleted ◽️ Programming/iOS
  • · 2025. 2. 24.
  • textsms
Swift Concurrency에서 Task는 어떤 역할을 담당하나

Swift Concurrency에서 Task는 어떤 역할을 담당하나

2024.08.19 - [◽️ Programming/T I L] - Swift의 async/await에 대해서 알아보자 Swift의 async/await에 대해서 알아보자Swift 5.5부터 도입된 async/await는 기존의 비동기 처리방식인 DispatchQueue나 completionHandler를 사용해 처리했지만 더욱 직관적이고 관리하기 쉽게 만들어 주는 기능이다. 기존의 비동기 처리 방식과 비dongdida.tistory.com 이전에 async/await 에 대해서 알아보는 시간을 가졌지만 이번엔 Task는 어떤 역할을 담당하고 있는지 한번 살펴보자 TaskTask는 Swift Concurrency에서 비동기 작업을 나타내며, async/await 문법과 결합하여 동기 코드처럼 읽히면서도 ..

  • format_list_bulleted ◽️ Programming/iOS
  • · 2025. 2. 20.
  • textsms
WebSocket과 Starstream에 대해서 알아보자.

WebSocket과 Starstream에 대해서 알아보자.

이번엔 실시간 데이터 스트리밍 로직을 한번 공부해보기 위해 WebSocket의 대한 개념과 Starstream에 대한 내용을 한번 알아보고자 한다!먼저 WebSocket은 클라이언트와 서버 간의 전이중 통신을 지원한다. 이 말의 뜻은 양측이 동시에 데이터를 주고 받을 수 있음을 의미하며, 실시간 채팅, 금융 데이터 스트리밍, 온라인 게임 등 빠른 응답이 필요한 앱에서 주로 사용되곤 한다. HTTP는 요청-응답 방식으로, 매번 새로운 연결을 생성하지만, WebSocket은 초기 핸드쉐이크를 통해 한 번 연결이 성립되면 그 연결은 지속적으로 유지되는 특징을 가지고 있다. 이로 인해 반복적인 연결 설정 비용이 줄어들고, 실시간 데이터 전송에 최적화 된다!! 아주 중요한 개념이니 꼭 잊지 말도록 하자. WebS..

  • format_list_bulleted ◽️ Programming/T I L
  • · 2025. 2. 17.
  • textsms
Objective-C를 Swift에 가져와 사용하기

Objective-C를 Swift에 가져와 사용하기

이번에 OpenSMILE이라는 C언어 기반의 라이브러리를 연동해 기능을 구현해야하는 상황이 생겨 Objective-C 코드를 Swift에서 연결해 사용하는 방법에 대해 설명하려고 한다 🙂먼저 Swift에서는 C 또는 Objective-C 코드를 직접 “import”해서 사용할 수 없다 대신 Bridging Header라는 특별한 헤더 파일을 만들고 그 안에 연결하고 싶은 오브젝티브씨 파일을 입포트해 구문을 작성하면 Swift 컴파일러가 해당 언어들을 인식하여 Swift 코드에서 사용할 수 있게 된다. Bridging Header는 Objective-C에서 정의된 클래스, 함수, 상수들을 Swift에서 쓸 수 있게 해주는 다리역할을 한다고 생각하면 된다 🙂먼저 파일을 생성해주기 위해 Command+N ..

  • format_list_bulleted ◽️ Programming/iOS
  • · 2025. 2. 12.
  • textsms
fastlane를 활용한 CI/CD 환경 세팅하기

fastlane를 활용한 CI/CD 환경 세팅하기

오늘은 fastlane를 활용해서 배포 자동화를 통해 테스트플라이트 혹은 배포 시 수월하게 할 수 있는 툴을 사용해보고자 한다. 또한 협업하는 과정에서 인증서를 개별적으로 관리하게 되면 번거로울 뿐 만 아니라 많은 문제가 생겨 시간을 잡아먹을 수 있는데 fastlane의 match를 활용해서 하나의 인증서로 팀원들도 배포자동화를 할 수 있는 환경을 한번 세팅해보자! fastlane 설치하기먼저 fastlane를 설치하기 위해 홈브루를 활용해 간편하게 설치한다brew install fastlane터미널에 넣어주면 간편하게 설치가 완료된다. 그 다음 프로젝트 루트로 이동해서 해당 하는 프로젝트에 fastlane를 초기화 해준다현재 fastlane를 적용할 프로젝트로 이동 후 → fastlane 초기화 fas..

  • format_list_bulleted ◽️ Programming/T I L
  • · 2025. 2. 5.
  • textsms
Swift Concurrency 중 MainActor의 역할은 무엇인가

Swift Concurrency 중 MainActor의 역할은 무엇인가

요즘 Swift Concurrency에 대해서 공부를 하고 있는 중인데 그 중 MainActor의 역할이 아주 중요하게 작용하는 것 같아 한번 정리하고 넘어가고자 한다!!https://developer.apple.com/documentation/swift/mainactor/ MainActor | Apple Developer DocumentationA singleton actor whose executor is equivalent to the main dispatch queue.developer.apple.com 기본적으로 MainActor는 메인 스레드에서 실행되어야 하는 코드가 백그라운드 스레드에서 실행되지 않도록 보장하는 역할을 담당한다.이 역할과 동작방식에 대해서 한번 자세히 알아보도록 하자 Mai..

  • format_list_bulleted ◽️ Programming/iOS
  • · 2025. 2. 3.
  • textsms
Vision 프레임 워크를 활용해 얼굴 인식하기

Vision 프레임 워크를 활용해 얼굴 인식하기

오늘은 현재 구현하고 있는 Chatbot 프로젝트에서 이미지를 올려 말하는 것 처럼 할 수 있고 이미지의 텍스트를 인식해 보여줄 수 있는 OCR 기능에 대해 찾아보던 중 Vision 프레임 워크가 있다는 것을 알게돼 한번 알아보려고 한다 🙂먼저 Vision 프레임워크는 머신 러닝 기술과 Swift의 동시성 기능을 결합해 앱에서 컴퓨터 비전 작업을 수행할 수 있다. 인간 혹은 동물의 신체 자세 또는 물체의 궤적을 추적한다거나, 텍스트를 인식 하거나, 눈 코 입 등 얼굴의 랜드마크를 감지하는 등 다양한 기능을 제공한다. 먼저 Vision 작업은 요청과 핸들러를 통해 실행되게 되는데 주요 핵심 클래스는 다음과 같다.VNImageRequestHandler : 정적 이미지 요청을 처리하는 클래스VNSequenc..

  • format_list_bulleted ◽️ Programming/iOS
  • · 2025. 1. 20.
  • textsms
JWT의 기본 개념과 HaruFit 프로젝트에 적용해보기

JWT의 기본 개념과 HaruFit 프로젝트에 적용해보기

현재 HaruFit이라는 개인 프로젝트를 진행하면서 추후 유저 간의 커뮤니티 기능과 각각의 계정 별 저장된 운동 기록 및 정보들을 관리하기 위해 계정 정보를 관리하기 위해 사용자를 인증하는 과정을 추가해야 한다. 이를 위해 알아야 하는 개념인 JWT의 기본 개념에 대해서 먼저 정리해보도록 하자 머저 JWT는 JSON Web Token의 약자로 서버-클라이언트 간 인증을 위해 널리 사용되는 토큰 기반 인증방식이다! 서버가 로그인 성공 시 사용자 정보를 기반으로 토큰을 생성하면, 클라이언트는 이후 API 요청 마다 이 토큰을 HTTP 헤더에 포함해 보내게 되고, 서버는 이 토큰을 검증해 사용자를 인증하게 된다.JWT의 3가지 구성 요소Header어떤 해싱 알고리즘을 쓰는지JWT 타입{ "alg": "HS2..

  • format_list_bulleted ◽️ Programming/iOS
  • · 2025. 1. 12.
  • textsms
Swift Format , Swift Lint 프로젝트에 적용하기

Swift Format , Swift Lint 프로젝트에 적용하기

오늘은 Swift Format , Swift Lint를 활용해 팀프로젝트 시 혹은 일관된 코드 스타일을 유지하고 좋은 코드 스타일을 유지하는데 큰 도움이 되는 방법을 알게 되어 한번 정리 해보고자 한다! 먼저 SwiftFormat, Swift Lint는 무엇이냐면 코드 스타일과 품질을 관리하는 도구! 라고 생각하면 된다. 각각 다른 성격을 가지고 있다!Swift Format : 코드의 일관된 스타일을 유지하고 가독성을 높여줄 수 있도록 자동으로 설정Swift Lint : 잘못된 코딩 스타일, 버그, 비효율적인 코드를 찾아 경고 혹은 오류를 통해 일관된 코드 스타일을 유지할 수 있도록 도와준다.둘 다 비슷하지만 다른 성격을 가지고 있어 나는 두개 다 사용하는 방식을 설정했다. 먼저 이 두가지는 SPM을 지..

  • format_list_bulleted ◽️ Programming/iOS
  • · 2025. 1. 7.
  • textsms
SwiftUI를 활용한 Pagination 구현하기

SwiftUI를 활용한 Pagination 구현하기

오늘은 SwiftUI를 활용해 Pagination 하는 법을 구현하였다. 이 페이지네이션은 앱 개발을 진행하면서 어떤 항목에서 필수로 들어가야하는 부분인 것 같다. UIKit을 통해서 구현할때는 조금 애를 먹었는데 SwiftUI는 보다 손쉽게 구현이 가능한 것 같다. 먼저 페이지 네이션이 필요한 이유는 간단하게 말하자면 성능 최적화에 있다. 대량의 데이터를 한번에 로드하면 앱 성능 저하와 메모리 사용량이 증가할 수 있다. 예를 들어 1000개의 리스트가 업데이트 되어야하는데 이용자가 보는건 10개 정도라면 나머지 990개는 보이지도 않는데 호출이 되어버린다고 했을때 쓸모없는 메모리 사용량이 많이 증가하고 그 만큼 앱 성능은 떨어질 수 있기 때문이다. 또한, 한번에 많은양을 로딩하는 것이 아닌 스크롤 하면..

  • format_list_bulleted ◽️ Programming/SwiftUI
  • · 2025. 1. 4.
  • textsms
  • navigate_before
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • ···
  • 26
  • navigate_next
프로필 로고

Si Jong Tech Blog

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

티스토리툴바