본문 바로가기

전체 글55

DIP의 본질? (Testable한 객체를 위한 여정 중..) 정말 오랜만에 다시 아티클을 쓰네요. 최근에는 여러 기업 코딩테스트도 있었고, 알고리즘 공부, 리팩토링 당장 해야할 것들로 벅차서 계속 미뤄지고 있었네여 다시 열심히 시간을 내서 써보겠습니다..! Combine에 대해서 공부하면서 깨달았던 점들도 정리할게 아직 산더미지만 그래도 기록해두고 싶은 주제가 있어서 조금은 쉽게 글이 써지는 주제라 이 글을 먼저 작성합니다. Testable한 객체란 뭘까 최근 MVC프로젝트를 MVVM-C으로 리팩토링을 진행하면서 "Testable한 객체"를 중점으로 설계를 개선해나가고 있습니다. 제 블로그에서 관련 주제가 나올 때마다 언급했지만 Testable한 객체에 대해서 한번 짚고 넘어가겠습니다. 제가 생각했을 때 Unit test의 목적, 본질은 ‘특정 Input이 들어왔.. 2023. 11. 27.
[Combine] Map Operator 로직 딥다이브 (ft. OpenCombine) Combine, Functional Reactive Programming의 꽃이라고도 할 수 있는 Operator의 로직이 궁금해져 이를 딥다이브해보고자 합니다. Operator의 종류가 너무 많고 모든 Operator의 동작이 다 달라서 모든 것을 다룰 수는 없고 대표적으로 Map Operator를 가지고 Operator의 동작을 엿보고자 합니다. Operator에도 결국 중요한 것은 upstream, downstream그리고 Operator를 거쳐서 바뀌는 value들이겠죠. 한번 집중해서 어떤 흐름으로 굴러가는지 살펴봅시다. 이번에도 OpenCombine을 통해서 알아보겠습니다. https://github.com/OpenCombine/OpenCombine GitHub - OpenCombine/Ope.. 2023. 11. 7.
[OS] Scheduling: Introduction (Scheduling Policy들 정리) Scheduling운영체제 같은 시스템 소프트웨어는 mechanism과 policy라는 말을 사용합니다. 지금까지 Context Switching과 같은 mechanism, 즉 low-level의 기계에서 수행되는 방법에 대해 공부했는데, 어떤 근거, 판단 기준을 가지고 OS가 Context Switching을 하는지, 그 정책(policy)에 대한 것은 아직 다루지 않았습니다. 오늘 주제는 OS의 Scheduler가 수행하는 의사결정, 즉 알고리즘이라고 할 수 있는 정책에 대해서 알아봅시다 ! 근데 여러분 그거 아셨나요 ? 사실 스케줄링이라고 하는 것은 컴퓨터에서 처음 나온 개념은 아닙니다. 컴퓨터가 나오기 훨씬 이전부터 운영 관리 분야에서부터 존재해왔던 개념입니다. 사실 이 모든것은 일을 더 효율적으.. 2023. 11. 6.
[Combine] Publisher와 Subscriber간 연결 과정 딥다이브 (ft. OpenCombine) 현재 MVC로 되어있는 프로젝트를 MVVM으로 리팩토링하기에 앞서 Combine을 공부하고 있습니다. Combine은 인터페이스 쪽만 모두 public이고 내부 구현은 알 수가 없어서 공부에 좀 어려움이 있었는데, 팀원 덕분에 이 어려움을 해소시킬 수 있는 오픈소스를 찾게 되었습니다. GitHub - OpenCombine/OpenCombine: Open source implementation of Apple's Combine framework for processing values over time. GitHub - OpenCombine/OpenCombine: Open source implementation of Apple's Combine framework for processing values ove.. 2023. 11. 3.