Skip to content

Posts

All the articles I've posted.

2025 25
October 1
June 2
May 4
April 4
March 5
February 4
January 5
2024 3
August 3
2023 8
June 1
May 2
April 1
February 2
January 2
2022 14
December 2
  • 2022 하반기 회고

    4 min read

    벌써 2023년이 코앞이다. 하반기는 상반기에 비해서 시간이 빨리 지나간 것 같다. 상반기에는 일 위주로 작성했다면 이번 하반기에는 개인적인 일과 함께 회고를 작성했다.

  • 레츠스위프트 2022 참석 후기

    레츠스위프트 2022 참석 후기

    3 min read

    2019년 이후로 대면 컨퍼런스 참여하는 것은 이번 Let's Swift 행사가 처음이었다. 코로나로 인해 대면으로 컨퍼런스 참여하는 게 힘들었는데, 올해부터는 조금씩 소수 인원들만 초대해서 오프라인 컨퍼런스들이 조금씩 생기기 시작했다. 다행히 티켓팅 성공해서 이번 레츠스위프트 행...

October 1
  • 듀얼 모니터 보다 싱글 모니터

    듀얼 모니터 보다 싱글 모니터

    3 min read

    아마도 많은 개발자들은 듀얼 모니터를 사용할 것이다. 하나의 모니터에서는 메신저나 개발에 필요한 화면을 띄우고, 다른 모니터로는 개발 프로그램을 열어서 사용하는 게 대부분일 것으로 보인다. 나도 예전에는 맥북프로 화면으로 메신저를 키고 연결된 모니터로 개발 프로그램을 키고 업무를 ...

August 1
  • 코드 리뷰를 개선할 수 있는 Danger + SwiftLint Plugin

    3 min read

    깃허브에서 PR을 올려서 코드 리뷰를 받고 있는데, 코드 리뷰를 하다 보면 코드 스타일 등에 대해서 놓친 경우가 있어서 코멘트를 다는 경우가 있다. 예를 들면 네이밍 컨벤션이 잘 지켜지지 않거나 자주 놓치는 접근 제한자 같은 것도 있다.

July 3
  • iOS 15에서 UIButton의 title이 Button으로 나타나는 현상 해결 방법

    1 min read

    Xib로 `UIButton`을 만들면 보통 `Type`을 `Custom`으로 해서 만드는 경우가 있다. 이미지를 넣어서 이미지만 있는 버튼을 그릴 때는 Title 값을 빈 문자열로 둔다. 하지만 어떻게 설정하냐에 따라서 iOS 15에서는 Title 값에 Button이 나타나는 경우...

  • HTML을 NSAttributedString으로 변환하기

    1 min read

    화면에 노출하는 데이터 중에 문자열을 다루는 데이터가 많다. 그중에 특정 문자열의 텍스트 스타일을 입혀서 보여주는 경우가 있는데, 보통 HTML을 가지고 포맷하는 경우가 많다. 이때, swift에서 ```HTML```을 ```NSAttributedString```으로 변환해서 보여...

  • 2022 상반기 회고

    4 min read

    벌써 1년의 반이 지나갔다. 원래는 연말마다 1년 회고를 쓰려고 했는데, 요즘 주간 회고를 하고 있고 회고의 중요성을 많이 깨닫고 있어서, 늦게나마 상반기 회고를 작성하게 되었다.

May 1
  • SwiftUI에서 contentShape()을 이용해서 뷰를 탭하게 하는 방법

    1 min read

    일반 `Text`나 `Image`을 사용하면 탭 제스처를 추가해서 탭 했을 때의 동작을 정의할 수 있다. 하지만 `VStack`이나 `HStack` 같은 container view에 제스처를 추가하면 생각처럼 잘 안될 때가 있다. 예를 들어, `HStack` 안에 `Image`와 ...

April 2
  • UserDefaults를 사용하는 방법

    1 min read

    iOS에서는 사용자 설정 같이 정보량이 적은 데이터들을 앱이 설치되어 있는 동안 저장하여 사용할 수 있습니다. 바로 `UserDefaults`를 사용해서 저장하는 방법입니다. `UserDefaults`는 integer, boolean, string, array, dictionary...

  • Xcode Playground에서 attach failed invalid argument 에러 해결하는 방법

    Xcode Playground에서 attach failed invalid argument 에러 해결하는 방법

    1 min read

    Xcode Playground 생성해서 간단한 코드를 실행하려고 하는데, 아래와 같이 에러가 발생해서 실행이 안 되는 것을 발견했다.

March 1
January 3
2021 29
December 3
  • 2021년 회고

    5 min read

    벌써 2021년이 끝나간다. 시간이 빨리 지나간 것처럼 올해는 정말 많은 일이 있었고 바쁘게 지나간 것 같다. 작년에는 3년의 개발 생활을 회고했는데, 올해는 개인적인 일들이랑 같이 회고하려고 한다.

  • SwiftUI에서 View에 Background 추가하기

    1 min read

    스위프트UI에서 `background(_:alignment:)` view modifier를 이용해서 view에 background를 추가할 수 있습니다. 백그라운드는 추가하는 뷰의 크기만큼 만들어집니다.

  • 스위프트 typealias 활용하기

    2 min read

    스위프트에 있는 `typealias`는 기존에 존재하는 타입을 다른 이름으로 정의할 때 사용합니다. 상황에 따라서 기존에 있는 타입을 조금 더 적합한 이름으로 사용할 때 유용합니다. 예를 들어, 가격이 Int 타입인 상품 구조체struct가 있습니다.

October 2
  • How to launch app not immediately but launch after waiting

    How to launch app not immediately but launch after waiting

    1 min read

    We usually launch our app immediately when we build and run from Xcode. But there are sometimes we want to launch our app in a specific moment, for example t...

  • 한글 들어간 url string을 인코딩하는 방법

    1 min read

    문자열(이후 string)을 URL로 변환하여 사용하는 경우가 있는데, string 값에 한글 혹은 공백 같은 값이 들어갈 경우 nil 값이 반환된다. 퍼센트 인코딩(percentencoding)을 해야 올바른 url로 변환할 수 있는데, 스위프트 string에서 `addingPe...

September 3
  • 스위프트에서 빌더 패턴 구현해보기

    스위프트에서 빌더 패턴 구현해보기

    4 min read

    최근에 회사에서 커스텀 해서 사용하는 뷰를 사용해야 하는 경우가 생겼는데, 정해진 규칙이 있고 다양하게 조립하여 뷰를 그릴 수 있다고 판단하여 builder pattern(이하 빌더 패턴)으로 만들어 구현해 보았다. 회사 직원들도 잘 만들었다고 했고, 직접 사용하면서 불편한 점이 ...

  • Use Live View in Swift Playground

    Use Live View in Swift Playground

    1 min read

    Recently I've been using Swift Playground app on iPad for studying Swift language. Personally, I think the playground app is one of the best apps for learnin...

  • Xcode 시뮬레이터 동영상 녹화하는 방법

    Xcode 시뮬레이터 동영상 녹화하는 방법

    1 min read

    시뮬레이터로 앱 테스트하다 보면 스크린샷을 찍어서 사진으로 사용할 수 있다. 하지만 동영상으로 녹화해서 공유하고 싶은 상황이 발생할 수 있는데, 예전에는 Quick Player 앱을 사용하는 등 다른 방법으로 녹화해서 하는 방법이 있다. 하지만 Xcode 시뮬레이터에서 직접 동영상...

August 2
  • Xcode 저장공간 이해 및 관리

    Xcode 저장공간 이해 및 관리

    3 min read

    해당 글은 Understanding and Managing Xcode Space 글을 보고 정리한 글입니다.

  • 개발하면서 겪은 경험들은 언젠가 도움이 될 것이다

    2 min read

    며칠 전에 ""이라는 글을 읽으면서 많이 공감되었다. 최근에 비슷한 경험도 있어서 개발에 대한 나의 하나의 시각에 대해서 글을 쓰게 되었다. 나도 아직 연차가 많지 않다고 느끼지만, 조금이라도 내 경험을 통해서 신입 개발자들에게 응원이 되었으면 좋겠다.

July 1
June 1
  • WWDC21 Keynote에 대한 나의 생각들

    WWDC21 Keynote에 대한 나의 생각들

    3 min read

    1년 중 가장 즐거운 시간이 돌아왔다. 바로 애플이 개최하는 개발자 컨퍼런스인 WWDC21이다. 작년과 똑같이 온라인으로 진행해서 아쉽지만, 올해는 디지털 라운지, 코드 챌린지 등 다양한 활동을 진행한다. 이번 글은 아주 짧게 올해 발표한 내용에 대해서 내 생각들을 얘기하려고 한다.

May 1
April 4
  • Cannot find 'Something' in scope

    Cannot find 'Something' in scope

    1 min read

    After updating some third party sdk version, there was a warning that can't find some library when building the project.

  • Enable swipe back and the bug

    Enable swipe back and the bug

    2 min read

    In iOS, we can swipe back(left to right) to pop the view controller and navigate back. This is only available when the navigation bar is shown. If we want to...

  • How to hide navigation bar when scrolling

    How to hide navigation bar when scrolling

    1 min read

    In UINavigationController, there is a property called `hidesBarsOnSwipe` which hides its bars when scrolling or swipe down.

  • M1 mac에서 cocoapods 설치하기

    M1 mac에서 cocoapods 설치하기

    1 min read

    Update: Homebrew를 이용해서 설치하는 방법 추가하고 글 내용을 조금 수정했습니다.

March 5
  • iOS 14부터 UILabel에서 한글 사용할 때 줄바꿈 이쁘게 하기 (lineBreakStrategy)

    iOS 14부터 UILabel에서 한글 사용할 때 줄바꿈 이쁘게 하기 (lineBreakStrategy)

    1 min read

    iOS에서 `UILabel`에 한글을 사용할 때, 줄 바꿈이 이쁘게 되지 않아 문제가 됐었는데, 찾다 보니 iOS 14에서부터 한글 사용할 때 줄 바꿈이 이쁘게 할 수 있는 설정이 있다고 해서 테스트해봤다.

  • macOS Big Sur에서 Xcode cache 지우는 방법

    macOS Big Sur에서 Xcode cache 지우는 방법

    1 min read

    macOS Big Sur에서 Xcode 캐시 혹은 미사용 iOS 시뮬레이터 버전들을 저장공간 관리 개발자 영역에서 쉽게 지울 수 있습니다.

  • jekyll 블로그 테마를 바꾼 이유

    jekyll 블로그 테마를 바꾼 이유

    3 min read

    2019년 연말부터 거의 꾸준히 글 쓰려고 노력하고 있다. 기술 블로그 통해서 많은 것을 배워서 나도 비슷하게 그런 글을 쓰거나, 아니면 개인적으로 공부한 것을 기록하는 용도로 기술 블로그를 시작했다. 물론, 개인 포트폴리오 용도도 좀 있다. 성실하다는 것을 잘 나타나는 지표로 사...

  • Higher Order Functions: Filter, Map, Reduce

    1 min read

    There are some times we need to iterate an array or dictionary to collect or manipulate values. The easy way is using forin loop, get a value and add or mani...

  • How to Join an Array of Strings

    1 min read

    Using `joined()` method, we can merge an array of strings to a single string. We can add a separator too.

February 4
  • How to send emails from iOS 14

    How to send emails from iOS 14

    2 min read

    With iOS 14, thirdparty app can be the default email app. This means we may have to support sending email with thirdparty apps. If the user is not using the ...

  • iOS 14부터 달라진 앱에서 이메일 보내는 방법

    iOS 14부터 달라진 앱에서 이메일 보내는 방법

    2 min read

    iOS 14에서는 기본 이메일 앱이 아닌 다른 서드파티 앱을 기본 이메일로 설정할 수 있습니다. 즉, 지메일, Outlook, Spark 등의 메일 앱을 이제 기본 이메일 앱으로 대체할 수 있습니다.

  • Get an Array of Dictionary's keys or values

    1 min read

    If you need an array of keys or values of a dictionary, Swift has an easy way to do it.

  • Fork한 Repository Sync하기 (동기화하기)

    1 min read

    예전에는 리파지토리를 fork 해서 사용해 본 적이 드물었는데, 최근에는 fork 해서 개인 리파지토리에서 개발하다가 upstream 리파지토리로 반영하는 일이 잦아들었다. 그래서 개발하다 보면 최신 상태로 동기화 작업을 해야 하는데 맨날 까먹어서 글로 남기려고 한다.

January 3
  • Comparable enum

    1 min read

    From Swift 5.3 and later, enums can be comparable. We can compare two cases from the enum with ``````, ```<``` and similar.

  • How to show build times in Xcode

    How to show build times in Xcode

    1 min read

    You can show how long the project build in Xcode by entering below command in ```Terminal.app```.

  • Multiline string literal tips

    1 min read

    In Swift, we can use multiline string literal to express several lines of string. Although, adding the new line character ` ` can create line break, it only...

2020 20
December 1
  • 주니어 개발자의 마지막, 미드레벨(mid-level) 개발자의 시작

    7 min read

    이제 곧 4년 차, 미드 레벨(midlevel) 개발자가 될 예정이다. 생각보다 빠르게 시간이 지난 것 같다. 3년의 개발 생활을 회고하면서 그동안 나는 어떤 일을 했고, 앞으로는 어떤 방향으로 개발하고 싶은지 정리하고자 이 글을 쓰게 되었다.

November 3
October 1
August 3
July 2
  • WWDC20 Dub Dub Diary, Part 2 - Widget, App clips, and SwiftUI

    WWDC20 Dub Dub Diary, Part 2 - Widget, App clips, and SwiftUI

    3 min read

    On the second day of WWDC20, sessions were uploaded all at once and could be viewed immediately without waiting. Before this year, there were sessions by tim...

  • WWDC20 Dub Dub Diary, Part 1

    WWDC20 Dub Dub Diary, Part 1

    5 min read

    From June 23 to June 26, WWDC20 was hosted online. I was lucky to win the last WWDC18 and WWDC19 event, and I went to America alone and enjoyed it. So I coul...

June 1
  • dyld: library not loaded error 해결하기

    1 min read

    최근에 프로젝트에 TDD를 위해서 오픈소스 라이브러리 추가하여 작업 진행 중에 있습니다. ```RxTest``` 및 기타 라이브러리 추가하여 작업한 부분을 로컬 리파지토리에 병합하려고 하니 build 에러가 떴습니다. 다른 작업자분께서 작업한 부분이라 pull 받고 나서 에러가 떴...

May 2
  • git 강의 때 들었던 내용 정리

    1 min read

    대학생 때 들었던 Git 강의 내용을 종이 필기로 남겼는데, 버리기는 아까워 블로그 포스트로 옮겼습니다. 부족한 점이 있으면 알려주시면 감사하겠습니다. :D

  • Add image to string in UILabel using NSTextAttachment

    1 min read

    Sometimes you need to add image to a string in a `UILabel`, but using `UIImageView` gets complicated and sometimes not efficient. But Apple provides a simple...

April 1
March 3
  • How to detect current text while texting in UITextField

    1 min read

    While typing a text in `UITextField`, we could get the current text with `UITextFieldDelegate`'s Instance Method `textFieldDidChangeSelection(_:)`. But this ...

  • Ad Hoc 방식으로 iOS 앱 개발하는 방법

    1 min read

    예전에 사내용으로 앱을 개발하여 배포했던 적이 있었다. 사내용으로 만들 때는 Enterprise 개발자 계정으로 Ad Hoc 또는 Enterprise 용으로 앱을 만들어 배포할 수 있는데, 그중에 Ad Hoc 방식으로 했던 것들을 정리해보았다. (개인적으로 보려고 작성해서 이해하기...

  • CocoaPods 팁 (설치부터 오류 해결)

    2 min read

    앱 프로젝트 진행하다 보면, 오픈소스 라이브러리를 사용할 때가 있다. Xcode 프로젝트에 오픈소스 라이브러리를 설치 및 연결하는 방법이 CocoaPods, Carthage 또는 Swift Package Manager를 사용한다. 대표적으로 CocoaPods를 많이 사용하는데, C...

January 3
  • Info.plist Localization

    Info.plist Localization

    1 min read

    Recently, one of our app got rejected by App Store Connect, because it needed to update `NSPhotoLibraryUsageDescription` content. There was not enough reason...

  • Add Refresh Control to Collection View

    Add Refresh Control to Collection View

    1 min read

    I've been currently rebuilding a project that I'm working on, and there were some UI issues when refreshing datas. `UIRefreshControl` was implied for pulltor...

  • How to deal with scroll view content size with storyboard

    How to deal with scroll view content size with storyboard

    2 min read

    `UIScrollView` is very useful when presenting content that are larger than a single screen. I've been using it to support iPhone SE users or iPhone 8 users t...

2019 3
November 3
  • Use Sets for unique

    1 min read

    If there is something you need to handle data unique, use Sets instead of Array.

  • 깃허브(GitHub) 블로그 jekyll 테마 커스텀(custom)하기

    깃허브(GitHub) 블로그 jekyll 테마 커스텀(custom)하기

    4 min read

    어제 깃허브 블로그 구축하고 나서 꾸미려고 하니깐 뭔가 마음대로 꾸밀 수 없는 걸 느껴서, 테마를 가져와서 내 입맛대로 꾸밀 수 있을까 찾다가 jekyll theme을 fork 해서 커스텀할 수 있는 방법이 있다고 했다. 오늘 포스트는 테마를 조금 커스텀 할 수 있는 부분에 대한 ...

  • 깃허브(GitHub) 블로그 구축하기

    깃허브(GitHub) 블로그 구축하기

    2 min read

    개발자들이라면 한 번이라도 봤을 만한 블로그 주소는 {username}.github.io 일 것이다. 개인적으로 깃허브 블로그 페이지 만들면서 고생해서 간단하고 최소한의 작업으로 구축하는 방법을 기록하기 위해 포스트를 쓰기로 했다.

2015 1
March 1