Frontend / JavaScript

JavaScript 모듈 시스템 알아보기 - 순환 의존성

JavaScript로 개발 중에 코드상으로 아무런 문제가 없어 보이는데 다음과 같은 에러가 발생한다면 그 원인으로 순환 의존성을 의심해 볼 수 있습니다. 둘 이상의 모듈이 순환으로 참조하여 무한 루프를 형성하는 구조를 말합니다. 순환 의존성이 프로그램상에서 동작하는 방식은 예측하기...

JavaScript 모듈 시스템 알아보기 - CJS vs ESM

Node.js 환경에서 사용할 수 있는 모듈 시스템의 두 가지 선택지로 CJS (CommonJS) 와 ESM (ES Module) 이 있습니다. 더 이른 시기에 등장한 CJS에 비해 이후에 등장한 ESM은 더 성숙해진 체계를 갖추고 있으나, 여전히 하위 호환성 때문에 CJS의 흔적...

JavaScript 모듈 시스템 알아보기 - 모듈의 역사

JavaScript는 초기 개발 기간이 짧았던 만큼 완성도가 낮고 문제점이 많은 언어였습니다. 시간이 지나면서 많이 성숙해지긴 했으나, 브라우저의 특수성 때문에 하위호환성을 갖춰야 할 필요가 있고, 이에 과거 문제가 많았던 기능은 그대로 지원되며 개선된 기능은 새로운 문법으로 추가...

웹 게임 개발 도전기

저는 이번에 게임 개발에 도전하고자 합니다. 사실 게임 개발은 저에게 다소 생소한 분야이며, 진입장벽 또한 존재합니다. 그러나 웹 게임으로 입문하게 된다면 충분히 시도해 볼만하다고 생각했습니다. 실제로 JavaScript의 범용성은 점점 넓어져 가고 있고, HTML, CSS, Ja...

프론트엔드 성능 개선

웹 프론트엔드에서 성능이라고 하면 페이지 로딩 속도, 렌더링 속도, 서버 부화 (SSR의 경우), 검색 엔진 최적화 등의 다양한 관점으로 볼 수 있습니다. 저는 이중 UI 성능에 해당되는 페이지 로딩 속도와 렌더링 속도를 개선하는 방법에 대해 다뤄보겠습니다. UI 성능은 사용자 이...

Tensorflow.js 체험기

TensorFlow는 구글에서 개발된 머신러닝 라이브러리로, PyTorch와 양대산맥을 이루고 있습니다. 흔히 TensorFlow는 산업 중심, PyTorch는 연구 중심이라는 평가가 많고 최근까지도 그러한 추세가 이어지는 듯합니다. (서로의 장단점을 보완하여 그 차이가 줄어들고 ...

React JS에 대하여 (feat. SPA)

지금 프론트엔드에서 상당히 많은 인기를 끌고있는 라이브러리죠. jQuery가 필수였던 시대가 지나고 Vue.js, Angular JS와 같은 경쟁자들 사이에서 나타난 React JS는 현재 가장 많이 사용되고 있는 웹 프레임워크 순위에 1위로 올라가 있습니다. 저 역시도 취업을 준...

프론트엔드 개발자 입장에서 바라보는 웹 서버 (feat. Nginx)

저는 한때 백엔드로 취업을 준비했으나 당시 수요가 더 높았던 프론트엔드로 일을 시작했습니다. 그러다 보니 다른 주니어 프론트엔드 동료들과 조금은 다른 시각을 가지게 된지도 모르겠습니다. 동료들이 언어, 프레임워크 등을 배울 때 저는 결과물이 어떻게 배포되는지에 대해 고민을 더 많이...

GraphQL 사용 후기

GraphQL은 2012년 페이스북에서 개발해서 2015년에 공개적으로 발표했습니다. 여러 개발자들 사이에서 자주 입에 오르내리고 있고, 한번 사용해보면 REST API를 더 이상 사용하지 않게된다는 등의 좋은 평가가 많아 알게되었습니다. 그러다 최근 타 회사에서 개발되어있던 웹 ...