develop(6)
-
Concept of React Scheduler
Overview 이전 포스팅에서 React Sync Mode(Concurrent Mode가 아닌 것, Legacy Mode)가 어떻게 동작하는지에 대해 Source Code Level에서 간략하게 살펴보았습니다. 이번 포스팅부터는 해당 내용을 기반으로 해서 Concurrent Mode가 어떻게 동작하는지에 대해서 한 단계씩 살펴보려고 합니다. Fiber, workInProgress Node, workLoopSync와 같은 용어들을 이해하고 있다는 전제로 전개되므로 이전 포스팅을 먼저 읽어보시는 것을 추천합니다. Concurrent Mode의 핵심은 Task를 수행하는 도중에 더 높은 우선순위를 지니고 있는 Task가 들어오면, 지금 처리 중인 Task를 "일시중단(Pause)"하고, 우선순위가 더 높은 ..
2023.01.14 -
Deep Residual Learning for Image Recognition (ResNet) - 2015
Abstract Neural Network(이하 NN)의 깊이가 깊어질수록 NN을 학습시키기가 어려워진다. NN의 깊이가 깊어질수록 조금 더 추상적인 Feature들을 학습시킬 수 있기 때문에 정확도가 향상될 것이라고 기대했지만, 아래의 그래프에서 볼 수 있듯, 깊이가 깊어질수록 나타나는 문제인 Vanishing / Exploading gradient등의 문제로 인해서 오히려 정확도가 낮아지는 모습을 보인다. 저자는 "Residual" Network는 최적화하기가 비교적 간단하며, 상당히 깊은 NN에서도 높은 정확도를 얻을 수 있다고 이야기한다. 실제로 ILSVRC 우승 모델들 중 ResNet을 사용한 모델부터 레이어의 개수가 22개에서 152개로 급격하게 증가한 것을 확인할 수 있다. Introduct..
2021.10.09 -
[Kubernetes in Action] Replication and Other Controllers
Kubernetes in Action 2nd Edition을 정리한 글입니다. Overview 이전 포스팅에서 쿠버네티스의 Basic Building Block인 파드에 대해서 자세하게 살펴보았습니다. 이번 포스팅에서는 파드를 생성하고 관리하는 쿠버네티스 매커니즘인 ReplicationController, ReplicaSet, DaemonSets에 대해서 살펴보려고 합니다. Keeping Pods Healthy 쿠버네티스의 장점 중 하나는 사용자가 제공하는 컨테이너들의 정보(어떤 컨테이너를 몇개씩 배포할 것인지)를 쿠버네티스에 제공하기만 하면 쿠버네티스가 이 정보대로 컨테이너들이 동작하도록 "보장"한다는 것입니다. 즉 사용자 입장에서는 파드를 생성한 후에 매뉴얼하게 이를 모니터링하고, 파드를 재시작하는 ..
2021.09.26 -
개발일지 (4 & 5월 회고)
Overview 4월 회고를 쓰려고 보니 5월이 다 지나가 버렸다. 별 수 없이 4~5월 회고를 쓰기 위해 키워드를 정리하는데 생각보다 이것저것 배운 게 많은 것 같아서 회고할 타이밍을 굉장히 잘 잡았다는 생각이 들었다. 초당 수만 ~ 수십만 건의 대용량 트래픽이 발생하는 애플리케이션의 최전선에서 여러 버저닝을 관리하고 예측하기 어려운 에러들을 핸들링하는 기회가 모든 개발자들에게 찾아오는 건 아닐 것 같은데, 이런 경험을 쌓아나간 것 같아서 감사한 마음이 들었다. FrontEnd Service With Million Traffics 900만명 가까운 사용자가 접속하는 웹 프로젝트를 맡아 개발하는 데에는 참 많은 책임이 따른다는 걸 배웠다. 이전에는 TF에서 맡은 컴포넌트만 몇 개 만든 다음에 QA 돌려보..
2021.05.31 -
개발일지 (1월 2주차 회고)
Overview 본격적으로 2021 1Q 업무를 수행하면서 개발하는 내용들이 구체적으로 정해지고, 그에 따라 공부해야 하는 내용들도 구체적으로 정해졌던 한 주였다. 지난주의 다짐에 따라 우선 주말에는 취미로 iOS 개발 공부를 시작했다. iOS개발을 하기 위한 여러 가지 방법 (Object C, Swift, React Native등) 들이 있지만 Stanford cs193p강의를 메인으로 삼았기 때문에 개발 내용은 Swift, SwiftUI로 진행하는 일이 대부분이었다. 좋은 학교에서 체계적으로 진행하는 수업이다보니 과제의 퀄리티도 굉장히 좋았고, 단순히 클론 코딩으로 가르치는 방식이 아닌 내부적으로 Swift라는 언어가 동작하는 방식까지 소개하는 수업이라 흥미가 있었다. 개인적으로는 OOP를 '지원'한..
2021.01.10 -
[React] Timer 만들기
Overview 웹 레이아웃을 짜다 보면 남은 시간을 표시하는 타이머를 표시해야 할 때가 종종 있습니다. 로그인 시 이메일 인증이나 SMS 인증을 할 때, 세션 만료까지 남은 시간을 표시해주어야 할 때도 있고, 브라우저에서 동작하는 간단한 게임을 만들 때 게임 종료 시까지 남은 시간을 표시해주어야 할 때도 있습니다. 자바스크립트에는 특정한 시간마다, 혹은 특정 시간이 지난 후에 callback함수를 호출할수 있는 setInterval, setTimout이라는 내장 함수를 제공하기 때문에, 이를 이용해서 타이머를 구현할 수 있습니다. 하지만, 싱글 스레드로 동작하는 자바스크립트의 특성상 setTimeout, setInterval이 항상 정확한 시간에 호출되지는 않기 때문에 브라우저에서 처리하는 일들이 많은..
2021.01.06