-
Suspense Deep Dive (Code Implementation)
Overview 이전 포스팅 Conceptual Model of React Suspense과, Algebraic Effects of React Suspense에서 React가 Suspense를 어떤 관점으로 바라보고 있는지, 그리고 어떤 개념적 모델을 바탕으로 구성되어 있는지를 살펴보았습니다. 이번 포스팅에서는 이러한 내용들을 바탕으로 Suspense가 실제로 React 소스 코드 레벨에서 어떻게 구현되어 있고, 구체적으로 어떤 과정을 거쳐 동작하게 되는지를 간략하게 살펴보도록 하겠습니다. (소스 코드는 글을 작성하는 시점의 최신 코드를 기반으로 하지만, React 프로젝트는 코드가 굉장히 자주 바뀌는 편이기 때문에 변경사항이 생길 수 있습니다.) Recap Example Code 이전 포스팅에서 언급한..
-
How @next/font Works
Overview @next/font includes built-in automatic self-hosting for any font file. This means you can optimally load web fonts with zero layout shift, thanks to the underlying CSS size-adjust property used. This new font system also allows you to conveniently use all Google Fonts with performance and privacy in mind. CSS and font files are downloaded at build time and self-hosted with the rest of y..
-
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)"하고, 우선순위가 더 높은 ..
-
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에서 ..
-
Node.js + Puppeteer Memory Leak Handling
Overview 콴다 팀에서는 수학 문제를 이미지가 아닌 Latex String의 형태로 저장합니다. 용량 측면에서도 그렇지만, 문제의 "유사도"를 측정하거나, 문제의 컨텐츠를 기반으로 사용자에게 알맞은 문제를 추천하는 데에 있어서는 이미지보다 스트링의 형태가 더 효율적이기 때문입니다. 하지만 결국 이 컨텐츠를 사용하는 학생들의 입장에서는 이 스트링이 올바르게 렌더 된 수식이 필요하기 때문에 이를 렌더 해주는 작업이 필요합니다. 이 수식을 라이브러리를 사용해서 user-side에서 사용자의 화면에 그대로 그려주는 방법도 있겠지만, 이는 클라이언트 사이드의 많은 리소스를 소모하게 됩니다. 게다가 웹뷰가 아닌 Native 환경에서는 수식을 렌더 하기 위해 엄청난 양의 폰트를 로드해야 하는데, 이는 결국 애플..
Economic Essays
-
더 이상의 인상은 없을 것이다 (3월 FOMC Review)Economics 2023.03.25 21:30
Turning to the broader economy and monetary policy, inflation remains too high, and the labor market continues to be very tight. My colleagues and I understand the hardship that high inflation is causing, and we remain strongly committed to bringing inflation back down to our 2 percent goal. 이전 FOMC에서 사용했던 "disinflation"이라는 단어가 빠지고 "inflation remains too high"라는 코멘트가 그 자리를 대신했다. 즉, 9.1%에서 6.5% 까..
-
파월에게서 리즈 트러스가 보인다Economics 2023.03.10 08:33
. 파월이 한국시간 기준 3월 7일 수요일 새벽 "Semiannual Monetary Policy Report to the Congress"에서 꽤나 의아한 코멘트를 던졌다. 주요 코멘트들은 다음과 같다. . We continue to anticipate that ongoing increases in the target range for the federal funds rate will be appropriate in order to attain a stance of monetary policy that is sufficiently restrictive to return inflation to 2 percent over time As I mentioned, the latest economic data h..
-
장단기 금리차를 바라보는 시각Economics 2023.03.05 21:08
. 23년 2월 28일 기준으로 미국 장단기 금리차는 0.89%의 높은 갭으로 역전되어 있지만, "장단기 금리의 역전"을 경기 침체의 전조로 해석해 유명세를 얻었던 캠벨 하비 듀크대 교수가, 최근 채권 시장에서의 장단기 금리 역전이 경기 침체에 대한 "거짓 신호"일 가능성을 제기했다. 이를 이해하기 위해서는 먼저 왜 장단기 금리의 역전이 경기 침체의 전조로 해석되어 왔는가에 대해 살펴볼 필요가 있다. . 일반적으로 장기 국채의 수익률은 단기 국채의 수익률보다 높은데, 국채라는 것이 본질적으로는 발행 대상(미국 국채의 경우 미국 재무부)이 시장(혹은 중앙은행)에 자금을 빌리는 행위이고, 자금을 빌리는 기간이 길어질수록 상환에 대한 불확실성이 커지기 때문에 빌려준 자금에 대한 높은 금리를 요구받게 된다. 하..
-
전쟁을 통해 이득을 보는 자는 누구인가Economics 2023.02.11 18:45
. 당초 3~4일 내로 끝날 것으로 생각했던 러시아-우크라이나 간 전쟁이 생각보다 길어지고 있다. 두 국가의 경제 규모나 군사력 규모로 보았을 때, 러시아가 모든 면에서 우세한 것으로 보였지만 지금의 상황은 결코 러시아에게 유리하게 흘러가고 있지 않으며 오히려 지금은 이 상황을 통해 이득을 보는 쪽에서 전쟁을 의도적으로 질질 끌고 있는 것 같은 느낌마저 든다. 물론 이 느낌은 지극히 주관적인 것이지만, 이번 에세이에서 이 느낌에 대한 나름의 근거들을 제시해보고자 한다. . 실질적으로 여겨지는 이번 전쟁의 원인은 우크라이나의 나토가입이다. 나토라는 조약기구 자체가 서유럽에서 러시아를 견제하기 위해 결성된 "군사조직"이며, 결성 이래로 지금까지 나토는 여러 서유럽 / 동유럽 국가들을 모으며 지속적으로 동진해..
-
모든게 괜찮아 보이는데 굳이? (2월 FOMC Review)Economics 2023.02.06 22:19
Today, the FOMC raised our policy interest rate by 25 basis points. We continue to anticipate that ongoing increases will be appropriate in order to attain a stance of monetary policy that is sufficiently restrictive to return inflation to 2 percent over time. . 2월 FOMC에서 연준은 0.25% 금리 인상을 발표했고, 기자회견에서 제롬 파월 연준 의장이 "disinflation"이라는 용어를 처음으로 사용하면서, 사실상 인플레이션이 꺾여 내려오고 있음을 인정했다. 이번 회의 결과에 따라 미국의 기준..
Philosophy
-
공평한 교육과 양극화의 모순Philosophy & Thinking 2023.01.30 20:30
The reason I acquired Twitter is because it is important to the future of civilization to have a common digital town square, where a wide range of beliefs can be debated in a healthy manner, withoug resorting to violence. There is currently greate danger that social media will splinter into far right wing and far left wing echo chambers that generate more hate and divide our society. - Elon musk..
-
이데아 기반의 사고와 현상 기반의 사고Philosophy & Thinking 2023.01.22 06:59
that logic excludes _by definition_ nuances, and since truth resides exclusively in the nuances, it is "a useless instrument for finding Truth in the moral and political sciences." . 모든 사물과 현상에는 원인과 본질이 있으며, 이를 "이데아"라고 정의한 플라톤의 이데아 사상으로부터 시작된 서양의 형이상학은 의심에 의심을 거듭해 불변의 진리를 찾고, 이를 통해 항상 참인 명제들을 탐구하는 방식으로 발전해 왔다. (당연히 모든 서양 철학이 이러한 것은 아니지만 적어도 데카르트 때까지는 그런 것처럼 보인다.) 생각해 보면 서양 철학의 역사는 곧 논리학의 역사이다. 감..
Developer History
-
개발일지 (2월 회고)Developer History 2023.03.01 09:39
Business 비즈니스 목표를 달성하고 비선형적인 "J커브형 성장"을 이루어내려면 안티프래질에서 이야기하는 "하방 압력은 작으면서 상방 압력은 비선형적으로 큰" 시도들이 자주 일어나야 한다고 생각했다. 다들 바쁜 상황에서 누군가를 말로 설득하는 것만으로는 실제 구체적인 행동으로 이어지기 어렵다는 것을 배웠고, 최근 도덕경에서 "개념화, 논리화의 위험성"에 대해 지적한 것이 생각나서 사내에서 작은 사이드 프로젝트를 직접 한번 진행해 보게 되었다. 3주 정도 진행한 프로젝트를 진행하면서 개인적으로 느끼는 바가 많았다. 크게 두가지 부분에서 중요한 통찰을 얻었는데, 아무리 작은 서비스더라도 혼자서 모든 부분을 다 챙길 수는 없다는 것(할 수 있지만 시간이 부족한 것이 아니라 못하는 것이었다)과, 내가 생각하..
-
개발 일지 (1월 회고)Developer History 2023.01.29 10:59
Reading 1월에 30권 정도의 책을 읽었다. 회사가 맞이한 위기를 타개하기 위한 지혜를 얻기 위해 비슷한 위기를 겪었고, 이를 잘 헤쳐나간 여러 기업들의 사례를 다룬 책들을 주로 많이 읽었고, 비슷한 맥락에서 난세를 헤쳐나가기 위한 조금 더 추상화된 지혜를 얻기 위해 병법서를 많이 읽었다. 읽고 싶은 책은 많고, 투자할 수 있는 시간에는 한계가 있기 때문에 모든 책을 처음부터 끝까지 읽는 방식에서 벗어나 나에게 지금 필요한 부분을 집중적으로 읽는 방법으로 책을 읽었다. 이렇게 책을 읽으면서 독서의 의미에 대해 다시 생각해 보게 되었다. 기존에 한 400권 정도까지 책을 읽을 때는 단순히 책을 읽고, 밑줄을 긋고, 이런 내용이 있군 하고 책 계정에 올리고 넘어갔다면, 확실히 최근에는 절실해져서 그런지..
-
개발일지 (11월 & 12월 회고)Developer History 2022.12.18 10:58
After Class 중간고사 / 기말고사가 끝나고, 이렇게 복무 만료 이후의 첫 학기가 잘 마무리되었다. 아직 성적은 나오지 않았지만, 던진 과목은 없어서 계속해서 장학금을 받지 않을까 생각이 된다. 굉장히 고된 3달 반여를 보낸 것 같지만, 남은 두 학기도 우선은 계속 이렇게 진행할 수 있을 것 같다. 학기 내내 들었던 생각은 나의 "앎"에 대한 기준, 그러니까 무언가를 "이해했다"라고 생각하는 기준이 동기들에 비해 그렇게 높지 않다는 것이었다. 어쩌면 이 사실을 깊게 깨달은 것이 이번학기의 가장 큰 소득일 수도 있겠다. 생각해보면 늘 내가 생각하는 무언가를 "이해했다"고 생각하는 기준은 완벽에 가깝진 않았던 것 같다. 전반적으로 꼼꼼함이 부족하다고 해야 하나, 동시에 많은 일들을 하는 것을 즐기지만..
-
개발일지 (10월 회고)Developer History 2022.11.06 09:47
Overview 10월까지만 해도 반팔을 입을까 얇은 긴팔을 입을까 고민했었던 것 같은데 11월이 되면서 꽤 쌀쌀해진 날씨와 함께 드문드문 단풍이 보이는 것 같다. 어쩌면 정신없이 바닥만 쳐다보며 살다가 한숨 돌릴틈이 생긴 이제서야 한번 하늘을 올려다본 걸지도 모른다. 항상 다음 달은 이전달보다 바빠왔지만 10월은 올해 들어 유난히 체감상 더 바빴던 달이기도 하다. Frontend 회사에서는 "내신기출 서비스" 출시를 앞두고 막판 스퍼트를 시작했다. 이런저런 프로모션 대응이나 서비스 제공을 위한 여러 웹뷰들, 그리고 이를 관리하고 문제 / 해설을 수급하는 어드민성 웹 페이지들을 만드는 작업들을 팀원들과 같이 진행하고 있는데, 그중에서 내가 비중있게 맡고 있는 작업은 Latex 수식의 형태로 들어있는 스트..
-
개발일지 (9월 회고)Developer History 2022.10.03 22:27
전역과 복학 오지 않을 것만 같았던 34개월간의 산업기능요원 복무가 마무리되고 22년 9월 14일 자로 복무만료가 되었다. 병무청에서 별다른 안내를 해주지 않아서 만료된 거 맞나? 싶었지만, 병무청 앱을 들어가 보니 "예비군"이라고 표시되어 있었고 그제야 조금 실감이 났던 것 같다. 34개월의 복무를 마치고 나니 어느덧 4년 차 프론트엔드 개발자가 되어 있는 내 모습을 다시 한번 돌아보게 되었는데, 소개원실 프로젝트에서 가위바위보를 져서 프론트엔드를 선택했고, 결국 이 프로젝트를 이력서에 적어 첫 회사에 취직하게 된 기억을 되살려보다가 문득 인생에서 중요하게 보이는 선택들이 때로는 정말 별거 아닌 이유들로 인해 이루어지는 경우가 많은 것 같다는 생각이 들었다. 처음에는 복무가 마무리되는대로 지금 회사에서..