Q1. 자바스크립트에서 모듈을 사용하는 이유에 대해 설명해 주세요.
A1. 본래 웹 브라우저에서 사용되던 자바스크립트를 V8 엔진을 통해 브라우저 밖에서 범용적으로 사용되기 시작했는데, 초기 자바스크립트엔 모듈화가 어려웠기 때문에 한 파일에 모든 변수와 상수, 그리고 함수들을 작성하기엔 가독성과 유지보수성이 떨어지는 문제가 있었습니다.
따라서 C/C++에서 include 키워드를 사용하여 분리되어 있는 외부 코드나 기능을 불러오듯이, 자바스크립트에서도 모듈을 도입하여 이를 해결하고자 하였습니다.
자바스크립트의 모듈화 명세를 만든 여러 그룹 중 하나인 CommonJS가 Node.js의 표준으로 채택되면서 널리 사용되기 시작했고, Node.js에서 모듈을 불러오기 위해 사용하는 require 키워드가 바로 CommonJS에서 모듈화를 구현하기 위한 방법입니다.
지금은 ECMAScript 2015에 의해 점차 대체되어 import 키워드가 모듈을 불러오기 위한 표준 키워드가 되었지만, Node.js 프로젝트에서는 여전히 널리 쓰이는 방식입니다.
간단히 정리하면, 자바스크립트에서 모듈을 사용하는 이유는 가독성과 유지보수성, 그리고 코드 재사용성을 높이기 위함입니다.
Q2. Fetch API와 비교했을 때 Axios를 사용하면 좋은 점을 설명해 주세요.
A2. 우선, Fetch API는 Axios보다 나중에 나온 자바스크립트 내장 API입니다.
반대로 말하면 Axios는 Fetch API가 나오기 전부터 꾸준히 사용되어 왔다고 할 수 있는데, 덕분에 많은 프로젝트에 사용되어 Axios는 신뢰성이 검증된 라이브러리입니다.
또한, Axios는 Fetch API 대비 편리한 기능을 제공합니다. 예를 들어서, Axios에서는 JSON을 자동으로 시리얼라이즈 및 파싱해주는 기능이 있습니다. Fetch API에서는 response.json()처럼 별도의 파싱 메서드를 사용해야 하지만, Axios는 자동으로 처리해 줍니다.
이외에도 요청을 취소하는 기능, Fetch API보다 더 나은 에러 처리 등 Axios가 더 좋은 점이 많으며, 이는 현업에서 Fetch API보다 Axios를 더 선호하는 이유가 되기도 합니다.