오늘의 오전 학습 - 13개의 node.js 라이브러리
node.js 에는 다양한 라이브러리가 존재하는데, 사용성이 좋은 라이브러리는 개발시간의 단축과 여러 이점을 제공합니다. 예를 들면 빠른 로드와 번들 사이즈 감소 등이 있습니다. 라이브러리를 선택할때는 현재 구현하고있는 어플리케이션의 복잡성과 라이브러리 커뮤니티의 활성화 정도, 업데이트 빈도, 공식문서의 퀄리티 등을 고려해야합니다. 이러한 라이브러리에 대해 13개의 유용한 라이브러리를 포스팅한 글이 있어서 요약하고자 합니다. 참고문헌 https://blog.devgenius.io/13-heart-pounding-node-js-libraries-to-ignite-your-next-project-94ee989203b9 요약 라이브러리란? * 모듈로 알려졌던 라이브러리는, 반복적으로 사용되는 로직을 캡슐화하여 어떠한 프로젝트에서도 쉽게 사용 가능하도록 미리 작성해둔 코드 모음이라 할 수 있습니다. (Don’t repeat yourself) 13개의 사용빈도가 높은 라이브러리 * Sequelize * Promise 기반 ORM * SQL 쿼리를 사용하지 않아도 데이터베이스 관련 작업을 수행할 수 있습니다. * Cors * 웹 어플리케이션이 CORS 를 활성화하는데 필요한 코드를 줄여주며, 그 외 헤더 관련 다양한 옵션을 조정할 수 있습니다. * Nodemailer * SMTP(Simple Mail Transfer Protocol)기반 메일 전송 지원 라이브러리입니다. * Passport * 인증 미들웨어로서, google, meta, x 등 500개 이상의 인증 체계를 지원합니다. * Async Module * 비동기적 방식을 동기적으로 쉽게 변경해주는 모듈로서 70개가 넘는 유틸리티 메서드를 지원합니다. * Winston * 서비스를 운영할 때 발생하는 log 를 효율적으로 관리할 수 있도록 도와주는 모듈입니다 * 외부에서 관리할 수 있으며, json, text 등 저장 방식을 지정할 수 있습니다. * Mongoose * MongoDB를 위한 ODM(Object Data Mapping) 라이브러리로서, ORM 과 비슷한 개념입니다. * Socket.io * 클라이언트와 서버의 통신을 실시간, 양방향, 이벤트 기반으로 처리할 수 있는 WebSocket API 기능을 지원하며, 이를 지원하지 않는 오래된 브라우저에 호환성을 고려한 node.js 패키지입니다. * Lodash * 유형검사, 간단한 수학 작업등과 같은 프로그래밍을 돕기위한 200개 이상의 유틸리티 기능이 포함된 패키기 입니다. * Axios * promise 기반 HTTP 클라이언트 * 동일한 코드베이스로 node.js와 브라우저에서 사용 가능합니다. (node.js : http 모듈, 브라우저: XMLHttpRequests) * json 데이터를 자동적으로 변환해줍니다. * Puppeteer * Chrome Devtools 프로토콜을 활용하여 Chrome을 자유롭게 컨트롤할 수 있게 해주는 웹 크롤링 node.js 라이브러리 입니다. (Chrome팀에서 제작) * Headless 브라우저에서 동작합니다. (사용자에게 보이지 않고 백 단에서 동작하는 브라우저) * Multer * 파일업로드를 위해 사용되는 미들웨어 패키지 입니다. * multipart/form-data 형식으로 단일 및 다중 파일 업로드를 지원합니다. * Dotenv * 환경변수를 쉽게 다루기 위해 사용하는 패키지 입니다.