- Swift
- Human Interface Guidelines
- Apple
- lineBreakStrategy
- DiffableDataSource
- iTerm
- UILabel
- 앱개발
- 스위프트
- Accessibility
- UIKit
- IOS
- orthogonalScrollingBehavior
- WWDC
- GOF
- Combine+UIKit
- TOSS
- lineBreakMode
- 애플사이다
- 야곰아카데미
- CollectionView
- Keychain
- HIG
- iPad
- 디자인패턴
- Split View
- github
- 애플
- 전달인자 레이블
- LanguageGuide
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Today
- Total
목록비전공자용 노력 (12)
애플사이다의 iOS 개발 일지
연말 크리스마스 시즌을 맞아 2023년 회고를 작성했다. 약 1년 4개월 동안 개발자로 근무해 본 시점에서 소감을 남겼고 (주관 가득 주의) 작년 회고에 작성했던 목표를 얼마나 실천했는지 확인하고, 새로운 연간 계획을 세워봤다. 목차는 아래와 같다. 1. IT회사에서 개발자로 일하기 2. 올해 목표였던 것 3. 내년 목표 +) 1. IT회사에서 개발자로 일하기 IT와는 사뭇 동떨어진 일터에서 근무하다가 개발자로 취업한 뒤 여러 방면에서 문화 충격을 받았다. 사무실에서 카페처럼 BGM을 틀어주는 것만으로도 충격이었다. 대부분 긍정적인 충격이었기 때문에 그 경험을 털어놓고 싶어서 입이 근질근질했다. 그런데 입사 초반에는 단점보다는 장점만 말하게 될 것 같아서 해가 바뀔 때까지 기다렸다. 말하자면 제품을 구매..
개발자 글쓰기 모임인 “글또”의 8기로 참여하게 되었다. 다른 개발자들과 함께 좋은 글을 쓰는 방법에 대해 고민하고 성장하고 싶다는 것이 계기였다. 글또에 공유할 첫 번째 글로 를 작성해보려 한다. (2023년으로 넘어온지 벌써 한 달이 지난 시점이라 많이 늦었지만... 그래도 글또 덕분에 바쁜 와중에 글을 쓸 동기부여를 받았다.) 2022년을 한 줄 요약하면 “노베이스로 부트캠프 7개월 과정을 거치고, 5개월 뒤 iOS 개발자로 취직했다.” 이다. 이걸 좀 더 풀어보자면 “5년간 쌓아온 커리어를 접고, 야곰아카데미 부트캠프에서 7개월 동안 공부하고, 제주 한달살이로 워케이션하면서 개인 앱을 출시하고, 수십 번의 탈락 끝에 아이디어스의 iOS 개발자로 취직했다.”가 된다. 그 과정에서 느낀 것, 배운 것..
Swift 문법을 배우는 것과 RxSwift를 배우는 것은 큰 차이가 있었다. Swift는 처음부터 차근차근 배워야 하지만 RxSwift는 활용 방식이나 관련된 Operator가 너무 다양해서 필요한 것을 잘 추려서 써야한다. 그래서 Rx를 배우는 데 많은 시행착오가 있었다. ViewModel-ViewController를 binding 하는 기초 예제를 정리해보려고 한다. 언젠가는.. 겨우 Observable, BehaviorSubject, PublishSubject를 잘 쓰게 된 이후로는 이것만 썼다. 그런데 Rx의 기능을 충분히 활용하고 있지 못한 것 같아서 그 다음 단계로 UI를 안전하게 처리하기 위한 Bind, Driver, Relay를 배웠는데 매우 유용했다. 이 내용을 간단히 소개해보려고 한다..
맥북의 기본 화면녹화 기능을 사용하면, 소리가 포함되지 않는 문제가 있었다. iShowUInstatnt는 유료화됐고, SoundFlower는 M1/Big Sur 이후 비정상 작동해서 BlackHole을 사용하게 됐다. 다중출력기기 설정이 필요한데 매우 쉽다. 1. BlackHole 설치 Existential Audio에서 최상단의 BlackHole 2ch 버전을 다운받으면 된다. 이메일 인증만 하면 무료로 사용 가능하다. 이때 사운드 설정에서 출력을 BlackHole 2ch로 설정하면, 화면녹화 시 소리가 포함된다. 하지만 스피커 출력이 되지 않아서 화면녹화 도중에 소리를 들을 수 없다. 그래서 아래의 다중출력기기 설정이 필요하다. 2. 다중출력기기 설정 오디오 MIDI 설정에서 다중출력기기 설정을 해야..
주니어 개발자 면접을 보면서 이미지 처리에 대한 질문을 꽤 많이 받았다. 앱 출시 프로젝트 때는 서버에서 자체적으로 적당한 크기의 이미지를 저장하도록 수작업..했었기 때문에 대응이 어려웠다.. -> 현업에서도 이미지를 서버에서 일괄 관리하는 게 이상적이라고 한다. 즉, 서버가 특정 화면에 맞는 크기의 이미지를 미리 알아뒀다가 보내주는 방식이다. 클라이언트 단의 로직을 최소화할 수 있고, 서비스 운영 측면에서 보다 안정적이다. 현업에서는 대용량 이미지 처리, 특히 캐싱을 위해 Kingfisher 라이브러리를 쓴다고 한다. Kingfisher의 주요 기능은 URL을 넣으면 비동기로 이미지를 다운로드하고 캐싱 처리해주는 것이다. 이번 기회에 Kingfisher 소스코드를 뜯어보자. 공식문서로 Kingfishe..
개발자가 설정한 특정 상황이 발생하면 자동으로 실행할 동작을 미리 정해두는 기능이 있다. 예를 들어 특정 branch에 merge 또는 PR을 요청했을 때 테스트가 실행되도록 하는 것이다. Git Flow 기능과 함께 사용하면 더욱 유용하다. *Git Flow 설명은 지난 포스트 참고 - [Git] GitFlow로 브랜치 관리하기 이렇게 테스트 코드를 실행하거나, 새로운 버전을 release 하기 전에 TestFlight를 실행할 수 있는데 이러한 자동화 기능을 CI/CD라고 한다. CI/CD를 위한 툴은 Jenkins, fastlane, Buildkite 등 다양한데, 오늘은 GitHub Action을 알아보자. CI/CD란? CI : Continuous Integration (지속적 통합) CD :..
SwiftLint란? SwiftLint는 라이브러리이다. 이걸 설치하면 Xcode에서 코딩 컨벤션 관련 오류를 알아서 잡아내는 맞춤법 검사기 기능을 한다. SwiftLint 설치 방법은? SwiftLint를 설치하는 방법은 크게 CocoaPods를 사용할 건지, 사용하지 않을 건지로 나뉜다. 개인적으로 나는 최근 CocoaPods보다 SPM (Swift Package Manager)을 더 활발하게 사용하고 있다. 별도로 pod install을 할 필요가 없고, 코드리뷰를 할 때 리뷰어도 추가 작업 없이 코드를 확인할 수 있다는 장점이 너무 크기 때문이다. *그래도 CocoaPods으로 설치하고 싶다면 Zeddios님 링크를 참고 두 방법 모두 설치과정은 SwiftLint 공식문서에 다 나와있으므로 이걸 ..
부트캠프에서는 프로젝트를 진행할 때 STEP별 명세서를 받았다. 그래서 자연스레 브랜치 이름도 step1, step2... 등으로 네이밍했었다. 근데 직접 앱을 기획해보니 브랜치 이름을 어떻게 정할지 고민이 됐다. 'Git 브랜치 이름'을 키워드로 검색했더니, 온통 "Git Flow 전략"에 대한 자료만 나왔다. Git Flow가 뭘까? 브랜치 모델 (Branch Model)이란 브랜치 이름, 브랜치별 임무를 규정한 것이다. 이 브랜치 모델 중 가장 유명한 게 Vincent Driessen가 만든 Git Flow이다. 프로젝트를 효율적으로 관리하기 위해 master, develop, feature, release, hotfix 5개 종류로 브랜치를 구분한다. 당장 위의 구조도를 모두 이해할 필요는 없다...