[2023-01] Montly I Learned

동길·2023년 1월 9일
1

Montly-I-Learnd

목록 보기
1/1

Documents

Docs에는 매우 많은 정보가 기록되어 있다. 명심하자.
특히 Urql은 Docs를 보지 않으면 정보를 찾기도 어렵다.

Dynamic Import

Dynamic Import는 원하는 페이지를 렌더링할 시, 바로 보이지 않아도 되는 컴포넌트는 Lazy Load 할 수 있게 도와준다. 예를 들면 Modal, Popup 등이 있다.
바로 보이지 않는 컴포넌트를 나중에 다운로드해서 화면을 보여주겠다는 의미다.
따라서 적절하게만 사용한다면 빌드 시와 첫 렌더링 시에 성능에 이점을 제공한다.

사용에 조심을 해야하는 부분을 꼽자면 SEO(검색 엔진 최적화)에 영향을 미칠 수가 있다.
만약 Dynamic Import를 사용한 컴포넌트가 SEO에 중요한 정보를 가지고 있다고 가정했을 시, CSR로 제작한 서비스와 차이가 없을 수도 있다.
(SEO 전략은 주기적으로 달라진다고 들었기 때문에 이 글을 보는 시점에는 틀린 말이 될 수도 있다.)

아무튼 실제로 회사 서비스에 적절하게 사용해보니 성능에 대한 이점이 뛰어났다.

Apollo Client, Urql

Urql 12월 2일 자에 업데이트되기 전 버전에 Memory Leak Issue가 있었다.
Git Issue를 뒤져보다 발견하고 수정했다. ( urql 개발자가 typescript로 migration하다가 실수했다고 한다 )

Apollo ClientNomalized Cache 방식으로 인해 같은 Key 값을 가지고 캐싱이 된 경우, 새로운 데이터를 받아오지 못하는 경우가 발생할 수 있었다.

이러한 문제의 대안은 Urql이다.
Urql은 캐싱 방식을 유연하게 대처할 수 있게 도와준다. Default 방식은 Document Cache 방식이며, 옵션을 통해 Nomalized Cache 방식으로 변경할 수 있다.

Urql의 장점으로 유명한 것은 번들 사이즈인데, Apollo Client와 비교하면 큰 차이가 나타난다.
하지만 Urql 제작자의 발언에 따르면 Urql은 번들 사이즈를 줄이는 것에 중점을 둔 것이 아니라고 했다.
써놓고만 보면 좋은 장점이 많기는 한데, 나온 지가 얼마 안 됐으며 앞서 말했듯이 Memory Leak Issue가 생성된 지 무려 9개월 만에 해결됐기 때문에 아직 안정성이 있는지는 확신하지는 못하겠다.

Kubernetes

Docker Image를 통해 만들어진 Container 관리를 자동화한다.
처음엔 이게 무슨 화면인가 싶었지만, 사용하기도 쉽고 개발에 굉장히 도움이 됐다.
제일 중요한 장점은 문제가 발생해 컨테이너가 죽어도 알아서 Restart를 시켜준다.
또 여러 개의 컨테이너를 namespace를 통해 쉽게 찾아볼 수 있고, 로그도 확인하기 좋다.

여러모로 유용한 툴이지만, 더 자세히 사용하기 위해선 알아볼 것이 많을 듯하다.

Reference

thumbnail : 링크

profile
피드백은 언제나 환영합니다. :)

0개의 댓글