전체 글(94)
-
[Node.js] 목록 조회 API 테스트 코드 만들기
지난 포스팅에서 슈퍼테스트(Supertest)를 이용해서 만든 테스트 코드가 잘 작동되는지 확인해보았다. 이번 포스팅에서는 본격적으로 테스트 코드에 맞게 API를 개선해 보는 코드를 만들려고 한다. 이번 포스팅에서 해볼 내용은 다음과 같다. 슈퍼테스트(Supertest)와 슈드(ShouldJs)를 같이 다뤄본다. limit라는 쿼리 속성을 추가하여, 원하는 만큼의 데이터를 가져온다. limit 속성 값이 Number형이 아닐 경우, Status 코드 400번을 보내는 실패 케이스를 만들어본다. 먼저, server.js라는 파일을 생성해서 다음과 같이 코드를 입력해보자. import express from "express"; const obj = [ { id: "cheonyulin", name: "천유린"..
2020.11.03 -
[Node.js] 슈퍼 테스트(Super Test)
슈퍼 테스트(Super Test) 모카(Mochajs), 슈드(shouldJs)를 다룬 포스팅에서는 메서드 레벨의 단위 테스트를 다루었다. 단위 테스트란, 가장 작은 단위를 테스트한다는 것으로 즉각적인 피드백이 나온다는 장점이 있다. 하지만, 하나의 메서드가 잘 동작하는 것은 보장할 수 있지만, 그들이 결합되었을 때도 잘 작동한다는 보장 할 수 없다. 이번에 포스팅할 슈퍼테스트는 통합 테스트에 사용된다. 통합 테스트란, API의 기능을 테스트 하는 것으로 API 기능 뿐만 아니라 여러 개(외부 라이브러리도 포함)를 통합해서 테스트하는 것을 말한다. 슈퍼테스트는 ExpressJS 통합 테스트용 라이브러리로 내부적으로 익스프레스 서버를 구동시켜 실제 요청을 보낸 뒤 결과를 검증한다. 따라서 이번 포스팅에서는..
2020.11.03 -
[JS] 프로그래머스 - 기둥과 보 Another.ver
문제 설명 빙하가 깨지면서 스노우타운에 떠내려 온 죠르디는 인생 2막을 위해 주택 건축사업에 뛰어들기로 결심하였습니다. 죠르디는 기둥과 보를 이용하여 벽면 구조물을 자동으로 세우는 로봇을 개발할 계획인데, 그에 앞서 로봇의 동작을 시뮬레이션 할 수 있는 프로그램을 만들고 있습니다. 프로그램은 2차원 가상 벽면에 기둥과 보를 이용한 구조물을 설치할 수 있는데, 기둥과 보는 길이가 1인 선분으로 표현되며 다음과 같은 규칙을 가지고 있습니다. 기둥은 바닥 위에 있거나 보의 한쪽 끝 부분 위에 있거나, 또는 다른 기둥 위에 있어야 합니다. 보는 한쪽 끝 부분이 기둥 위에 있거나, 또는 양쪽 끝 부분이 다른 보와 동시에 연결되어 있어야 합니다. 단, 바닥은 벽면의 맨 아래 지면을 말합니다. 2차원 벽면은 n x ..
2020.11.01 -
[JS] 프로그래머스 - 기둥과 보 설치
문제 설명 빙하가 깨지면서 스노우타운에 떠내려 온 죠르디는 인생 2막을 위해 주택 건축사업에 뛰어들기로 결심하였습니다. 죠르디는 기둥과 보를 이용하여 벽면 구조물을 자동으로 세우는 로봇을 개발할 계획인데, 그에 앞서 로봇의 동작을 시뮬레이션 할 수 있는 프로그램을 만들고 있습니다. 프로그램은 2차원 가상 벽면에 기둥과 보를 이용한 구조물을 설치할 수 있는데, 기둥과 보는 길이가 1인 선분으로 표현되며 다음과 같은 규칙을 가지고 있습니다. 기둥은 바닥 위에 있거나 보의 한쪽 끝 부분 위에 있거나, 또는 다른 기둥 위에 있어야 합니다. 보는 한쪽 끝 부분이 기둥 위에 있거나, 또는 양쪽 끝 부분이 다른 보와 동시에 연결되어 있어야 합니다. 단, 바닥은 벽면의 맨 아래 지면을 말합니다. 2차원 벽면은 n x ..
2020.11.01 -
영속적 연결과 비 영속적 연결
웹 페이지 문서에 있는 하이퍼 텍스트 개념은 여러 번의 요청과 응답을 필요로 할 수 있다. 그런데 웹 페이지들이 서로 다른 서버에 있는 경우도 있고, 같은 서버에 있는 경우도 있다. 다른 서버에 있는 웹 페이지들을 가져올 경우에는 새로운 TCP 연결을 생성하는 것 말고는 답이 없다. 하지만 웹 페이지들이 같은 서버에 있는 경우는 다르다. 페이지들을 일일히 가져올 때마다 TCP 연결을 생성해야 하는 방법이 있고, 하나의 TCP 연결로 모든 웹 페이지들을 가져오는 방법이 있다. 전자의 방법을 비 영속적 연결이라하고, 후자의 방법을 영속적 연결이라고 한다. 1. 비 영속적 연결 비 영속적 연결은 HTML 1.1 이전 버전에서 사용하던 연결 방식으로 각 요구/응답에 대해 새로 TCP 연결이 만들어지고, 응답 후..
2020.10.31 -
[Node.js] Should.js 란
1. Should.js 란 지난 번에 Mocha.js에 대해서 포스팅한 적이 있다. 모카(Mocha.js)는 테스트 주도 개발을 할 수 있는 대표적인 자바스크립트 프레임워크다. 하지만 모카(Mocha.js)를 쓰기 위해서는 node_modules 폴더 안에 있는 assert 모듈을 불러와야한다. Should.js 프레임워크도 모카(Mocha.js)와 다른 것이 없지만, 다른 점이 있다면 여러가지 Assertion 함수를 지원한다는 것이다. 즉, assert 모듈을 불러오지 않아도 된다. Should.js를 쓰기위해서는 먼저 프레임워크를 설치해야한다. npm install should --save--dev yarn add should --dev 바벨 컴파일러, package.json에서의 scripts 속..
2020.10.31