[Swift] Swift Testing 톺아보기
·
Apple/Swift
안녕하세요! 피피아노입니다 🎵 이번 포스팅에서는 WWDC24에서 발표한 새로운 테스트 도구인 Swift Testing에 대해서 공부를 하고 정리를 해보려고 합니다. Swift Testing은 새로운 오픈 소스 패키지로, Swift 코드를 테스트할 수 있습니다. 테스트를 설명하고 구성하는 기능이 포함되어 있으며, 장애 발생 시 대처를 위한 세부 정보를 제공하고 대규모 코드베이스에 맞게 확장할 수 있습니다. 프로젝트에 Swift Testing 도입하기앱에 대한 테스트를 작성해 본 적이 없다면 먼저 프로젝트에 테스트 번들 대상을 추가해줘야 합니다. File > New > Target을 선택합니다. 그런 다음 Test 섹션에서 Unit Testing Bundle을 검색합니다.Swift Testing은 이제 X..
[Swift] suffix()로 인한 시간 초과 문제 해결하기
·
Apple/Swift
안녕하세요! 피피아노입니다 🎵 이번 포스팅에서는 프로그래머스에 있는 문제 중 하나인 "햄버거 만들기" 문제를 해결하는 과정에서 발생한 시간 초과 문제와 이를 해결한 방법에 대해서 작성하려고 합니다. 문제 링크는 아래에 남겨둘테니 참고하실 분들은 링크 참고 부탁드립니다.햄버거 만들기 문제 문제 정의햄버거 가게에서 재료가 순서대로 쌓일 때, 특정 패턴의 햄버거가 완성되면 이를 포장하고 제거하는 문제입니다. 일단 문제를 살펴보겠습니다.문제 설명햄버거 가게에서 일을 하는 상수는 햄버거를 포장하는 일을 합니다. 함께 일을 하는 다른 직원들이 햄버거에 들어갈 재료를 조리해 주면 조리된 순서대로 상수의 앞에 아래서부터 위로 쌓이게 되고, 상수는 순서에 맞게 쌓여서 완성된 햄버거를 따로 옮겨 포장을 하게 됩니다. 상..
[Swift] Foundation Models Framework
·
Apple/Swift
안녕하세요! 피피아노입니다 🎵 이번에 WWDC25를 생방송으로 봤었는데 이번 발표에서 가장 인상 깊었던 것 중 하나는 Foundation Models 프레임워크의 공개였습니다. 이 프레임워크는 iOS, iPadOS, macOS, visionOS에서 on-device LLM (Large Language Model)을 활용할 수 있게 해주는 새로운 API입니다. 지금까지는 서버 기반의 LLM 사용이 일반적이었지만, 애플은 이를 디바이스 내에서 실행함으로써 개인 정보 보호, 저지연, 오프라인 처리까지 모두 잡는 혁신적인 접근을 제시했습니다. 이제 개발자들은 서버 기반 LLM 없이도, Swift 코드 몇 줄만으로 on-device에서 대화형 AI 기능을 구현할 수 있게 되었습니다.Foundation Model..
[Swift] Core ML과 MFCC를 활용한 감정 추론
·
Apple/Swift
안녕하세요! 피피아노입니다 🎵 육아 기록 앱을 개발하며, 아기의 울음소리를 분석해 감정을 분류하는 기능을 구현하게 되었습니다. 부모 입장에서 '왜 우는지'를 빠르게 파악하는 것은 매우 중요한 일이었고, 이 문제를 앱이 기술적으로 도울 수 있다면 큰 의미가 있겠다는 생각이 들었습니다. 이번 글에서는 해당 기능을 구현하며 어떤 기술을 사용했고, 구현 중 어떤 문제를 마주했고, 어떻게 해결했는지를 자세히 정리해보려고 합니다. 그럼 바로 시작하겠습니다!기능 개요기능: 아기의 울음소리를 분석하여 감정(예: 배고픔, 졸림 등)을 자동으로 분류사용 기술: Swift, SwiftUI, AVFoundation, Accelerate, Core ML모델: DeepInfant V2 CoreML 모델 사용입력: 마이크로 ..
[Swift] Tuist 살펴보기
·
Apple/Swift
안녕하세요! 피피아노입니다 🎵 Swift 기반의 프로젝트가 복잡해지고 규모가 커짐에 따라 프로젝트의 구조와 관리 방법도 복잡해지고 있습니다. 이러한 문제를 해결하고 효율적으로 프로젝트를 구성할 수 있는 강력한 도구가 바로 Tuist입니다. 이번 포스팅에서는 Tuist가 무엇인지, 어떤 장점을 가지고 있는지, 그리고 실제로 어떻게 사용하는지 정리를 해보려고 합니다. 그럼 바로 시작하겠습니다! Tuist란 무엇일까?Tuist는 Swift로 작성된 프로젝트 생성 및 관리를 위한 오픈소스 도구입니다. 프로젝트 설정 및 구조를 정의하는 코드를 통해 반복적인 작업을 자동화하고, 팀원들 간의 일관성을 유지하도록 돕습니다. Xcode 프로젝트 파일(.xcodeproj)을 자동 생성하고 관리함으로써 프로젝트 설정의 수..
[Swift] 의존성 주입(Dependency Injection)이란?
·
Apple/Swift
안녕하세요! 피피아노입니다 🎵 이번 포스팅에서는 의존성 주입(Dependency Injection), 줄여서 DI라는 개념에 대해서 Swift 언어 기반으로 살펴보려고 합니다. 본격적으로 들어가기 전에 의존성 주입은 객체지향 언어에서 개발을 하다 보면 점점 커지는 클래스와 복잡한 의존성 관계 속에서 코드를 유연하고 테스트하기 쉽게 만들기 위한 것이라고 생각하시면 됩니다. 그럼 바로 시작하겠습니다! 의존성(Dependency)이란?의존성이란 "어떤 객체가 다른 객체를 필요로 한다"는 의미로 정리해볼 수 있습니다. 예를 들어서 Car 클래스가 Engine 클래스를 내부적으로 사용한다면, Car는 Engine에 의존한다고 말할 수 있습니다.class Engine { func start() { ..