본문 바로가기

Node.js

(9)
5. 테스트 (jest, supertest) [express] 1. 테스트 코드 코드의 신뢰성 확보와 예상치 못한 버그를 미리 찾아내기 위해 테스트 코드 작성은 중요하다.테스트를 거치치 않은 코드는 기존 기능에 까지 영향을 미칠 수 있다.  2. 테스트 종류 a. 단위 테스트 (Unit Test) : 가장 작은 단위(함수, 컴포넌트 등)에 대한 테스트일반적인 테스트, 세분화 테스트, 중요도가 높은 테스트코드를 수정하거나 기능을 추가할 때, 수시로 빠른 검증이 가능하다.리팩토링 시에 안정성을 확보할 수 있다.개발 및 테스팅에 대한 시간 비용을 절감할 수 있다.b. 통합 테스트 (Integratin Test) : 테스트를 모아서 진행하는 통합 테스트 c. E2E 테스트 (End to End Test) : 애플리케이션의 전체 워크플로우 테스트(로그인 후 특정 페이지로의 ..
4. 웹 API 서버 [express] 오늘은 ~크롤링과의 맞다이에서 뚜까맞고 체념한 개발자의 아량으로 볼 수 있는 웹 API를 알아보자 1. 웹 API 서버 어차피 데이터를 긁어 갈거라면 여기에서! 정상적인 방식으로 데이터를 가져가!라는 의미로 열어둔 여기에서!가 "웹 API" 되겠다. 웹 API 서버를 통해서 제공자는뚜까맞던 것을 적당히 때려달라고 할 수도 있고, (사용량 제한) 뚜까맞는 것에 대해 요금을 청구할 수도 있고, (유료 서비스 도입)어떤 정보를 많이 찾는지 데이터를 얻을 수도 있다. (요청에 대한 데이터 확보) 제작에 있어서는 보통 서버와 동일하게 제작하면 된다. (로그인, 세션, 미들웨어, DB, 에러처리 모두 동일)자격을 가진 사용자에게 API 서버는 요청에 맞는 데이터를 담아 res.json을 전달한다.// promise..
3. passport [express] 로그인 기능만 제대로 구현할 수 있어도,백엔드의 9할은 끝난 것이다.- 취준생 삼다수🤔 - 0. 세팅npm initnpm i sequelize mysql2 sequelize-climysql2는 노드와 mysql DB 연결을 위한 드라이버 (mysql X)npx sequelize init config, migrations, models, seeders 파일 자동 생성파일 생성 - public, .env, views, routes, controllers, passport 파일 수동 생성npm i express cookie-parser express-session morgan multer dotenv nonjucksnpm i -D nodemonapp.js 제작scripts에 "start" : "nodemon..
2. express (서버제작 level 2) [express] 프로젝트가 거대해짐에 따라조건문 라우팅! 헷갈려서 못해 먹겠다!http모듈로는 못해 먹겠다!  1. express이에 따라,코드 가시성과 확장성을 고려한 다양한 기능을 제공하는 서버제작 프레임워크가 등장했다.그 이름 express!라우팅과 로직 모듈화 측면에서 큰 편리함을 제공한다.(+ express도 패키지를 까보면 궁극적으로는 http로 돌아간다!) 라우트 : 특정 URL 경로와 HTTP 메소드에 대한, 경로 처리 함수를 연결한 하나의 규칙을 의미한다.              사용자가 요청할 수 있는 경로와 그 경로에 대해 어떤 처리를 할지 정의하는 것이다.              (여기로 이 요청이 오면! 이렇게 처리해!)라우터 : URL 경로와 처리할 핸들러(함수) 또는 미들웨어를 연결하는 역할을..
1. http (서버제작 level 1) [express] 노드는 JS 실행기이다.서버가 아니다.다만, 서버를 돌릴 수 있는 코드를 작성해 두면 노드가 서버를 실행해준다.-ZoroCho❤️-  1. 서버와 클라이언트클라이언트 : 요청(request)을 서버로 보내는 장치, 프로그램서버 : 요청을 처리하고, 응답(response)을 클라이언트에 제공하는 시스템 클라이언트와 서버간의 원활한 소통을 위해서는 약속된 공통의 언어가 필요하다.이것이 바로 http 프로토콜(규약)이다. 2. 프로토콜 httpHTTP : Hyper Text Transfer Protocol, 하이터텍스트(HTML) 문서를 교환하기 위해 만들어진 프로토콜 http는 웹상에서 네트워크로 서버간 통신할때 어떤 형식으로 서로 통신할지 미리 규정해 놓은 약속으로 볼 수 있다.http는 TCP/IP기반으..
3. 노드 기본 [Node] 노드 기본,노드가 기본적으로 제공하는 내장 객체와 내장 모듈을 알아본다. 공통적으로 다운로드 없이 사용할 수 있다.차이점으로 내장 모듈은 import, require해야 사용할 수 있다. 암기할 필요없다. 부담없이 학습하자.(필요할 때 찾아보며 사용하면 된다.)  1. 노드 내장 객체global노드의 전역 객체브라우저에서 Window와 동일한 역할을 한다. (globalThis로 구분없이 사용할 수 있다.)모든파일에서 접근가능하다.생략해서 작성할 수 있다. ( global.console.log("abc") === console.log("abc") )console브라우저에서의 console 객체와 거의 동일console.log("⭐") : 평범한 로깅console.error ("⭐") : 에러 로깅cons..
4. 패키지 [Node] node를 다운 받았을 뿐인데,사은품처럼 같이 설치된,(JS의 폭발적인 성장을 이끈 패키지 매니저),npm에 대해서 알아보자.  1. npmnpm이 등장하기 이전 패키지를 사용하기 위해 패키지를 설치하면, 패키지는 글로벌패키징의 형태로 설치되었다.글로벌 패키징의 형태로 설치된 패키지는 시스템 전체에서 사용할 수 있었다. 이러한 방식은 하나의 패키지가 여러 프로젝트에서 사용될 때 문제가 발생한다.버전에 따른 호환성 문제가 그것이다.npm이전 이러한 문제를 해결하기 위해 개발자들은 프로젝트마다 수동으로 버전을 맞춰야 했다.이러한 방식은 관리가 번거롭고 실수가 잦았다. 이러한 문제를 해결하기 위해2010년 1월 npm이 등장하였다.npm 덕분에 개발자는 로컬 패키징이 가능해졌다.프로젝트 폴더 내에서만 사용할 ..
2. 노드 사용법 [Node] 노드가 무엇인지 알아보았으니,노드를 사용해보자. 1. 설치노드를 사용하기 위해서는 노드 설치가 필요하다.기본적으로 노드를 설치하면 npm도 함께 설치된다. 총 두개가 설치되면 노드를 사용할 수 있는 환경이 마련된다. 설치 확인 방법a. cmd 입장b. node -v 확인 c. npm -v 확인노드와  npm버전을 확인하는 코드이다. 오류가 뜨지않고 버전이 뜬다면 정상적으로 설치된 것으로 볼 수 있다. 1.1. npm?npm은 노드에서 사용하는 모듈을 패키지로 만들어 관리, 배포해주는 역할을 한다.(구체적으로는 패키지관리, 의존성관리, 버전관리, 스크립트관리, 커뮤니티지원의 역할을 한다.)npm : node pagkage manager 노드를 이용한 프로그래밍에 있어서 필요한 패키지를 손 쉽게 설치하고 관..