/users
/posts
/slides
/apps
/books
mysetting
/users
/posts
/slides
/apps
/books
11:55 5/30
minsone.github.io
11:55
minsone.github.io
민소네
https://minsone.github.io/
민소네 - 안정민
최종 피드 수집: 2026-05-28 08:16
전체 (449)
10d
[Swift] Optional 값을 꺼내고 비우는 take 함수
Swift에서 Optional 값을 다룰 때는 보통 if let, guard let, map, flatMap 같은 방법을 사용합니다.
그런데 가끔은 Optional에 들어 있는 값을 꺼내서 사용한 뒤, 기존 저장값은 바로 nil로
0
0
0
읽기모드
1M
[Swift][Network] 경량화된 Encodable 기반 파라미터 타입
배경
Swift에서 네트워크 요청의 body를 만들 때는 보통 Encodable을 채택한 타입을 정의해서 전달합니다.
struct UserInfoParameter: Encodable {
let name: String
0
0
2
읽기모드
1M
[Swift] private protocol로 파일 내부 공통 구현 숨기기
코드를 정리하다 보면, 같은 프로토콜을 채택한 타입이 여러 개 있는데 실제 구현을 열어보면 거의 똑같은 경우가 있습니다. 차이라고는 type 같은 값 하나뿐이고, 메서드 구현은 전부 복붙인 상태입니다.
예를 들어 Processor
0
0
0
읽기모드
3M
[Swift][Macro] 환경별 Swift 매크로 분기 처리: 환경에 따라 다른 매크로 호출
Swift 매크로를 사용하다보면 개발 환경에서 생성된 코드가 운영 환경에서는 불필요한 경우가 발생할 수 있습니다. 특정 Protocol을 구현한 Mock 객체를 생성하는 매크로를 사용한다고 가정해봅시다. swift-spyable,
0
0
1
읽기모드
9M
[Swift6][Concurrency] Swift에서 비동기 호출을 검증하기 (2) - AsyncStream을 활용한 이벤트 기반 테스트 헬퍼
Swift 5.5 부터 Concurrency가 도입되면서 비동기 함수를 훨씬 직관적으로 다룰 수 있게 되었습니다. 하지만 테스트 코드에서는 여전히 문제가 남아 있습니다.
“호출 횟수가 정확히 증가했는지”, “여러 callCount
0
0
2
읽기모드
9M
[Swift6] Swift에서 비동기 호출을 검증하기: Polling 기반 테스트 헬퍼
Swift 5.5 부터 Concurrency가 도입되면서 비동기 함수를 훨씬 직관적으로 다룰 수 있게 되었습니다. 하지만 테스트 코드에서는 여전히 문제가 남아 있습니다.
“호출 횟수가 정확히 증가했는지”, “여러 callCount
0
0
0
읽기모드
9M
Swift 5.5 부터 Concurrency가 도입되면서 비동기 함수를 훨씬 직관적으로 다룰 수 있게 되었습니다. 하지만 테스트 코드에서는 여전히 문제가 남아 있습니다.
“호출 횟수가 정확히 증가했는지”, “여러 callCount
0
0
0
읽기모드
10M
[ADR][가상] 아키텍처 의사 결정 기록: Tuist 템플릿 - 1 Project, N Target
Tuist 템플릿 - 1 Project, N Target
작성일 : 2025-07-19
작성자 : 안정민
상태
제안됨(Proposed)
배경
현재 Tuist를 사용하여 iOS 프로젝트를 관리하고 있습니다. 보통 하나의 Projec
0
0
1
읽기모드
11M
[ADR][가상] 아키텍처 의사 결정 기록: 네트워크 응답 처리 방식 개선 - 공용 응답 모델 도입
네트워크 응답 처리 방식 개선: 공용 응답 모델 도입
작성일 : 2025-06-02
작성자 : 안정민
상태
제안됨(Proposed)
배경
우리 팀은 현재 네트워크 응답을 처리할 때 API Raw Response를 받은 후 Mapp
0
0
0
읽기모드
11M
[ADR][가상] 아키텍처 의사 결정 기록: 네트워크 응답 처리 방식 개선 - 공용 응답 모델 도입
네트워크 응답 처리 방식 개선: 공용 응답 모델 도입
작성일 : 2025-06-02
작성자 : 안정민
상태
제안됨(Proposed)
배경
우리 팀은 현재 네트워크 응답을 처리할 때 API Raw Response를 받은 후 Mapp
0
0
1
읽기모드
1y
[Swift] Type Scanner (2) - Swift Testing을 분석하여 Test 타입 찾기
Test+Discovery.swift#L26를 보면, __🟠$test_container__ 문자열이 포함된 타입 이름을 찾을려는 것을 _testContainerTypeNameMagic 속성 이름을 통해 알 수 있습니다.
또한,
0
0
2
읽기모드
1y
[iOS][Objective-C] 동적·정적 라이브러리 혼용 시 발생하는 클래스 중복을 테스트로 검출하기 - objc_getClassList
라이브러리는 정적 라이브러리와 동적 라이브러리로 나뉘며, 정적 라이브러리는 컴파일 시에 링크되고, 동적 라이브러리는 런타임 시에 링크됩니다.
여러 동적 라이브러리가 정적 라이브러리를 참조할 때, 정적 라이브러리의 코드는 각 동적
0
0
10
읽기모드
1y
[ADR][가상] 아키텍처 의사 결정 기록: 내부, 외부용 App Scheme 분리 결정
내부, 외부용 App Scheme 분리 결정
작성일 : 2024-12-24
작성자 : 안정민
상태
제안됨(Proposed)
배경
앱 스킴은 다른 앱에서도 동일한 앱 스킴을 설정하여 사용할 수 있음.
다른 앱에서 동일한 앱 스킴을
0
0
3
읽기모드
1y
[SwiftTesting] Swift Testing 분석 (1) - Expand Macro(Test)
Xcode 16이 출시되면서 새로운 테스트 패키지인 Swift Testing이 추가되었습니다. 기존 XCTest를 이용하여 테스트를 작성했다면, 이제는 Swift Testing을 활용하여 현대적인 테스트 케이스를 작성할 수 있게
0
0
3
읽기모드
1y
[Tuist 4.x+] Cache
Tuist는 Xcode 프로젝트를 생성하고 관리하는데 있어 아주 강력한 도구입니다. 특히, 특정 서비스를 개발하기 위해 일부 프로젝트들로만 구성하여 개발을 진행할 수 있습니다. 그래서 Tuist를 사용하는 팀은 모든 프로젝트를 인
0
0
8
읽기모드
1y
[Swift][Tuist] 파일 경로 간의 상대 경로 계산하기
Xcode의 프로젝트 파일의 빌드 세팅에서 해당 프로젝트 파일의 경로를 기준으로 상대 경로를 지정하는 것을 권장합니다. 이는, 모든 개발자가 동일한 개발 환경을 구성한다는 보장이 없기 때문입니다. 예를 들어, 특정 프레임워크의 위
0
0
3
읽기모드
1y
[Swift] Private Extension과 Helper 타입
우리는 코드를 작성할 때, 전달받은 Parameter를 이용하거나 변수의 값을 조합하는 등을 통해 새로운 값을 만들어 전달합니다.
graph LR;
A-->Business_Logic-->B;
다음과 같이 문자열이 들어왔
0
0
7
읽기모드
1y
[Swift 5.9+] Generic과 Noncopyable을 활용하여 보다 안전한 상태머신을 만들기
유한 상태 머신(Finite State Machine, FSM)은 소프트웨어 개발에서 자주 사용하는 패턴 중 하나입니다. 특정 사건(Event)에 의해 한 상태에서 다른 상태로 변할 수 있으며, 이를 전이(Transition)라고
0
0
15
읽기모드
1y
[Swift 5.10] Nested Protocol With RIBs
Swift에서는 Protocol을 제외한 대부분의 타입은 타입 내부에서 다른 타입을 정의할 수 있었습니다.
struct Parent {
class ChildClass {} // ✅
struct ChildStruct
0
0
1
읽기모드
2y
[ADR][가상] 아키텍처 의사 결정 기록: Package 접근제어자 사용
Contents:
상태
배경
결정
이유
결과
결론
관련 문서 링크
대안 고려
예상되는 리스크 및 대응책
구현 계획
비용 및 이점
결정 후 모니터링
Package 접근제어자 사용
작성일 : 2024-04-14
작성자 : 안
0
0
3
읽기모드
About
Badge
Contact
Activity
Terms of service
Privacy Policy