읽은 글들 (~24.8.28)
Frontend
[번역] 웹 컴포넌트 성공 사례
"웹 컴포넌트는 기존의 프론트엔드 프레임워크와 배타적이지 않다. 오히려 그들 사이에서 공통으로 사용될 수 있는 컴포넌트 라이브러리로써, 그들을 보완하는 존재가 될 것이다." 라는 취지의 글
The User Location is a Lie!!!
사용자의 위치 정보는 어떻게 수집할 수 있는지, 각 시나리오에 가장 적합한 방법은 무엇인지에 대해 정리한 글.
- 사용자에게 직접 입력 받기
- 기기/브라우저가 제공하는 API (Geolocation API 등) 사용하기
- IP 주소 사용하기
- 엣지 컴퓨팅 시스템에서 제공하는 값 사용하기
등등의 방법이 있으나 글쓴이가 강조하는 것은 "100% 믿을 수 있는 위치 정보는 없다" 는 것이고, 각 시나리오에 따라 최선의 방법이 있을 뿐 완벽한 방법은 없다는 것.
JavaScript
Common Causes of Memory Leaks in JavaScript
nodejs 환경에서 일반적으로 발생하는 메모리 누수 현상의 원인과 대응 방법에 대한 글. 글에서 이야기하는 메모리 누수 원인을 요약하면 아래와 같다.
- Improperly Managed Variables
- Persistent Global Objects
- Event Listeners Not Removed
- Closures Capturing Variables
- Unmanaged Callbacks
- Incorrect Use of
bind()
- Circular References
어떻게 보면 기초적인 내용이긴 하지만 한 번 되새김질 하기 좋은 것 같다.
React
(번역) 대규모 SPA에서 유연하게 네트워크 데이터 미리 로딩하기
SPA 에서 앱 초기화 시 데이터를 preloading 하는 기법에 대한 소개글. 현재 있는 팀에서는 SPA 를 사용하지 않아서 실무에 사용할만한 기술은 아니지만 글 자체가 흥미롭다.
기법을 간단히 요약하자면 아래와 같다.
- React 내부/외부에서 모두 호출할 수 있는 API 콜 함수를 만들고
- React 외부에서 호출 시에는 API 를 콜해서 데이터를 저장해두고 (preload)
- React 내부에서 호출 시에는 preload 된 데이터가 있으면 해당 데이터를 사용하고 preload 된 데이터가 없다면 API 를 콜한다
글에는 예제 코드 (pseudo) 도 포함되어 있다.
A deep dive on forms with modern React
React 19 에서 새로 공개한 useFormStatus
, useActionState
, useOptimistic
을 통해 form 을 제어하는 방법에 대해 소개하는 글.
글은 HTML <form />
태그의 기본부터 차근차근 설명한다. 해당 부분도 재미있지만 이미 form 의 기초에 대해 잘 알고 있어서 건너뛰고 싶다면 "React Form Actions" 섹션부터 읽으면 된다.
예제를 곁들여 차근차근 단계적으로 설명하므로 읽기 좋다. useFormStatus
, useActionState
, useOptimistic
셋 다 사용성이 좋아보여서, React 19 가 정식 출시되면 사용해보고 싶다.
쓰기만 했던 개발자가 궁금해서 찾아본 쿠버네티스 내부
쿠버네티스 기본 구조에 대해 알기 쉽게 설명한 글. 쿠버네티스를 그냥 컨테이너이자 블랙박스라고만 이해하고 있던 나에게도 비유가 좋아서 이해가 쏙쏙 잘 되는 글이다.
Algorithm
Sparse Table
Sparse Table (희소 배열) 알고리즘에 대해 설명하는 글. LCA (최소 공통 조상) 문제 등을 풀 때 사용되는 알고리즘인데, 이해하기 쉽게 잘 설명해주고 있다.
Etc
GN⁺: 우리의 소프트웨어 개발 알고리듬
- 작업을 하루 안에 완료하지 못하면 모두 삭제하고 다음 날 다시 개발 (완료할 때까지 반복)
- 혹은 무조건 두 번 개발 (한번 개발한 후 해당 내용을 따로 브랜치에 저장해두고 똑같은 내용을 다시 개발)
이런 식으로 하면 개발자 개인의 역량과 결과물의 퀄리티가 모두 향상된다는 내용의 글. 개인적으로는 자기 코드를 PR 올리기 전에 셀프 코드리뷰 하는 프로세스를 좋아하는데, 이건 그보다 몇 발자국 더 나간 것 같다.
효과는 확실히 있을 것 같은데, 학생이나 연구자가 아닌 실무자가 정말 할 수 있는 현실적인 프로세스일지 고개가 갸우뚱하긴 한다. 여하튼 흥미로운 글임에는 틀림 없다.
The Dying Web
브라우저 시장을 크롬이 장악하고 있는 것에 대해 우려를 표하는 글. 최근에 반독점법 때문에 얻어 맞고 있다는 구글 뉴스들이 떠오른다. 인상적인 문구 몇 개를 인용해보겠다.
Now, the world's largest websites are owned by the same company, which also owns the world's most popular browser and search engine. Coincidentally, they are also the world's largest advertising company. And people are wondering why they can't block ads on YouTube anymore.
We've been down this road before. (Okay, I was there.) We called it the Browser Wars: Netscape vs Internet Explorer. Netscape lost and Microsoft ruled over the web with an iron fist.
If it contains a bug and there's no competition, that bug becomes the standard.
글쓴이는 모질라의 파이어폭스 사용을 추천한다. 크롬이나 사파리의 독점적인 운영을 견제할 수 있으면서, 개방형 표준과 개인 정보 보호를 제공하기 때문이라고 한다. (현명하게도 성능적으로 부족한 건 인정하고 있다) 개인적으로도 업무할 때는 크롬을 쓰고 개인 용무 때는 파이어폭스를 섞어 쓰는데, 큰 불만이 없긴 하다.
어떻게 보면 뻔한 주제의 글이긴 한데 여하튼 좋은 주제이기도 하고 글 자체가 재밌기도 해서, 읽어보는 것을 권한다.