Learning Javascript Design Patterns

서론

https://github.com/BookCrushers/Learning-JavaScript-Design-Patterns

1월 초에 시작한 북스터디를 이제 마무리하면서 회고를 남긴다. 새로운 지식들을 배우는 과정은 정말 즐거웠지만, 매일 책을 읽는 일 자체는 생각보다 꽤 어려웠다. 책 분량이 많지 않았음에도 새로운 습관을 만들고 그것을 꾸준히 이어가는 게 개인적으로 쉽지 않았던 것 같다. 그럼에도 불구하고 끝까지 잘 해냈다는 점에서 뿌듯함을 느끼고, 함께 해준 팀 동료에게 감사함을 표하고 싶다.

내용 정리

이 책은 자바스크립트 패턴, 그리고 리액트 패턴을 다루고 있는 책이다. 해당 내용들을 심층적으로 다룬다기보다는 튜토리얼 정도의 느낌으로 알려주는 책이라고 생각한다.

느낀 점

이 책을 읽고 느낀 점은 바로 ‘캐시’의 중요성이다. 사실 이 부분은 자바스크립트 패턴보다는 후반부의 렌더링 패턴을 읽으면서 더 크게 와닿았다. 캐시는 일반적으로 데이터를 빠르게 접근할 수 있는 임시 저장 공간을 의미하지만, 내가 강조하고자 하는 건 캐시 그 자체라기보다는 데이터를 임시로 저장해두고 빠르게 가져오는 그 과정이다.

책을 읽으면서 Tanstack Query와 Next.js 관련 인터넷 강의를 들었는데, 두 기술 모두 캐시를 적극적으로 활용한다는 점이 인상 깊었다. Tanstack Query에서는 API 요청 후 빠른 응답을 위해 데이터를 캐시에 저장하고, Next.js에서도 여러 곳에서 캐시 기능을 활용하는 모습을 볼 수 있었다.

특히, Next.js에서는 캐시 기능을 다양한 방식으로 활용하여 성능을 최적화하고, 페이지 로딩 속도를 개선하는 데 큰 도움을 준다. 예를 들어, SSG(Static Site Generation)에서는 빌드 시 미리 HTML 파일을 생성해두고, 이를 저장하여 빠르게 응답할 수 있게 만든다.

이렇게 미리 준비된 페이지는 클라이언트 요청 시 서버에서 데이터를 새로 가져오는 대신, 이미 만들어둔 정적 파일을 즉시 제공하게 되어 응답 속도가 훨씬 빨라진다. 이런 접근은 콘텐츠가 자주 변경되지 않는 페이지에서 특히 유효하다.

또한, 전역 상태 관리도 캐시와 비슷한 개념처럼 느껴졌다. 캐시의 핵심은 데이터를 빠르게 가져오는 것인데, 전역 상태 관리에서는 데이터를 한 번 저장해두고 애플리케이션의 여러 컴포넌트에서 빠르게 접근할 수 있게 한다. 이는 서버에서 매번 데이터를 새로 요청하는 대신, 이미 저장된 정보를 재사용하는 방식이므로 응답 속도를 높이는 데 중요한 역할을 한다.

결국, 캐시를 잘 활용한다는 것은 데이터를 효율적으로 관리한다는 의미이고, 이는 좋은 애플리케이션을 만드는 데 필수적인 요소라고 생각한다. 데이터를 효율적으로 관리하고 빠르게 접근할 수 있도록 설계된 애플리케이션은 사용자가 경험하는 속도와 품질을 크게 향상시킬 수 있다.

그렇기에 캐시가 주니어 개발자와 시니어 개발자를 구분짓는 중요한 기준이 될 수 있다는 생각이 들었다. 이를 위해 캐시에 대해 더 깊이 공부해야겠다는 목표를 세우게 되었다.

약간 아쉬운 점은 책의 번역이 완전히 자연스럽지 않다는 부분이었지만, 그런 점을 감안하더라도 패턴에 대한 다양한 지식을 이해하기 쉽게 풀어내고 있다는 점에서 여전히 좋은 책이었다고 생각한다.


Learning Javascript Design Patterns
http://example.com/2025/02/04/Learning-Javascript-Design-Patterns/
Author
Elio
Posted on
February 4, 2025
Licensed under