profile
목표와 계획, 그리고 실천의 힘을 믿습니다.
태그 목록
전체보기 (215)swift(40)Xcode(25)UIkit(23)CLEAN CODE(14)OOP(13)concurrency(12)Object Oriented Programming(12)design patterns(12)Estimating(11)agile(10)planning(10)review(9)Object Oriented Design(8)retrospection(8)Thread(7)Java(7)class(7)Map(6)async(6)frame(6)functional programming(6)interface(5)Design Pattern(5)Creational Patterns(5)Combine(5)inheritance(5)Structural Patterns(5)oo(5)framework(4)UITableView(4)Subscriber(4)coupling(4)snippets(4)appStore(4)bundle(4)MVVM(4)Grand Central Dispatch(4)publisher(4)protocol(4)kvo(4)KVC(4)GCD(4)rxswift(4)await(4)flatmap(4)Polymorphism(4)library(4)concurrent programming(3)Generic(3)layout(3)task(3)dll(3)Storyboard(3)struct(3)constant(3)serial queue(3)optional(3)index out of range(3)app thinning(3)non blocking(3)Blocking(3)Singleton(3)Unified Modeling Language(3)binary(3)transition(3)static(3)unit test(3)DIP(3)MVC(3)Performance(3)OperationQueue(3)Foundation(3)uml(3)RunLoop(3)dependency injection(3)expression(3)project(3)Parallelism(3)operator(3)@Target(3)operation(3)cpu(2)cancellable(2)TaskGroup(2)Notification Center(2)accessibility(2)executable(2)actor(2)override(2)open closed principle(2)serial(2)MVP(2)mutual exclusion(2)set(2)multi thread(2)UITraitCollection(2)animation(2)png(2)Implementation(2)DispatchQueue(2)ARM(2)concurrent(2)indices(2)final(2)Semaphore(2)VoiceOver(2)SRP(2)tableview(2)header(2)unowned(2)Space(2)merge(2)http(2)Enumeration(2)event driven(2)ISP(2)QoS(2)Functor(2)image(2)mac(2)intel(2)WHERE(2)Class Diagram(2)interface segregation principle(2)alfred(2)lock(2)layoutSubviews(2)url(2)async let(2)ARC(2)sequence diagram(2)blur(2)structured concurrency(2)crash(2)presentation(2)TDD(2)UIControl(2)associatedtype(2)trouble shooting(2)Dynamic Colors(2)dark-mode(2)Prototype(2)UIlabel(2)CocoaPods(2)event loop(2)AutoLayout(2)multiple inheritance(2)Fatal Error(2)composition(2)SOLID(2)safe(2)UIImage(2)executables(2)arm64(2)Reference Type(2)Scheme(2)armv7(2)switch(2)https(2)TLS(2)ocp(2)Key-Value Coding(2)Function Pointer(2)build configuration(2)reactive programming(2)build(2)weak(2)String(2)2단계 초기화(2)Cohesion(2)theme(2)Request-Driven(2)automation(2)architecture(2)key value observing(2)Dead Lock(2)subscript(2)timer(2)asset(2)Quality of Service(2)inherence(2)extension(2)reduce(2)Value Type(2)dependency(2)NAMING(2)logger(2)error handling(2)single responsibility principle(2)main thread(2)Monad(2)priority(2)KeyPath(2)continuation(2)CollectionView(2)bounds(2)Dependency Inversion Principle(2)Two-phase initialization(2)JPG(2)Automatic Reference Counting(2)Builder(2)public(1)object oriented(1)static variable(1)Nonrepeating Timer(1)Expander Control(1)shadow(1)UIGraphicsImageRenderer(1)NSParagraphStyle(1)dismiss(1)URI(1)tuple(1)IoC(1)UnfoldSequence(1)DispatchGroup(1)anyObject(1)POST(1)Type Property(1)32bit(1)Enterprise Deployment(1).xcodeproj(1)Subject(1)estimatedRowHeight(1)AsyncStream(1)Property Observers(1)AppStore Deployment(1)Thread Explosion(1)Spring(1)workflow(1)Regular(1)INSERT(1)LazySequence(1)static linker(1)financial(1)SPM(1)URLSessionStreamTask(1)XCTestCase(1)UIVisualEffectView(1)inspector(1)Virtual method(1)sendable(1)Ideal Time(1)corner(1)Expectation(1)dsym(1)equalSpacing(1)Dispatch Barrier(1)Context Switching(1)bitcode(1)LLVM(1)인터페이스분리원칙(1)Folder reference(1)SYSTEM(1)MultiTasking(1)stack(1)switchToLatest(1)scrum(1)deployment(1).app(1)encryption(1)garbage collector(1)compactMapValue(1)Linker(1)Test Driven Development(1)ANSI(1)UIGraphicsRendeerContext(1)process(1)dsyms(1)Run Loop(1)URLSessionDataTask(1)@rpath(1)Deinitializer(1)Proxy(1)boundary(1)iteration(1)Fat binary(1)UIViewController(1)type alias(1)willSet(1)Method Injection(1)URLRequest(1)heap(1)zeplin(1)URLComponent(1)PRESENT(1)Custom Reorder(1)Build Active Architectures Only(1)opacity(1)Binary Framework(1)Emergence(1)actor hopping(1)@autoclosure(1)fileprivate(1)Universal Link(1)cell resizing(1)snapshot(1)Detached Task(1)First-class Function(1)trim()(1)Provisioning profile(1)axis(1)Presentation Context(1)ABI Stability(1)Cache(1)접근제어(1)utf 8(1)kd-tree(1)Anomymous Function(1)MRC(1)iterator(1)hugging property(1)Frame-based Layout(1)EPSG(1)10-200 Rule(1)indexPath(1)Code Smell(1)monitoring(1)RxCocoa(1)compactMap(1)ASCII(1)x86_64(1)webhook(1)Index(1)autoreleasepool(1)Creational Pattern(1)UIScreen(1)try(1)Constraint(1)security(1)의존성 관리도구(1)url scheme(1)Size class(1)coordinate(1)Adapter(1)Deferred Deep Link(1)mock(1)테스트 방법론(1)PresentedViewController(1)do-catch(1)EUC-KR(1)System Test(1)Markdown(1)InsetBy(1)Transport Layer Security(1)Shortcuts(1)Module(1)spacial index(1)Implement Pattern(1)equalCentering(1)addObserver(1)http method(1)truncatedTail(1)dependency manager(1)UIRequiredDeviceCapabilities(1)operation queue(1)notification(1)Segue(1)private(1)Alpha Test(1)vector(1)Convenience initializer(1)AppDelegate(1)shallow copy(1)float(1)sodll(1)resolution(1)fill(1)early binding(1)Timer Tolerance(1)userInterfaceStyle(1)NSLock(1)Auto Layout(1)ad hoc(1)Actor isolation(1)CALayer(1)Bound Resources(1)debounce(1)Deep Link(1)URLSessionConfiguration(1)array(1)NSAttributedString(1)dynamic linker(1)maintenance(1)개방폐쇄원칙(1)spacing(1)high order function(1)Completion(1)closure(1)code(1)retina(1)Block Operation(1)deep copy(1)Designated initializer(1)Right-BICEP(1)setNeedsDisplay(1)Beta Test(1)Concurrenct Programming(1)project.xcworkspace(1)data structure(1)StoryPoint(1)draw(1)type constraint(1)shell script(1)POJO(1)Factory Method(1)Instance Property(1)Sync(1)단일책임원칙(1)decorator(1)python(1)access control(1)abstract class(1)for ~ in(1)Result(1)Objective-C(1)Threads(1)modeling(1)Live lock(1)hit test(1)URN(1)reentrancy(1)Spread(1)inset(1)URLSessionWebSocketTask(1)cornerradius(1)protobuf(1)parameter(1)Thread.sleep()(1)Operation Life Cycle(1)not working(1)devops(1)Multi Instances(1)while(1)nil(1)tryMap(1)Dynamic Link(One Link)(1)network(1)branch(1)presentingViewController(1)rawValue(1)Data Transfer Object(1)XML(1)Diffable DataSource(1)setNeedsUpdateConstraints(1)display(1)trimming(1)Delegation(1)data race(1)Higher-order Function(1)Repeating Timer(1)grid(1)R Tree(1)UIView(1)print(1)inout(1)procedure(1)Datum(1)dev-environment(1)Background Thread(1)dictionary(1)Double(1)UI(1)Target/Action(1)abstraction(1)pull(1)initializer(1)modalPresentationStyle(1)Nine patch(1)responder chain(1)socket(1)optional chaining(1)method(1)alwaysTemplate(1)Bundle Structure(1)Main Bundle(1)EQUAL(1)polygon(1)Property Injection(1)Out Of Index(1)URLSessionUploadTask(1)교착상태(1)typeof(1)StackView(1)user story(1)unicode(1)query(1)compress resistance property(1)App Transport Security(1)reorder(1)Custom Transition(1)action(1)static property(1)deploy(1)Hashable(1)Defer(1)의존성역전원칙(1)UIRectCorner(1)리스코프치환원칙(1)Feature Envy(1)modulemap(1)Rule of Delegation(1)Subproject(1)값타입(1)control-flow(1)error(1)csv(1)test code(1)starvation(1)any(1)currying(1)Elapsed Time(1)optional binding(1)stored property(1)ScrollToItem(1)json(1)SDK(1)참조타입(1)NSTextAttachment(1)scroll(1)Mach-O(1)let(1)var(1)nested class(1)Universal Binary(1)URLSession(1)typealias(1)NSLog(1)implicitly unwrapped optional(1)Thread Safety(1)UIVibrancyEffect(1)format(1)Productibility(1)Property Wrappers(1)64bit(1)Hugging priority(1)facade(1)Serial Dispatch Queue(1)ViewController Life Cycle(1)Materials(1)alignment(1)tintColor(1)fillProportionally(1)Serialization(1)상속(1)Monterey(1)Producer/Consumer Problem(1)product(1)fillEqually(1)제어문(1)filter(1)DispatchWorkItem(1)Nil-coalescing Operator(1)RxRelay(1)에러처리(1)QUADTREE(1).xcuserdata(1)AsyncSequence(1)Sub directory(1)protocol oriented programming(1)debugging(1)race condition(1)Deadlock(1)synchronization(1)application(1)foreach(1)Carthage(1)hash(1)cocontents.xcworkspacedata(1)Core Graphics(1)waterfall(1)RIBs(1)if(1)late binding(1)Image Stretching(1)UITouch(1)MS949(1)completion Handler(1)Down Sampling(1)Manual Reference Counting(1)UIApplication(1)optional unwrapping(1)Collection(1)Byte Ordering(1)Update Cycle(1)base64(1)lazy(1)strip()(1)yield(1)main actor(1)Custom Operation(1)Intrinsic Content Size(1)Static Function(1)Bad Code(1)Service Locator Pattern(1)subclassing(1)clang(1)life cycle(1)maskedcorners(1)homebrew(1)Task Tree(1)Module Stability(1)Create File(1)app slicing(1)memory optimization(1)URLSessionDownloadTask(1)CGRect(1)di(1)concurrent queue(1)Decryption(1)Simple(1)Adapter Pattern(1)toggle(1)userInterfaceLevel(1)Group(1)DCT(1)UINavigationController(1)URLSessionTask(1)Little Endian(1)integer(1)class function(1)themes(1)Planning Poker(1)delay(1)cd(1)ATS(1)함수(1)응답체인(1)metatype(1)navigation(1)userInterfaceIdiom(1)Publisher/Subscriber Pattern(1)@escaping(1)persistence(1)Checklist(1)internal(1)Initialization Injection(1)test double(1)Compress resistance prioirity(1)reduce(into::)(1)Abstract Factory(1)encoding(1)comments(1)Vibrancy(1)Enum(1)NotificationCenter(1)Type Constraints(1)cookie(1)setNeedsLayout(1)newline(1)Streaming API(1)Atomicity(1)app life cycle(1)update(1)capture list(1)background(1)actor reentrancy(1)GC(1)class property(1)LSP(1)sugar API(1)Edge case(1)Tint color(1)button(1)viewDidLayoutSubviews(1)Raster(1)updateConstraintsIfNeeded(1)actor prioritization(1)cooperative thread pool(1)repeat-while(1)UIResponder(1)UIPresentationController(1)pure function(1)Swift Package Manager(1)Binary Compatibility(1)Dispatch Precondition(1)Bridge(1)overflow(1)border(1)Ad-Hoc Deployment(1)Pub/Sub Pattern(1)Retropection(1)타입제약(1)Main RunLoop(1)percent encoding(1)경쟁상태(1)static method(1)LINE(1)DSO(1)computed property(1).a(1)xcshareddata(1)Mobile Deep Link(1)CACornerMask(1)force unwrapping(1)type(1)lldb(1)log(1)Pop(1)static library(1)block(1)CGContext(1)Universal App(1)functions(1)DTO(1)projection(1)rowHeight(1)Operation Priority(1)testflight(1)On Demand Resources(1)UIBlurEffect(1)Task.sleep(1)GIS(1)mistake(1)Masking(1)apply(1)didSet(1)unittest(1)Apple Certificate(1)git(1)Ideal Days(1).swiftmodule(1)deserialization(1)URL encoding(1)Dispatch Semaphore(1)AsyncThrowingStream(1)Main Run Loop(1)test(1)instantiateViewController(1)Flexibility(1)Composite(1)Strong Reference Cycle(1)combineLastest(1)onTermination(1)AnyCancellable(1)memory release(1)XCTestExpectation(1)segueway(1)thread-safe(1)observability(1)layoutIfNeeded(1)CPI(1)showhide(1)GOF(1)release(1)Direct Deep Link(1)NSObject(1)argument(1)function(1)Overload(1)NSBundle(1)Either(1)Event(1)ci(1)Big Endian(1)project.pbxproj(1)CP949(1)Liskov Subsitution Principle(1)customer(1)UIGraphicsImageRenderContext(1)fp(1)dispatch queue(1)CISC(1)XCFramework(1)object(1)DispatchSource(1)UITabBarController(1)App Link(1)UIEvent(1)binding(1)variable(1)assert(1)CPU Architecture(1)Fake(1)refactoring(1)XCTest(1)required initializer(1)Lazy Evaulation(1)Work Process(1).swiftmoduleinterface(1)Inversion Of Control(1)Story Points(1)stub(1)dynamic library(1)capture(1)numberOfLines(1)RenderingMode(1)partial application(1)package(1)RISC(1)Workspace(1)archive(1)spaghetti code(1)compiler(1)invalidateIntrinsicContenstSize(1)figma(1)HeaderView(1)function composition(1)work flow(1)Foreground(1)updateContraints(1)fast-forward(1)integration test(1)distribution(1)compact(1)separator(1)Commuication(1)VIPER(1)scale(1)open(1)
post-thumbnail

UIScreen.scale

Shadow를 보다가 scale에 대해서 알게된 내용을 적어본다.

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

CALayer Shadow

업무 하면서 Shadow에 대해 알게된 내용을 정리한다.

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

22.11

22년 11월을 회고해본다.

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

Trimming String

특정 문자열이나 공백을 제거하려면 어떻게 해야할까?

2022년 11월 17일
·
0개의 댓글
·
post-thumbnail

Interface vs. Implementation

인터페이스를 사용해야 하는가? 그냥 실질적인 내용이 담긴 구현체를 사용해야 하는가?

2022년 11월 17일
·
0개의 댓글
·
post-thumbnail

UI Check List

실수가 2번이상 반복되면 실력이다. UI 개발시 한방에 끝나기 위한 Edge case를 정리하자. 수시로 업데이트 한다.

2022년 11월 16일
·
0개의 댓글
·
post-thumbnail

UILabel numberOfLines

UILabel에 들어간 text를 모두 표현하고 싶다면 어떻게 해야할까? 쉬워보이지만 의외로 삽질을 하는 부분이다. 간단하게 알아보자.

2022년 11월 16일
·
0개의 댓글
·
post-thumbnail

UITableView Header Layout

headerView가 있는 TableView에서 높이는 제대로 맞는데, 이상하게 셀수가 많아질 상황에서 끝까지 스크롤되지 않는 문제가 발생했다.

2022년 11월 16일
·
0개의 댓글
·
post-thumbnail

UITableView Separator

UITableView의 Separator와 관련해 해결했던 것들을 적어둔다.

2022년 11월 16일
·
0개의 댓글
·
post-thumbnail

Out Of Index In Main Async

TableView dataSource에서 아이템을 가져오다 outOfIndex가 나서 crash가 났다. 이로부터 배운 점에 대해 적어본다.

2022년 11월 15일
·
0개의 댓글
·
post-thumbnail

Completion In Main Thread

Completion은 main에서 호출해주는 것이 좋다.

2022년 11월 15일
·
0개의 댓글
·
post-thumbnail

UITableView Custom Reorder Button

테이블 뷰의 reorder 버튼을 변경해야 하는데, API가 없어 고생했던 경험을 공유한다.

2022년 11월 15일
·
0개의 댓글
·
post-thumbnail

print vs NSLog

print와 NSLog는 어떤 차이점이 있을까?

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

Why We Should Use Logger

특정 값을 찍을 때 print를 찍기 일수다. 쉬우니까. 하지만 이 습관은 좋지 않다. 왜 인지 알아보자.

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

Open Multiple Application Instances

iOS 개발자로서 제플린이나 피그마 창을 하나만 띄워서 보는건 너무 귀찮다. 여러개 띄울수는 없을까?

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

Dependency & Coupling

인터페이스를 사용해야 하는가? 그냥 실질적인 내용이 담긴 구현체를 사용해야 하는가?

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

Interface

인터페이스는 왜 필요할까? 그리고 무엇일까?

2022년 11월 8일
·
0개의 댓글
·
post-thumbnail

22.10

22년 10월을 회고해본다.

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

Polymorphism Part. 02

Early Binding과 Late Binding은 성능에서 어떤 차이가 나는가? 실제로는 어떻게 사용하는가? 알게 모르게 당연하게 사용하고 있는 다형적 메서드는 무엇이 있을까?

2022년 10월 3일
·
0개의 댓글
·