전체 글 410

express에 에러처리

express에 에러처리 메커니즘 미들웨어에서 에러가 발생을 하면 익스프레스는 에러가나면 에러처리기로 보냅니다. 이 에러가 발생했을때 에러처리기로 바로 가기때문에 미들웨어를 생략을하고 에러처리기로 가줍니다. 왜냐하면 해당 미들웨어는 에러처리기가 아니기 때문입니다. 에러처리기는 다음과같은 4개의 인자가 들어갑니다. 그래서 미들웨어에서 발생한 에러 메시지를 에러 처리기에서 처리해 줍니다. error req res next 그래서 일반적인 요청을 처리를 잘 해주게 되지만 비동기 요청이 왔을때는 처리를 할수가 없게 된다. 왜냐하면 비동기처리로 처리가 되게되면 에러 핸들러로 에러가 넘어갈 수 없게 되면서 서버가 망가지게 된다. 그래서 이를 해결 하기위해서 next()함수의 인자에 넣어주게되면 에러처리에 대한 부분..

Node.js 2023.01.25

Node 에서 단위테스트/ 통합 테스트

단위 태스트란? 단위 테스트는 개발자가 수행하고 자신이 개발한 코드단위를 테스트합니다. 소스코드의 개별 단위를 테스트를하여 사용할 준비가 되었는지 확인하는 테스트 방법입니다. 개발 라이프 사이클 초기 단계에서 버그가 식별되므로 버그 수정비용을 줄이는 데 도움이 됩니다. 메소드를테스트하는 또다른 메소드 단위테스트의 조건 독립적이여야 하며, 어떤 테스트도 다른 테스트에 의존되선 안됩니다. 격리 되어야 합니다. Ajax,axios,localStorage등 테스트 대상이 의존하는것을 다른 것으로 대체해야 합니다. 왜 단위 테스트를 해야할까? 첫번째는 프로그램이 크고 메모리가 많이 들고 다른 리소스가 필요한 경우 로컬 환경에서 쉽게 코드를 실행시켜보기 어렵기 때문이다. 이런프로그램을 개발하는 개발자들은 유닛테스트..

Node.js 2023.01.25

Jest

Jest란 페이스북에서 만든 js언어기반 테스트 프레임워크입니다. test() or it() 위 두가지 함수로 테스트를 작성할 수 있습니다. test('1은 1이야', ()=>{ expect(1).toBe(1); }) expect(): 말그대로 기대하는 값이다. toBe() toBe()는 Matcher라고 합니다. toBe는 숫자나 문자 등 기본타입값을 비교할때 사용합니다. toBeNull : 결과가 Null값이길 기대 toBeUndefined : 결과가 Undefined를 기대 toBeDefined : 결과가 Defined이길 기대 ToBeTruthy : boolean값 ture toBeFalsy : boolean값 false toBeGeraterThan : 수가 더 크다 toBeGreaterThanO..

Node.js 2023.01.25

Node.js ?

NODE.JS 처음 자바스크립트의 탄생배경은 문서로시작했던 웹을 어플리케이션으로 만들어주기 위해서 즉 html에 생명력을 불어넣기위해서 태어났다. 하지만 노드이전에 자바스크립트는 웹에서만 사용할 수 있는 언어였는데 이 언어하나로 서버쪽 어플리케이션까지 한번에 만들면 어떨까라는 발상으로 탄생했다고 합니다. 크롬이 v8엔진을 오픈소스로 공개하면서 이 엔진을 기반으로 노드js를 만드는데 최초의 자바스크립트가 웹브라우저를 컨트롤하는 언어였다면 노드js가 생긴이후로는 자바나 파이썬처럼 컴퓨터를 컨트롤하는 언어가 된 것이다.

Node.js 2023.01.25

express/ 미들웨어

미들웨어 프론트단에서 api요청이 올때 특정한 라우터로 요청이 가기전에 수행할 일괄적인 과정들을 처리하는 기능을 한다. app.use((req,res,nest) =>{ //라우터에 가기전에 일괄적인 처리를 하는 로직; next();});그럼 만약에 미들웨어가 라우터 밑에 있으면 어떻게 될까? 결론은 아무것도 실행되지 않는다. 그이유는 라우터에 바로 요청이 들어오기때문에 미들웨어가 수행되지않고 라우터단에서 응답이 끝나기 때문이다. 그렇기 때문에 express는 직관적이고 유연하게 프로그램을 짤 수 있다. 미들웨어 응용 라우터와 같은 주소로 설정해놓고 next()함수를 넣어서 미들웨어를 사용 할 수 있다. app.get("/",(req,res,next) =>{});// get'/'의 미들웨어 ..

Node.js 2023.01.25

ExpressJS

소개 http://expressjs.com/ko/ ExpressJS 설치 npm install express npm은 노드 패키지 메니저. https://www.npmjs.com/ ExpressJS 기초 어플리케이션 미들웨어 라우팅 요청객체 응답객체 어플리케이션 익스프레스 객체 서버에 필요한 기능인 미들웨어를 어플리케이션에 추가한다. 라우팅 설정을 할 수 있다. 서버를 요청 대기 상태로 만들 수 있다. 미들 웨어 미들웨어는 함수들의 연속이다. 로깅 미들웨어 미들웨어를 추가할 때는 use함수를 사용한다. 인자로 request,response,next를 줘야한다.(인터페이스) 미들웨어에서 중요한것은 next함수를 호출해야한다 미들웨어함수가 끝난 후에 다음 로직을 실행시키기 위함. 미들웨어는 use의 순서대로..

Node.js 2023.01.25

문자열 검색 알고리즘

알고리즘은 일을 진행하는 스탭, 절차 등이라고 생각하면 이해하기가 쉽다. 완전 탐색 알고리즘 1.텍스트의 맨 앞부터 패턴을 비교 조회합니다. 2.만약 문자와 패턴이 일치하지 않으면, 패턴을 오른쪽으로 1칸씩옮긴다. 3.패턴이 배열을 벗어날 때 까지 이 처리를 반복한다 시간복잡도 : 최선일 경우 O(n) function searchString(text, pattern) { let i = 0; while (i haystack.substr(startIndex); std::vector skipInfo(pattern.size(), 0); std::size_t index = 0; for (int i = 0; i < pattern.size(); ++i) // i : incorrect index when haystac..

알고리즘 2023.01.25