├── .gitignore └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | # Xcode 2 | # 3 | # gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore 4 | 5 | ## User settings 6 | xcuserdata/ 7 | 8 | ## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9) 9 | *.xcscmblueprint 10 | *.xccheckout 11 | 12 | ## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4) 13 | build/ 14 | DerivedData/ 15 | *.moved-aside 16 | *.pbxuser 17 | !default.pbxuser 18 | *.mode1v3 19 | !default.mode1v3 20 | *.mode2v3 21 | !default.mode2v3 22 | *.perspectivev3 23 | !default.perspectivev3 24 | 25 | ## Obj-C/Swift specific 26 | *.hmap 27 | 28 | ## App packaging 29 | *.ipa 30 | *.dSYM.zip 31 | *.dSYM 32 | 33 | ## Playgrounds 34 | timeline.xctimeline 35 | playground.xcworkspace 36 | 37 | # Swift Package Manager 38 | # 39 | # Add this line if you want to avoid checking in source code from Swift Package Manager dependencies. 40 | # Packages/ 41 | # Package.pins 42 | # Package.resolved 43 | # *.xcodeproj 44 | # 45 | # Xcode automatically generates this directory with a .xcworkspacedata file and xcuserdata 46 | # hence it is not needed unless you have added a package configuration file to your project 47 | # .swiftpm 48 | 49 | .build/ 50 | 51 | # CocoaPods 52 | # 53 | # We recommend against adding the Pods directory to your .gitignore. However 54 | # you should judge for yourself, the pros and cons are mentioned at: 55 | # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control 56 | # 57 | # Pods/ 58 | # 59 | # Add this line if you want to avoid checking in source code from the Xcode workspace 60 | # *.xcworkspace 61 | 62 | # Carthage 63 | # 64 | # Add this line if you want to avoid checking in source code from Carthage dependencies. 65 | # Carthage/Checkouts 66 | 67 | Carthage/Build/ 68 | 69 | # Accio dependency management 70 | Dependencies/ 71 | .accio/ 72 | 73 | # fastlane 74 | # 75 | # It is recommended to not store the screenshots in the git repo. 76 | # Instead, use fastlane to re-generate the screenshots whenever they are needed. 77 | # For more information about the recommended setup visit: 78 | # https://docs.fastlane.tools/best-practices/source-control/#source-control 79 | 80 | fastlane/report.xml 81 | fastlane/Preview.html 82 | fastlane/screenshots/**/*.png 83 | fastlane/test_output 84 | 85 | # Code Injection 86 | # 87 | # After new code Injection tools there's a generated folder /iOSInjectionProject 88 | # https://github.com/johnno1962/injectionforxcode 89 | 90 | iOSInjectionProject/ 91 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![심야아요 배너](https://user-images.githubusercontent.com/61109660/167799338-ab43eea4-8396-4f9b-be2f-99c57d9b2982.png) 2 | > 딱 한 가지만 지킨다. 평일 중 매일 1가지의 TIL을 기록하고 자정이 되면 그 내용을 공유한다. 3 | 4 | # iOS 5 | [Protocol -> BaseView](https://github.com/seungchan2/TIL/issues/6)
6 | [BottomSheet + PanGesture](https://github.com/seungchan2/TIL/issues/8)
7 | [@UIApplicationMain @main](https://github.com/seungchan2/TIL/issues/22)

8 | [Self-Sizing CollectionView (동적 width) [1 / 2]](https://github.com/seungchan2/TIL/issues/25)
9 | [Self-Sizing CollectionView (동적 width) [2 / 2]](https://github.com/seungchan2/TIL/issues/27)

10 | [Array의 index out of range 방지](https://github.com/seungchan2/TIL/issues/53)
11 | [String Extension](https://github.com/seungchan2/TIL/issues/70)
12 | [APIKey 숨기기](https://github.com/seungchan2/TIL/issues/78)
13 | [모듈화 개념 Library vs Framework](https://github.com/seungchan2/TIL/issues/108)
14 | 15 | ### UITest 16 | [UITest [1 / 3]](https://github.com/seungchan2/TIL/issues/83)
17 | [UITest [2 / 3]](https://github.com/seungchan2/TIL/issues/84)
18 | [UITest [3 / 3]](https://github.com/seungchan2/TIL/issues/85)
19 | 20 | ### Realm 21 | [Realm vs CoreData](https://github.com/seungchan2/TIL/issues/66) ⭐️
22 | [Realm 사용해보기](https://github.com/seungchan2/TIL/issues/67) ⭐️
23 | 24 | # Swift 25 | [final 키워드의 성능적 이점 (Static Dispatch, DynamicDispatch) [1 / 2]](https://github.com/seungchan2/TIL/issues/15) ⭐️
26 | [final 키워드의 성능적 이점 (실제 코드 예시) [2 / 2]](https://github.com/seungchan2/TIL/issues/14)

27 | 28 | 29 | [계산 프로퍼티 getter, setter](https://github.com/seungchan2/TIL/issues/37)
30 | [저장 프로퍼티 lazy](https://github.com/seungchan2/TIL/issues/26)
31 | [타입 프로퍼티 static](https://github.com/seungchan2/TIL/issues/44)
32 | [속성 프로퍼티 willSet, didSet](https://github.com/seungchan2/TIL/issues/45)

33 | 34 | [인스턴스 메서드](https://github.com/seungchan2/TIL/issues/46)
35 | [타입 메서드 class, static](https://github.com/seungchan2/TIL/issues/47)
36 | [서브스크립트 subscript](https://github.com/seungchan2/TIL/issues/48)

37 | 38 | [is 연산자](https://github.com/seungchan2/TIL/issues/50)
39 | [as 연산자](https://github.com/seungchan2/TIL/issues/51)
40 | [타입과 다형성](https://github.com/seungchan2/TIL/issues/52)

41 | 42 | [Generic](https://github.com/seungchan2/TIL/issues/72)
43 | [joined](https://github.com/seungchan2/TIL/issues/74)
44 | 45 | 46 | 47 | [UserDefaults에 대한 개인적인 생각](https://github.com/seungchan2/TIL/issues/30)
48 | [UserDefaults 그리고 PropertyListDecode](https://github.com/seungchan2/TIL/issues/31)

49 | 50 | 51 | 52 | 53 | [고차함수](https://github.com/seungchan2/TIL/issues/18)
54 | [기본 문법](https://github.com/seungchan2/TIL/issues/23) 55 | 56 | [ThreadSafeArray](https://github.com/seungchan2/TIL/issues/115) 🆕
57 | 58 | 59 | ### 클래스와 구조체 60 | [클래스와 구조체는 언제 사용해야 할까? + 차이점](https://github.com/seungchan2/TIL/issues/2) ⭐️
61 | [클래스와 구조체를 사용하는 이유](https://github.com/seungchan2/TIL/issues/41) ⭐️
62 | [클래스 초기화 init](https://github.com/seungchan2/TIL/issues/24) ⭐
63 | 64 | ### ARC 65 | [ARC](https://github.com/seungchan2/TIL/issues/3) ⭐️
66 | [강한 참조, 약한 참조, 미소유 참조](https://github.com/seungchan2/TIL/issues/58) ⭐️
67 | [순환 참조를 확인하는 방법](https://github.com/seungchan2/TIL/issues/7) ⭐️
68 | 69 | ### GCD 70 | [동시성 프로그래밍의 문제점 (Thread-safe / 교착상태)](https://github.com/seungchan2/TIL/issues/10) ⭐️
71 | [UI를 MainThread에서 업데이트 하는 이유](https://github.com/seungchan2/TIL/issues/11)
72 | [Blocking vs Non-Blocking / Sync vs Async](https://github.com/seungchan2/TIL/issues/4) ⭐️
73 | [GCD 예시 (DipsatchQueue.main.sync)](https://github.com/seungchan2/TIL/issues/54) ⭐️
74 | 75 | # RxSwift 76 | [Observables](https://github.com/seungchan2/TIL/issues/16)
77 | [초콜릿 앱 만들기](https://github.com/seungchan2/TIL/issues/32)
78 | [RxSwift + MVVM (Input, Output)](https://github.com/seungchan2/TIL/issues/34)
79 | [PHPhotoLibrary 권한 설정](https://github.com/seungchan2/TIL/issues/38)
80 | [combineLatest + UIImage](https://github.com/seungchan2/TIL/issues/39)
81 | 82 | ## RxSwift ++ 83 | [Obeservable와 Observer](https://github.com/seungchan2/RxSwift_Study/issues/1)
84 | [DisposeBag](https://github.com/seungchan2/RxSwift_Study/issues/2)
85 | [BehaviorSubject, PublishSubject 차이](https://github.com/seungchan2/RxSwift_Study/issues/3)
86 | [UI에서 Relay를 주로 사용하는 이유](https://github.com/seungchan2/RxSwift_Study/issues/4)
87 | [Cold Obseverable Hot Observerable](https://github.com/seungchan2/RxSwift_Study/issues/5)
88 | [Combining Operator [1/2] (Prefixing and concatenating)](https://github.com/seungchan2/RxSwift_Study/issues/6)
89 | [Combining Operator [2/2] (Triggers)](https://github.com/seungchan2/RxSwift_Study/issues/9)
90 | [extension Reactive where Base](https://github.com/seungchan2/RxSwift_Study/issues/10)
91 | [drive vs bind vs subscribe](https://github.com/seungchan2/RxSwift_Study/issues/11)
92 | [Relay, Signal, Drive](https://github.com/seungchan2/RxSwift_Study/issues/12)
93 | 94 | # CS 95 | [HTTP, HTTPS, Socket](https://github.com/seungchan2/TIL/issues/5) ⭐️
96 | [OOP의 특징](https://github.com/seungchan2/TIL/issues/42) ⭐️
97 | [DI, DIP](https://github.com/seungchan2/TIL/issues/79)
98 | 99 | # Architecture 100 | [MVVM + URLSession](https://github.com/seungchan2/TIL/issues/69)
101 | [MVVM 데이터 전달](https://github.com/seungchan2/TIL/issues/73)
102 | [MVC -> MVVM 리팩토링](https://github.com/seungchan2/TIL/issues/76)
103 | 104 | [Clean Architecture[1 / 3]](https://github.com/seungchan2/TIL/issues/80)
105 | [Clean Architecture[2 / 3]](https://github.com/seungchan2/TIL/issues/81)
106 | 107 | # Trouble Shooting 108 | 109 | [단순 데이터 전달에서의 UserDefaults](https://github.com/seungchan2/TIL/issues/1) 110 | --------------------------------------------------------------------------------