본문 바로가기

반응형

공부 정리

(141)
TDD로 API 서버 개발하기 * 개요 앞 글에서, mocha, should 사용법을 알아보았습니다. 이제, 실제 API 서버를 어떻게 TDD로 개발할 수 있는지 실습합니다. HTTP 메서드인 GET, POST, PUT, DELTE 4가지를 실습하고 예외 상황도 검사합니다. 1. GET /users - 성공시 유저객체를 담은 배열로 응답한다 - 성공시 최대 limit 갯수만큼 응답한다. - 실패시 limit이 숫자형이 아니면 400을 응답한다 //index.spec.js const request = require("supertest"); const should = require("should"); const app = request("./index"); describe('GET /users 는', () => { describe('성공..
mocha, should, supertest 사용하기 * 개요 자바에서 TDD를 했던 경험을 바탕으로, node js 에서 어떻게 사용하는지 궁금해서 수강합니다. mocha를 이용하며, describe - it 구조를 활용합니다. 이전에 자바에서 사용했던 describe - it 작성 방식이 여기서 차용된 것임을 알았습니다. 이미 한번 자바에서 해보고나니 이해하는데 크게 어려움은 없었습니다. * mocha, should, supertest란? 테스트 수트 : 테스트 환경으로 모카에서 describe()로 구현합니다. 테스트 케이스 : 실제 테스트를 말하며 모카에서는 it()로 구현합니다. '노드 assert 말고 서드파티 라이브러리를 사용하라' 슈드는 단위테스트에서 사용하는 검증 라이브러리입니다. 가독성 높은 테스트 코드를 만들 수 있습니다. 단위테스트는 ..
강의 후기 윤재성님은 다양한 언어로 다양한 강의를 찍어두어서 알고 있던 분이었습니다. 처음에는 안드로이드 앱 개발을 수강하였기 때문에, 스타일을 잘 알고 있었습니다. 특히, 기본내용을 찬찬히 잘 설명해주시고 템포를 조절해주셔서 좋았습니다. 장점은, 각 파트의 개념을 간단히 소개하고 코드로 실습을 합니다. 입문서에 가깝기 때문에 nodejs를 잘 몰라도 아무런 무리없이 쉽게 들을 수 있습니다. 목소리 톤과 중간중간 코드 확대 등이 초보자가 따라가기에 편하고 안정적입니다. 모듈 설정하기, 라우팅 설정, html 랜더링, db연동까지 큰 틀 개념을 빠른 시간 내에 습득할 수 있었습니다. 아쉬운 점은, 강의 자체가 오래되었다보니, 코드환경이 vs code가 아닌 nodeeclipse입니다. javascript는 무조건 v..
node js 데이터베이스 이용하기 *개요 nodejs에 database를 연동해서 구동시켜봅니다. 단순히 서버에서 요청했던 내용들을 이제 직접 sql을 이용해서 저장하고 실행해봅니다. * 데이터 베이스로 조회하기 사용하고 싶은 데이터베이스를 dependencies에 등록합니다. 이번 실습에서는 mysql을 이용합니다. //index.ejs 이름 : 로그인 로그인 화면을 만듭니다. 여기서 로그인하는 user_name은 세션에 저장할 예정입니다. //controller.js app.post("/login", urlencodedParser, function(req, res){ var user_name = req.body.user_name; req.session.user_name = user_name; res.redirect("main"); }..
node js 파라미터, 쿠키, 세션 이용하기 * 개요 앞 글에서 express를 이용해 nodejs의 라우팅, ejs 랜더링 개념을 배우고 실습했다. 이번 시간에는 단순 get요청이 아닌 파라미터를 이용한 POST 요청, 쿠키, 세션을 사용한다. 파라미터를 주고받는 방법을 중점적으로 살펴본다. * form 객체에서 파라미터 이용한 POST 요청하기 express에서 파라미터는 request 객체를 통해 파라미터 추출이 가능하다. get 방식의 경우 query라는 객체안에 모두 들어 있다. post 방식의 경우 bodyParser 모듈을 이용해야 파라미터를 추출할 수 있다. POST 요청은 GET과 다르게 body에 데이터를 담아서 이동한다. noe에서는 body를 이용할 수 있도록 body-parser 모듈을 새로 추가해야 한다. dependenc..
node express 모듈 사용하기 * 개요 이전시간에는 node의 기본 모듈 사용법을 알아보았습니다. 이번에는 본격적으로 node express 모듈을 사용합니다. 초기 설정부터 라우팅 ,html 랜더링, 동적 웹 페이지(ejs), 간단한 쿠키, 세션, 파라미터 사용법을 배웁니다. express의 핵심 요소를 간단히 구현해보면서 빠르게 개념을 익힐 수 있습니다. * 외부 모듈 사용하기 nodejs에서 제공하는 기본 모듈만 개발하기에 충분하지 않다 noejs 오픈소스 플랫폼으로 소스가 공개되어 있다. 모듈은 http://www.npmjs.com 에서 검색한다. npm install ex) npm install arraylist node_modules 파일이 생성되고 arraylist 관련 기능을 사용할 수 있다. npm init npm의 ..
node js 기본 모듈 *개요 node js 기본 모듈을 공부합니다. 모듈들은 npm의 express를 기반으로 package.json에 dependencies에 모듈들을 등록합니다.(하지만 기본 모듈이므로 따른 설정은 필요없습니다.) 원하는 파일에서 require() 를 통해 호출하면 해당 기능을 사용할 수 있습니다. 강의에서는 많은 부분을 소개하였지만, 필요시에 추후 보기로하고 중요하거나 흥미롭다고 생각되는 부분들을 뽑았습니다. 1. assert deepEqual : 타입 무시하고 값이 같은지 검사한다. notDeepEqual : 타입무시하고 다른지 검사한다. deepStrictEqual : 타입 검사하고 모든 내용이 같은 객체인지 비교한다. notDeepStrictEqual : 타입 무시하고 다른 부분이 있는 객체인지 비..
JPA를 이용해 페이징 만들기 [ 개요 ] Paging은 각 회사마다, 각 프로젝트마다 환경에 맞게 구성되어 있다. 따로 페이징을 위한 클래스를 구분하기도 하고, 엔티티가 페이징 클래스를 상속받도록 만들기도 한다. 새로운 프로젝트를 짤 때 특이사항이 아니라면 다른곳에서 사용하던 것을 그대로 사용한다. 사실상 핵심 비지니스도 아니고 복사 붙여넣기를 많이하다보니 굉장히 귀찮고 번거로운 작업이다. 이 작업을 JPA Data가 제공하는 기능을 통해 간편하게 만들어 줄 수 있다. [ 목표 ] Spring JPA에서 제공하는 페이징 쿼리 기능을 시작으로 Data에서 제공하는 @PageableDefault 기능을 알아본다. 1. 순수 JPA 페이징 기능 이용하기 public List findByPage(int age, int offset, int..

반응형