[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() { ..
[Xcode] TDD와 XCTest 살펴보기
·
Apple/Xcode
안녕하세요! 피피아노입니다 🎵 이번 포스팅에서는 Test-Driven Development(TDD)의 개념과 Apple의 테스트 프레임워크인 XCTest 프레임워크에 대해서 정리를 해보려고 합니다. 그럼 바로 시작하겠습니다! 테스트의 정의소프트웨어의 품질, 성능, 신뢰성을 확인하는 절차소프트웨어 테스트는 프로그램이 예상대로 작동하는지 확인하는 과정수동 테스트는 사람이 직접 소프트웨어를 실행하고 결과를 확인하는 방식자동 테스트는 테스팅 소프트웨어 도구를 사용하여 테스트를 실행하는 테스팅 방식수동 테스트의 장단점장점사용자의 실제 행동을 반영한 테스트 가능기능이 자주 변경되는 초기 개발 단계 상황에서 적합UI/UX등 직관적인 부분 확인 용이단점시간이 소모적이고 비용이 많이 듦대규모 애플리케이션에서는 모든 기..
[운영체제] 동기화
·
CS/운영체제
안녕하세요! 피피아노입니다 🎵 이번 포스팅에서는 운영체제의 동기화에 대해서 정리해보려고 합니다. 운영체제에서 다중 프로세스와 스레드가 동시에 실행되는 환경에서는 자원 접근과 실행 순서를 제어하기 위한 동기화 메커니즘이 필수적입니다. 하지만 이러한 동기화를 고려하지 않으면 문제가 발생하게 되는데 이러한 내용을 중점으로 정리를 해보겠습니다. 동기화(Synchronization)이란?우선 동기화에 대한 개념부터 살펴보자면 동기화는 여러 프로세스나 스레드가 공유 자원에 접근할 때 데이터의 일관성을 유지하고 실행 순서를 제어하는 메커니즘입니다. 다중 프로그래밍 환경에서는 여러 프로세스가 동시에 실행되기 때문에, 공유 자원에 대한 접근을 제어하지 않으면 데이터 불일치 문제가 발생할 수 있습니다. 동시다발적으로 실..
[Swift] Combine에서 map과 flatMap 살펴보기
·
Apple/Swift
안녕하세요! 피피아노입니다 🎵 이번 포스팅에서는 Combine 프레임워크에서 사용되는 중요한 연산자인 map과 flatMap에 대해서 정리해보려고 합니다. Combine에 대해서 궁금하신 분들은 여기를 참고해 주시면 됩니다! 그럼 바로 시작하겠습니다! map 연산자우선 map 연산자부터 알아보겠습니다. map 연산자는 Publisher에서 방출된 각 값을 다른 형태로 반환하는 연산자입니다. 원본 데이터 스트림의 구조는 유지하면서 내부 값만 변경한다는 부분이 특징입니다.https://developer.apple.com/documentation/swift/sequence/map(_:) map(_:) | Apple Developer DocumentationReturns an array containing t..
[UIKit] UIViewController란 무엇일까?
·
Apple/UIKit
안녕하세요! 피피아노입니다 🎵 이번 포스팅에서는 UIKit에서 사용되는 UIViewController에 대해서 정리를 해보려고 합니다. 그럼 바로 시작하겠습니다! UIViewController란?UIViewController는 UIKit의 핵심 클래스 중 하나로, 뷰 계층 구조를 관리하는 객체입니다. UIViewController는 사용자 상호작용을 처리하고 데이터를 관리하게 되는데 MVC 패턴에서 C에 해당하는 Controller를 담당하고 있습니다. UIViewController는 iOS 앱의 화면 단위를 구성하며, 각 화면의 로직과 시각적 요소를 모두 관리합니다.UIViewController의 주요 역할UIViewController의 주요 역할은 크게 4가지로 정리할 수 있는데첫 번째로 뷰관리, ..