frontend(89)
-
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 -
React Mount System Deep Dive (Sync Mode)
Overview 이전 글들 (Conceptual Model of React Suspense, Algebraic Effects of React Suspense, Suspense SSR Architecture in React 18)에 이어 Suspense의 동작 원리에 대해 Source Code Level에서 다루는 포스팅을 준비하고 있었습니다. 하지만 막상 Code Level에서 이를 분석하려고 하니 너무나 방대한 React의 개념들과 용어들(Fiber, Scheduler, Task, Lane, performUnitOfWork, Double Buffering)을 능숙하게 이해하고 있음을 전제하여야 했고, 이 모든 내용을 하나의 포스팅에 담기는 어려울 것 같다는 결론을 내렸습니다. 따라서 React18에서 ..
2023.01.08 -
개발일지 (11월 & 12월 회고)
After Class 중간고사 / 기말고사가 끝나고, 이렇게 복무 만료 이후의 첫 학기가 잘 마무리되었다. 아직 성적은 나오지 않았지만, 던진 과목은 없어서 계속해서 장학금을 받지 않을까 생각이 된다. 굉장히 고된 3달 반여를 보낸 것 같지만, 남은 두 학기도 우선은 계속 이렇게 진행할 수 있을 것 같다. 학기 내내 들었던 생각은 나의 "앎"에 대한 기준, 그러니까 무언가를 "이해했다"라고 생각하는 기준이 동기들에 비해 그렇게 높지 않다는 것이었다. 어쩌면 이 사실을 깊게 깨달은 것이 이번학기의 가장 큰 소득일 수도 있겠다. 생각해보면 늘 내가 생각하는 무언가를 "이해했다"고 생각하는 기준은 완벽에 가깝진 않았던 것 같다. 전반적으로 꼼꼼함이 부족하다고 해야 하나, 동시에 많은 일들을 하는 것을 즐기지만..
2022.12.18 -
[Essay] After Like
. 특정 시점 이후로 시장은 어느 정도의 소강상태를 보이는 듯하다. 110을 넘어서 120을 바라보던 달러 인덱스도 고점을 찍고 105 수준으로 내려왔고, 3600선에서 움직이고 여러 전문가들이 연말에 3400선까지 내려갈 것으로 예측했던 S&P 지수는 다시 4000을 회복하고 그 선에서 움직이고 있다. 이것이 산타 랠리 일지, 베어마켓 랠리 일지는 확실하지 않지만 이러나저러나 지금의 국면을 일종의 휴전 상태로 해석하는 것이 큰 무리는 아닌 것 같다. CPI를 통해 확인한 미국의 인플레이션도 9.1%에서 7.7%로 내려오면서 정점을 찍었다는 사실이 확인되었고 여러 상황들이 "그래도 괜찮은데?"로 해석될 여지들이 있지만, 조금 생각해봤을 때 지수에 비해 상황이 그렇게 긍정적으로 보이지는 않는다. . 11월..
2022.11.27 -
Node.js + Puppeteer Memory Leak Handling
Overview 콴다 팀에서는 수학 문제를 이미지가 아닌 Latex String의 형태로 저장합니다. 용량 측면에서도 그렇지만, 문제의 "유사도"를 측정하거나, 문제의 컨텐츠를 기반으로 사용자에게 알맞은 문제를 추천하는 데에 있어서는 이미지보다 스트링의 형태가 더 효율적이기 때문입니다. 하지만 결국 이 컨텐츠를 사용하는 학생들의 입장에서는 이 스트링이 올바르게 렌더 된 수식이 필요하기 때문에 이를 렌더 해주는 작업이 필요합니다. 이 수식을 라이브러리를 사용해서 user-side에서 사용자의 화면에 그대로 그려주는 방법도 있겠지만, 이는 클라이언트 사이드의 많은 리소스를 소모하게 됩니다. 게다가 웹뷰가 아닌 Native 환경에서는 수식을 렌더 하기 위해 엄청난 양의 폰트를 로드해야 하는데, 이는 결국 애플..
2022.11.20 -
개발일지 (9월 회고)
전역과 복학 오지 않을 것만 같았던 34개월간의 산업기능요원 복무가 마무리되고 22년 9월 14일 자로 복무만료가 되었다. 병무청에서 별다른 안내를 해주지 않아서 만료된 거 맞나? 싶었지만, 병무청 앱을 들어가 보니 "예비군"이라고 표시되어 있었고 그제야 조금 실감이 났던 것 같다. 34개월의 복무를 마치고 나니 어느덧 4년 차 프론트엔드 개발자가 되어 있는 내 모습을 다시 한번 돌아보게 되었는데, 소개원실 프로젝트에서 가위바위보를 져서 프론트엔드를 선택했고, 결국 이 프로젝트를 이력서에 적어 첫 회사에 취직하게 된 기억을 되살려보다가 문득 인생에서 중요하게 보이는 선택들이 때로는 정말 별거 아닌 이유들로 인해 이루어지는 경우가 많은 것 같다는 생각이 들었다. 처음에는 복무가 마무리되는대로 지금 회사에서..
2022.10.03