기록하는 습관을 통해 성장하자.
- [iOS/Xcode] Provisioning profiles 삭제하기 프로비저닝 프로파일이 꼬일 때가 있어 삭제하고 다시 다운로드할 필요가 있을 때 참고합니다. 터미널에서 아래의 경로로 이동해서 삭제해주시면 됩니다. cd ~/Library/MobileDevice/Provisioning Profiles 참고: stackoverflow.com/questions/45625347/xcode-provisioning-profiles-location 2021.03.15
- [iOS] FSCalendar Custom Header Swift FSCalendar에서 스와이프를 통해 달을 변경할 수 있지만, 따로 헤더에 버튼 부분이 없기 때문에 방법을 공유하고자 기록하겠습니다. 우선 아래와 같이 스토리보드에서 calendarView 위에 버튼, 라벨, 버튼으로 되어 있는 스택뷰를 추가한다. 그리고 해당 뷰컨트롤러에 아래 코드와 같이 연결해준다. @IBOutlet weak var calendarView: FSCalendar! @IBOutlet weak var headerLabel: UILabel! @IBAction func prevBtnTapped(_ sender: UIButton) { scrollCurrentPage(isPrev: true) } @IBAction func nextBtnTapped(_ sender: UIButton) { scrol.. 2021.03.10
- Publisher 깊게 보기 Publisher의 종류 한눈에 보기Combine에서 쓰는 Publisher는 크게 세 부류로 나뉨.분류 예시 특징기본 제공 PublisherJust, Empty, Fail, Future, Deferred한 번 정의되면 값이 정해져 있음외부 이벤트 PublisherURLSession.dataTaskPublisher, NotificationCenter.Publisher, Timer.publish시스템 이벤트에서 값이 흘러나옴수동 발행 PublisherPassthroughSubject, CurrentValueSubject, @Published코드에서 send()로 값을 직접 주입Apple이 기본 제공하는 Publisher들Just — 값 하나 내보내고 끝let publisher = Just("Hello")/.. 2026.05.13
- Combine이란? — 핵심 개념 3가지 세 개의 역할만 기억하면 됨.Combine의 모든 구조는 세 가지 역할로 설명됨.Publisher — 데이터를 내보내는 쪽Subscriber — 데이터를 받는 쪽Operator — 중간에서 데이터를 변환하거나 필터링하는 쪽아무리 복잡한 Combine 코드도 결국 "누가 데이터를 만들고, 누가 중간에서 가공하고, 누가 최종적으로 받는가"로 분해됨.Publisher — "나 값 줄게"Publisher는 시간이 지남에 따라 값을 내보내는 프로토콜. 네트워크 응답이 될 수도 있고, 텍스트필드의 입력값이 될 수도 있고, 타이머의 틱이 될 수도 있음.Publisher가 내보낼 수 있는 건 두 가지뿐임.값(Output) — 0개 이상완료(Completion) — 정상 종료 또는 에러. 한 번 발생하면 더 이상 값을 .. 2026.04.08
- 왜 Combine인가? Combine의 필요성에 대해 기록합니다. Combine이란?네트워크 요청, 사용자 입력 등 언제 올지 모르는 데이터(비동기로 발생하는 이벤트)를 다루기 위한 비동기 처리가 필요함.Combine은 이 처리를 해결하기 위해 만든 프레임워크→ 여러 비동기 패턴들을 하나의 일관된 파이프라인으로 통합하는 프레임워크기존 방식의 한계Combine 이전에는 여러가지 방식들(Completion Handler, Delegate, Notification Center, KVO 등)을 사용하여 처리했었음.각각의 패턴에 장점이 있지만, 한 곳에 모이면 코드의 흐름을 따라가기가 어려워짐.어떤 이벤트가 어디서 시작되어 어디로 흘러가는지, 에러는 어느 시점에서 처리되는지 이 모든걸 머릿속에서 추적해야 함.콜백 중첩 문제흔한 예를 들.. 2026.03.25