profile
목표와 계획, 그리고 실천을 믿습니다.
태그 목록
전체보기 (111)swift(23)Xcode(23)UIkit(10)functional programming(6)Map(6)OOP(4)Combine(4)bundle(4)Object Oriented Programming(4)framework(4)KVC(4)kvo(4)appStore(4)flatmap(4)rxswift(4)optional(3)MVVM(3)library(3)frame(3)dll(3)concurrent programming(3)Foundation(3)Subscriber(3)transition(3)publisher(3)app thinning(3)RunLoop(3)class(3)project(3)operator(3)@Target(3)presentation(2)Thread(2)serial(2)KeyPath(2)automation(2)inheritance(2)dark-mode(2)Storyboard(2)UIControl(2)key value observing(2)subscript(2)unowned(2)https(2)TLS(2)concurrent(2)retrospection(2)UITraitCollection(2)accessibility(2)timer(2)SOLID(2)operation(2)alfred(2)QoS(2)Quality of Service(2)VoiceOver(2)trouble shooting(2)Two-phase initialization(2)Key-Value Coding(2)Functor(2)layoutSubviews(2)build configuration(2)Automatic Reference Counting(2)serial queue(2)binary(2)Dynamic Colors(2)index out of range(2)reactive programming(2)set(2)Grand Central Dispatch(2)ARM(2)OperationQueue(2)reduce(2)executables(2)arm64(2)Value Type(2)url(2)Notification Center(2)animation(2)intel(2)CocoaPods(2)executable(2)event loop(2)ARC(2)weak(2)Reference Type(2)cpu(2)merge(2)http(2)2단계 초기화(2)Monad(2)Enumeration(2)review(2)CLEAN CODE(2)event driven(2)Request-Driven(2)Scheme(2)armv7(2)struct(2)Lazy Evaulation(1).swiftmoduleinterface(1)concurrency(1)stub(1)unit test(1)indices(1)partial application(1)package(1)RISC(1)Workspace(1)archive(1)final(1)compiler(1)invalidateIntrinsicContenstSize(1)function composition(1)Foreground(1)updateContraints(1)fast-forward(1)integration test(1)distribution(1)compact(1)SRP(1)open(1)public(1)Nonrepeating Timer(1)tableview(1)URI(1)DIP(1)header(1)DispatchGroup(1)anyObject(1)POST(1)Type Property(1)32bit(1)Enterprise Deployment(1)Subject(1)Space(1)Property Observers(1)workflow(1)Regular(1)INSERT(1)static linker(1)SPM(1)URLSessionStreamTask(1)XCTestCase(1)UIVisualEffectView(1)inspector(1)dsym(1)Dispatch Barrier(1)bitcode(1)인터페이스분리원칙(1)deployment(1).app(1)encryption(1)garbage collector(1)compactMapValue(1)Linker(1)ANSI(1)ISP(1)Run Loop(1)URLSessionDataTask(1)암시적 언래핑(1)Fat binary(1)willSet(1)URLRequest(1)URLComponent(1)PRESENT(1)mac(1)Build Active Architectures Only(1)Binary Framework(1)WHERE(1)Universal Link(1)snapshot(1)First-class Function(1)Provisioning profile(1)axis(1)Presentation Context(1)ABI Stability(1)Cache(1)접근제어(1)kd-tree(1)Anomymous Function(1)MRC(1)hugging property(1)Frame-based Layout(1)EPSG(1)10-200 Rule(1)indexPath(1)Code Smell(1)RxCocoa(1)compactMap(1)ASCII(1)x86_64(1)강제 언래핑(1)try(1)Constraint(1)security(1)url scheme(1)Size class(1)coordinate(1)묵시적 언래핑(1)테스트 방법론(1)PresentedViewController(1)EUC-KR(1)System Test(1)blur(1)Transport Layer Security(1)Module(1)crash(1)equalCentering(1)addObserver(1)dependency manager(1)UIRequiredDeviceCapabilities(1)operation queue(1)Segue(1)MVC(1)Alpha Test(1)vector(1)Convenience initializer(1)AppDelegate(1)associatedtype(1)float(1)sodll(1)fill(1)Timer Tolerance(1)NSLock(1)Auto Layout(1)ad hoc(1)debounce(1)Deep Link(1)URLSessionConfiguration(1)dynamic linker(1)spacing(1)high order function(1)Block Operation(1)Designated initializer(1)Right-BICEP(1)Beta Test(1)project.xcworkspace(1)draw(1)AutoLayout(1)shell script(1)Sync(1)Blocking(1)python(1)non blocking(1)for ~ in(1)Objective-C(1)Threads(1)Fatal Error(1)URN(1)URLSessionWebSocketTask(1)async(1)parameter(1)Operation Life Cycle(1)not working(1)while(1)nil(1)Dynamic Link(One Link)(1)network(1)branch(1)presentingViewController(1)rawValue(1)Diffable DataSource(1)setNeedsUpdateConstraints(1)safe(1)Higher-order Function(1)Repeating Timer(1)R Tree(1)inout(1)Datum(1)dev-environment(1)dictionary(1)Double(1)Target/Action(1)abstraction(1)modalPresentationStyle(1)responder chain(1)socket(1)optional chaining(1)Bundle Structure(1)layout(1)polygon(1)Property Injection(1)URLSessionUploadTask(1)StackView(1)unicode(1)query(1)compress resistance property(1)App Transport Security(1)Generic(1)Custom Transition(1)action(1)deploy(1)의존성역전원칙(1)리스코프치환원칙(1)Feature Envy(1)modulemap(1)Rule of Delegation(1)값타입(1)control-flow(1)error(1)any(1)switch(1)protocol(1)Mach-O(1)Universal Binary(1)URLSession(1)implicitly unwrapped optional(1)UIVibrancyEffect(1)Productibility(1)Property Wrappers(1)64bit(1)Hugging priority(1)ocp(1)ViewController Life Cycle(1)Materials(1)expression(1)fillProportionally(1)Monterey(1)제어문(1)filter(1)DispatchWorkItem(1)Nil-coalescing Operator(1)RxRelay(1)에러처리(1)QUADTREE(1)Sub directory(1)debugging(1)Deadlock(1)foreach(1)Carthage(1)cocontents.xcworkspacedata(1)UITouch(1)build(1)Manual Reference Counting(1)UIApplication(1)optional unwrapping(1)Collection(1)Update Cycle(1)base64(1)String(1)strip()(1)Custom Operation(1)Intrinsic Content Size(1)Static Function(1)Cohesion(1)Service Locator Pattern(1)clang(1)homebrew(1)Module Stability(1)app slicing(1)memory optimization(1)URLSessionDownloadTask(1)dependency injection(1)concurrent queue(1)Simple(1)architecture(1)userInterfaceLevel(1)DCT(1)UINavigationController(1)URLSessionTask(1)Little Endian(1)delay(1)cd(1)ATS(1)함수(1)응답체인(1)navigation(1)userInterfaceIdiom(1)Publisher/Subscriber Pattern(1)internal(1)Initialization Injection(1)test double(1)reduce(into::)(1)encoding(1)Vibrancy(1)setNeedsLayout(1)Streaming API(1)app life cycle(1)update(1)capture list(1)background(1)inherence(1)GC(1)class property(1)LSP(1)sugar API(1)viewDidLayoutSubviews(1)constant(1)updateConstraintsIfNeeded(1)Design Pattern(1)extension(1)UIPresentationController(1)pure function(1)Swift Package Manager(1)Binary Compatibility(1)Dispatch Precondition(1)overflow(1)Ad-Hoc Deployment(1)Pub/Sub Pattern(1)Main RunLoop(1)percent encoding(1)경쟁상태(1)DSO(1).a(1)xcshareddata(1)Mobile Deep Link(1)NAMING(1)Pop(1)error handling(1)Universal App(1)segueway(1)Liskov Subsitution Principle(1)XCFramework(1)binding(1)spaghetti code(1)@rpath(1)Commuication(1)dismiss(1)UnfoldSequence(1)estimatedRowHeight(1)GCD(1)equalSpacing(1)LLVM(1)dsyms(1)UIViewController(1)Method Injection(1)@autoclosure(1)fileprivate(1)cell resizing(1)monitoring(1)webhook(1)의존성 관리도구(1)mock(1)do-catch(1)Shortcuts(1)spacial index(1)http method(1)notification(1)userInterfaceStyle(1)array(1)개방폐쇄원칙(1)CollectionView(1)setNeedsDisplay(1)Concurrenct Programming(1)type constraint(1)Result(1)tryMap(1)display(1)pull(1)initializer(1)교착상태(1)Hashable(1)Defer(1)optional binding(1)bounds(1)Serial Dispatch Queue(1)상속(1)fillEqually(1).xcuserdata(1)Down Sampling(1)lazy(1)Dependency Inversion Principle(1)Bad Code(1)Decryption(1)integer(1)class function(1)@escaping(1)cookie(1)JPG(1)computed property(1)force unwrapping(1)static library(1)UITabBarController(1)code(1)stored property(1)life cycle(1)repeat-while(1)lldb(1)work flow(1)Deferred Deep Link(1)autoreleasepool(1)Byte Ordering(1)cancellable(1)currying(1)Implement Pattern(1)Expectation(1).xcodeproj(1)타입제약(1)UIResponder(1)Raster(1)NotificationCenter(1)Compress resistance prioirity(1)Parallelism(1)MS949(1)if(1)race condition(1)protocol oriented programming(1)override(1)alignment(1)open closed principle(1)참조타입(1)SDK(1)Subproject(1)static property(1)Main Bundle(1)grid(1)MVP(1)devops(1)hit test(1)access control(1)단일책임원칙(1)Instance Property(1)closure(1)private(1)utf 8(1)Deinitializer(1)switchToLatest(1)LazySequence(1)AppStore Deployment(1)tuple(1)capture(1)dynamic library(1)required initializer(1)URL encoding(1)projection(1)rowHeight(1)Operation Priority(1)testflight(1)On Demand Resources(1)UIBlurEffect(1)GIS(1)static(1)apply(1)didSet(1)unittest(1)Apple Certificate(1)git(1).swiftmodule(1)coupling(1)Dispatch Semaphore(1)Main Run Loop(1)test(1)instantiateViewController(1)Flexibility(1)Strong Reference Cycle(1)combineLastest(1)memory release(1)XCTestExpectation(1)observability(1)layoutIfNeeded(1)CPI(1)Single Respoinsibility Principle(1)Direct Deep Link(1)NSObject(1)argument(1)function(1)NSBundle(1)Either(1)Event(1)ci(1)Big Endian(1)Interface Sergregation Principle(1)project.pbxproj(1)CP949(1)png(1)fp(1)dispatch queue(1)CISC(1)DispatchSource(1)DispatchQueue(1)App Link(1)UIEvent(1)variable(1)assert(1)CPU Architecture(1)Fake(1)XCTest(1)
post-thumbnail

Diffable DataSource

TableView 리팩토링 하다가 레거시를 다르게 바꿀 수 있을까하면서 알아보았다. 근데 굉장히 좋다..?

약 5시간 전
·
0개의 댓글
post-thumbnail

static vs. class

enum에 static 변수를 사용해서 관리를 하다가 문득 이런 생각이 들었다. Type property에는 2가지 종류, `static`, `class`가 있는데 뭐가 다른거지? 이참에 헷갈렸던 용어까지 몽땅 정리해보려 한다.

5일 전
·
0개의 댓글
post-thumbnail

Meaningful Names

이름은 어디서든 쓰인다. 많이 사용하기 때문에 잘지으면 편하다. 몇 가지의 규칙을 알아보자.

6일 전
·
0개의 댓글
post-thumbnail

Clean Code

개발 교양서적을 읽어보기로 했다.

6일 전
·
0개의 댓글
post-thumbnail

Notification Center

Notification Center는 꽤나 오래전 부터 iOS의 이벤트 전송 매커니즘으로 자리잡았다. 어떤 요소들이 있는지 확인해보자.

2022년 5월 9일
·
0개의 댓글
post-thumbnail

URLSessionTask

이전 글에서 URLSession, URL, URLRequest 를 생성하는 방법을 알아보았다. 이번에는 어떤 Task들이 있는지 알아보자.

2022년 5월 4일
·
0개의 댓글
post-thumbnail

URL / URLRequest

URLSession을 만들었다면, 그 안에 들어갈 URL과 Request를 정의해야 한다. 이번에도 문서를 보며 알아보자.

2022년 5월 4일
·
0개의 댓글
post-thumbnail

URLSession

iOS App에서 서버와 통신하기 위해 Apple에서는 URLSession이라는 기본 API를 제공하고 있다. third-party library로 많이 사용하는 Alamofire, kingfisher 등의 기반이 되는 API로 서버 통신을 위해 필수적으로 알아야 한다

2022년 5월 4일
·
0개의 댓글
post-thumbnail

App Transport Security

예전에 네트워크 처리를 하면서 맞닥들였던 문제를 다시한번 적어본다. 그리고 그 개념까지 간단하게 정리해본다.

2022년 5월 3일
·
0개의 댓글
post-thumbnail

I/O APIs

무심코 사용하는 많은 비동기 함수들은 사실 변화의 과정을 겪은 결과들이다. 네트워크 I/O API가 어떻게 변화되어 왔는지 알아보자.

2022년 5월 2일
·
0개의 댓글
post-thumbnail

Request-Driven / Event-Driven

Combine framework를 공부하다, Request-Driven이라는 단어를 보게 되었다. Event-Driven 방식과 무엇이 다른지 알아보고자 한다.

2022년 5월 2일
·
0개의 댓글
post-thumbnail

Introducing Combine

Combine이 무엇일까? Apple이 설명하는 것을 들어보자.

2022년 5월 1일
·
0개의 댓글
post-thumbnail

22.04

22년 04월을 회고해본다.

2022년 5월 1일
·
0개의 댓글
post-thumbnail

Unwind Segue

code를 보다가 unwind segue라는 녀석을 보게 되었다. 처음 보는 친구라 정리해보려고 한다.

2022년 4월 28일
·
0개의 댓글
post-thumbnail

Fast-forward

작업 하는 와중에 develop branch를 origin에서 pull하려다가 Fast Forward if possible이라는 것을 보게되었다. 이건 무엇인가?

2022년 4월 27일
·
0개의 댓글
post-thumbnail

Target / Action

Target / Action은 사용자 interaction을 처리하는 주요 방법으로 알려져있다. 문서를 읽으며 알아보자.

2022년 4월 26일
·
0개의 댓글
post-thumbnail

KeyPath

이전 글들에서 Objective C의 KeyPath와 Swift에서의 KeyPath를 한번씩 보았다. 모양이 좀 달랐었는데 왜 다른지에 대해서 알아보자. 이번 글은 WWDC 17을 기준으로 한다.

2022년 4월 26일
·
0개의 댓글
post-thumbnail

KVC/KVO in Swift

지난 글에서는 Objective-C에서 KVC/KVO가 어떻게 쓰였는지 알아보았다. 이번에는 Swift다.

2022년 4월 26일
·
0개의 댓글
post-thumbnail

KVC/KVO in Objective-C

KVC/KVO 는 Apple Framework에서 중요한 부분을 담당한다. 한번 공부해보자.

2022년 4월 26일
·
0개의 댓글
post-thumbnail

Timer

이전 글에서 RunLoop에 대해 알아보았다. Timer도 같이 처리한다 했었는데, 궁금해져서 이 글을 쓰게 되었다.

2022년 4월 26일
·
0개의 댓글