<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>개발 노트 · 김부성</title><link>https://blog.skyline23.com</link><description>김부성의 iOS 개발 기록. Swift, UIKit, SwiftUI와 앱을 만들며 배운 것들을 씁니다.</description><language>ko</language><atom:link href="https://blog.skyline23.com/feed.xml" rel="self" type="application/rss+xml"/><item><title>macOS 앱에 Python 런타임과 pip 패키지 완전히 내장하기</title><link>https://blog.skyline23.com/31</link><guid isPermaLink="true">https://blog.skyline23.com/31</guid><pubDate>Thu, 25 Sep 2025 09:42:03 GMT</pubDate><description>안녕하세요. 하늘선입니다. 블로그로는 꽤 오랜만에 인사드리는 것 같습니다. 오늘은 독립된 Mac앱에서 python 및 pip 패키지를 번들링 하는 법에 대해 기록을 남겨보고자 합니다. 원래는 iOS도 같이 준비하려고 했으나 글이 길어지고 복잡해질 우려도 있고, 제가 조금 더 검증</description><category>미분류</category></item><item><title>SwiftUI - 조심스러운 첫 걸음</title><link>https://blog.skyline23.com/30</link><guid isPermaLink="true">https://blog.skyline23.com/30</guid><pubDate>Thu, 30 Nov 2023 09:34:49 GMT</pubDate><description>안녕하세요 하늘선입니다~! 영어 닉네임을 뭐로 정하지 고민을 하다가, 그냥 편하게 하늘선이라고 하기로 했어요 ㅎㅎ 인삿말이 길었네요. 오늘은 긴 휴식을 끝내고 새로운 시작을 해보고자, 각종 핑계를 대며 미루고 미뤄왔던 SwiftUI에 대한 공부를 해보려고 합니다 👀 iOS 전반</description><category>iOS 프레임워크</category></item><item><title>NSLock</title><link>https://blog.skyline23.com/29</link><guid isPermaLink="true">https://blog.skyline23.com/29</guid><pubDate>Wed, 25 May 2022 01:37:13 GMT</pubDate><description>0. 개발자 문서 확인 먼저 알아보기 전에 NSLock에 관한 설명을 애플의 개발자 문서에서 먼저 찾아보았다. https://developer.apple.com/documentation/foundation/nslock An object that coordinates the ope</description><category>iOS 프레임워크</category></item><item><title>Core Animation Pipeline</title><link>https://blog.skyline23.com/28</link><guid isPermaLink="true">https://blog.skyline23.com/28</guid><pubDate>Tue, 24 May 2022 12:59:31 GMT</pubDate><description>WWDC 2014 - Advanced Graphics and Animations for iOS Apps Commit Transaction Layout 단계: 레이어 정렬 및 위치와 색상을 정의 (layoutSubviews를 호출) Display: draw메서드들이 접근하는 단계.</description><category>iOS 프레임워크</category></item><item><title>defer</title><link>https://blog.skyline23.com/27</link><guid isPermaLink="true">https://blog.skyline23.com/27</guid><pubDate>Tue, 24 May 2022 06:02:56 GMT</pubDate><description>Swift를 사용하면서 거의 잘 활용하진 않았지만, 꽤나 흥미롭게 다가와 이 문법을 정리하게 되었다. 0. defer란 무엇인가? 현재 스코프를 벗어날 경우 가장 마지막에 실행이 되는 구문이다. 처음 보면 이해가 잘 가지 않겠지만 예시를 이해하다 보면 생각보다 금방 이해할 수 있</description><category>Swift 기본 문법</category></item><item><title>CADisplayLink</title><link>https://blog.skyline23.com/26</link><guid isPermaLink="true">https://blog.skyline23.com/26</guid><pubDate>Mon, 23 May 2022 05:53:52 GMT</pubDate><description>0. 개발자 문서 확인 iOS에서 뷰 생성과 애니메이션을 공부하던 중 CADisplayLink라는 것을 알게 되었다. 간단히 살펴본 것으로는 화면이 업데이트될 때마다 호출되는 객체라고 적혀있었다. 그래서! 이런 것은 또 못 참고 지나가기에 직접 실험을 진행해보고 싶었다. 일단 제</description><category>iOS 프레임워크</category></item><item><title>UI작업이 Main Thread에서 이뤄져야 하는 이유</title><link>https://blog.skyline23.com/25</link><guid isPermaLink="true">https://blog.skyline23.com/25</guid><pubDate>Fri, 20 May 2022 04:33:17 GMT</pubDate><description>iOS에서 개발을 진행하다 보면, UI 업데이트와 관련된 모든 작업은 main thread에서 작업을 해야 한다는 걸 많이 마주치게 될 것이다. 항상 이에 관한 정확한 이유를 모르고 넘겼지만 이번 기회에 이것을 한번 자세히 정리해보려 한다. 먼저 가장 많이 나타날 개념인 Thre</description><category>iOS 프레임워크</category></item><item><title>CGRect, CGSize, CGPoint에 대하여</title><link>https://blog.skyline23.com/24</link><guid isPermaLink="true">https://blog.skyline23.com/24</guid><pubDate>Thu, 28 Apr 2022 03:34:45 GMT</pubDate><description>최근 UI의 작동방식에 관심이 많아져 다시 기초부터 공부하게 되었습니다. PinLayout과 FlexLayout 같은 외부 서드파티 라이브러리를 활용한 UI에 관심을 가지고 찾아보고 있었는데, 확실히 기존에 사용하던 오토 레이아웃과는 다른 개념이었어요... 이것도 기회가 된다면</description><category>iOS 프레임워크</category></item><item><title>iOS 앱 v1.0.2 업데이트 - 2021.12.10</title><link>https://blog.skyline23.com/23</link><guid isPermaLink="true">https://blog.skyline23.com/23</guid><pubDate>Tue, 26 Apr 2022 06:51:58 GMT</pubDate><description>일기 앱 영어 버전 추가 기존 일기 앱은 한국어로 제작되었다. 그러나 조금 더 다양한 국가의 사람들이 우리 일기 앱을 사용할 수 있었으면 좋겠다고 생각했고, 전 세계에 보편적으로 사용되는 언어인 영어 버전을 업데이트하기로 결정했다. 일본어, 중국어도 서비스하고 싶었</description><category>오늘하루 개발 일지</category></item><item><title>iOS 앱 v1.0.1 업데이트 - 2021.12.06. ~ 2021.12.07</title><link>https://blog.skyline23.com/22</link><guid isPermaLink="true">https://blog.skyline23.com/22</guid><pubDate>Tue, 26 Apr 2022 06:40:17 GMT</pubDate><description>빈 태그가 들어가는 문제 수정 기존에 아예 태그 텍스트 필드를 적지 않았다면 일기가 작성되지 않았지만, 텍스트 필드에 #이라는 글자만 있을 때는 잡아내지 못하는 버그가 있었다. #과 공백은 글자로 취급하지 않고 검사해 길이가 0이 나오면 빈 태그 리스트로 인식하고</description><category>오늘하루 개발 일지</category></item><item><title>iOS 앱 심사를 위한 유지보수 - 2021.12.01</title><link>https://blog.skyline23.com/21</link><guid isPermaLink="true">https://blog.skyline23.com/21</guid><pubDate>Tue, 26 Apr 2022 06:38:48 GMT</pubDate><description>이메일 인증 버튼 수정 회원가입 진행 시 이메일 형식이 아니더라도 이메일 인증 버튼을 누를 수 있었으나, 이메일 형식을 작성했을 시에만 인증 버튼이 활성화되도록 변경 생체인증으로 잠금해제 수정 기존 KeychainAccess 라이브러리를 통한 생체인증과정을</description><category>오늘하루 개발 일지</category></item><item><title>iOS 테스팅 전 마무리 - 2021.11.07 ~ 2021.11.09</title><link>https://blog.skyline23.com/18</link><guid isPermaLink="true">https://blog.skyline23.com/18</guid><pubDate>Tue, 26 Apr 2022 06:36:39 GMT</pubDate><description>검색 기능 기존에는 뷰만 존재했었던 검색 기능을 테스팅을 시작하기 전 구현하였다. 기존 제작해두었던 DiaryService를 사용해 값을 받아오고, 이를 SearchView의 테이블 뷰에 RxDataSource를 활용하여 띄워주었다. 확실히 전에 사용해본 경험이 있</description><category>오늘하루 개발 일지</category></item><item><title>11주차 iOS - 2021.10.31 ~ 2021.11.06</title><link>https://blog.skyline23.com/17</link><guid isPermaLink="true">https://blog.skyline23.com/17</guid><pubDate>Tue, 26 Apr 2022 06:33:49 GMT</pubDate><description>네트워크를 활용하는 Service들 추가 이번 주에는 네트워킹을 활용하는 서비스들을 제작했다. 이 서비스들을 각자의 뷰 모델에 주입하고 사용하는 방식을 택했다. AuthService는 로그인 시 토큰을 가져와 저장하는 방식으로 사용하였고, 이 AuthService를 활용</description><category>오늘하루 개발 일지</category></item><item><title>10주차 iOS - 2021.10.24 ~ 2021.10.30</title><link>https://blog.skyline23.com/16</link><guid isPermaLink="true">https://blog.skyline23.com/16</guid><pubDate>Tue, 26 Apr 2022 06:10:37 GMT</pubDate><description>Memory Leak with DiaryTextField iOS 관련 자료를 뒤져보던 중 Memory Leak에 관한 내용이 나와 혹시 내가 만든 앱에는 Memory Leak이 생기진 않았을까라고 생각하며 Instruments 도구를 이용해 일기 앱의 메모리를 체크해보았</description><category>오늘하루 개발 일지</category></item><item><title>9주차 iOS - 2021.10.17 ~ 2021.10.23</title><link>https://blog.skyline23.com/15</link><guid isPermaLink="true">https://blog.skyline23.com/15</guid><pubDate>Tue, 26 Apr 2022 06:07:45 GMT</pubDate><description>Theme View 추가 기존에 있던 View에 Section을 나눠서 Theme Cell을 추가하였다. Section을 분리하여 ThemeCell, AppearanceCell의 Selection 이벤트를 분리하였고 update를 한 다음 TableView를 Refres</description><category>오늘하루 개발 일지</category></item><item><title>8주차 iOS - 2021.10.10 ~ 2021.10.16</title><link>https://blog.skyline23.com/14</link><guid isPermaLink="true">https://blog.skyline23.com/14</guid><pubDate>Tue, 26 Apr 2022 06:00:44 GMT</pubDate><description>Theme View 추가 테마를 변경할 수 있도록 Theme View에 관한 Controller와 Reactor를 추가했고 Tableview를 추가했다. AppearanceSelectCell을 추가하여 cell을 선택했을 때 라이트 / 다크 모드를 선택할 수 있도록 했다</description><category>오늘하루 개발 일지</category></item><item><title>7주차 iOS - 2021.10.03 ~ 2021.10.09</title><link>https://blog.skyline23.com/13</link><guid isPermaLink="true">https://blog.skyline23.com/13</guid><pubDate>Tue, 26 Apr 2022 05:59:08 GMT</pubDate><description>Search View 추가 Search View를 추가했고 DiarySearchBar를 만들었다. DiarySearchBar는 커스텀 버튼을 왼쪽에 배치해 눌렀을 시 navigation controller를 pop 할 수 있도록 설계했으며 이를 navigation bar</description><category>오늘하루 개발 일지</category></item><item><title>6주차 iOS - 2021.09.26 ~ 2021.10.02</title><link>https://blog.skyline23.com/12</link><guid isPermaLink="true">https://blog.skyline23.com/12</guid><pubDate>Tue, 26 Apr 2022 05:57:53 GMT</pubDate><description>DiaryTextField 에러 메시지 업데이트 기존 TextField는 입력하지 않아도 에러가 발생한걸로 인식되어 텍스트 필드 위쪽에 에러 메시지가 떠 있었으나, Validation 부분을 수정하여 비어있을 시 DiaryTextField가 에러 메시지를 출력하지</description><category>오늘하루 개발 일지</category></item><item><title>5주차 iOS - 2021.09.19 ~ 2021.09.25</title><link>https://blog.skyline23.com/11</link><guid isPermaLink="true">https://blog.skyline23.com/11</guid><pubDate>Tue, 26 Apr 2022 05:55:18 GMT</pubDate><description>레이아웃 업데이트 사용자의 다양한 기기에서 오늘 하루를 제공하기 위해서 레이아웃을 업데이트하였다. 화면이 큰 최신 아이폰들에는 정상적으로 보이지만, 옛날 작은 구형 아이폰 (iPhone SE) 시리즈에서 오늘 하루를 제공하기 위해서 화면 사이즈에 맞게 유동적으로 레</description><category>오늘하루 개발 일지</category></item><item><title>4주차 iOS - 2021.09.12 ~ 2021.09.18</title><link>https://blog.skyline23.com/9</link><guid isPermaLink="true">https://blog.skyline23.com/9</guid><pubDate>Tue, 26 Apr 2022 05:53:23 GMT</pubDate><description>RealmService 추가 RealmService를 만들었다. 기존처럼 Reactor에서 직접 Realm 객체를 생성하여 사용하는 건 비효율적이라고 판단했고, RealmService를 만들어서 Realm을 사용하는 reactor에 이 service를 의존성 주입하여서</description><category>오늘하루 개발 일지</category></item><item><title>3주차 iOS - 2021.09.05 ~ 2021.09.11</title><link>https://blog.skyline23.com/8</link><guid isPermaLink="true">https://blog.skyline23.com/8</guid><pubDate>Tue, 26 Apr 2022 05:51:21 GMT</pubDate><description>Realm DB 추가, Main 화면에 Floating Panel 추가 아직 Reactor에 익숙지 않은 듯하다. 이건 조금 더 써보면서 적응을 해야 할 것 같다. Realm DB를 처음으로 추가해봤다. 근본적으로 DB를 다루는거라 쿼리문에만 익숙해진다면 어렵지 않</description><category>오늘하루 개발 일지</category></item><item><title>2주차 iOS - 2021.08.29 ~ 2021.09.04</title><link>https://blog.skyline23.com/7</link><guid isPermaLink="true">https://blog.skyline23.com/7</guid><pubDate>Tue, 26 Apr 2022 05:48:04 GMT</pubDate><description>Side Menu 추가 디자인을 따라 메인에 있는 앱 드로어를 Side Menu 라이브러리를 통해 구현하고, 추가하였다. 리스트에 있는 버튼들은 재사용이 가능하도록 만들었고, 테마에 따라 컬러가 같이 바뀌도록 구현하였다. 로그아웃 버튼을 만들고 기능을 추가하였다. ❗️도</description><category>오늘하루 개발 일지</category></item><item><title>1주차 iOS - 2021.08.19 ~ 2021.08.28</title><link>https://blog.skyline23.com/5</link><guid isPermaLink="true">https://blog.skyline23.com/5</guid><pubDate>Tue, 26 Apr 2022 05:38:34 GMT</pubDate><description>iOS 앱의 아키텍처 그렇기에 소프트웨어 아키텍처를 많이 생각해보았고 Clean Swift(VIP)나 VIPER, RIBs를 사용하기에는 화면 구성이 그렇게 많지 않아 오버헤드가 아닌가 싶어서 가볍게 구성하기 위해 MVVM-C 구조를 채택하기로 하였다. ViewMode</description><category>오늘하루 개발 일지</category></item><item><title>Xcode Archive 멈춤현상 해결</title><link>https://blog.skyline23.com/4</link><guid isPermaLink="true">https://blog.skyline23.com/4</guid><pubDate>Tue, 19 Apr 2022 03:13:31 GMT</pubDate><description>최근 Xcode를 사용하며 아카이빙이 멈추는 현상이 생겼습니다 ㅠㅠ 아카이빙이 멈추는 이유라도 알려줬으면 시간을 덜 낭비 했었을텐데... 한시가 급한 배포 상황이었기에 너무 많은 당황을 했었지만 시간에 맞춰 배포가 되어야하니 정신을 부여잡고서 구글링을 했었습니다. 이를 해결하기</description><category>iOS 개발일지</category></item><item><title>lazy var 정리</title><link>https://blog.skyline23.com/3</link><guid isPermaLink="true">https://blog.skyline23.com/3</guid><pubDate>Tue, 13 Apr 2021 11:50:34 GMT</pubDate><description>이번에 미세먼지 앱을 만들어 보면서 lazy란 개념을 공부했습니다. 기존에 lazy라는 게 있다고 들어는 봤지만, 어떻게 쓰는지도 몰랐고 왜 쓰는지도 몰랐어요. 하지만 이번 기회에 왜 쓰는지 정리해보고 싶어서 공부를 시작해보았습니다. lazy는 초기 init시에 초기화되는 것이</description><category>Swift 기본 문법</category></item><item><title>Swift로 미세먼지 앱 만들기</title><link>https://blog.skyline23.com/2</link><guid isPermaLink="true">https://blog.skyline23.com/2</guid><pubDate>Sat, 10 Apr 2021 08:19:25 GMT</pubDate><description>학교 과제로 미세먼지를 보여주는 프로그램을 만들라기에 자신감 있게 iOS를 선택했습니다! 할 줄 아는게 iOS밖에 없어서... 과제도 이왕 만드는김에 제대로 만들어보자라고 생각해서 앱의 장점인 현재 위치를 받아와 주변 측정소의 미세먼지 값을 쓰기로 했어요. 앱 미리보기 미세먼지</description><category>iOS 개발일지</category></item><item><title>iOS 라이브러리 - KDCircularProgress</title><link>https://blog.skyline23.com/1</link><guid isPermaLink="true">https://blog.skyline23.com/1</guid><pubDate>Fri, 26 Feb 2021 10:40:00 GMT</pubDate><description>상벌점 조회 프로젝트를 진행하던 중 그래프를 그려야 할 일이 생겼습니다. iOS의 가장 대표적인 그래프 라이브러리인 Charts를 써봤지만 내가 하는 프로젝트의 디자인과 잘 맞지 않는 것 같았어요. 아래 사진과 같은 디자인을 맞춰주어야했는데, 마음대로 되는 게 아니더라고요. 그래</description><category>iOS 라이브러리 소개</category></item></channel></rss>