본문 바로가기
반응형

학습146

mocha, should, supertest 사용하기 * 개요 자바에서 TDD를 했던 경험을 바탕으로, node js 에서 어떻게 사용하는지 궁금해서 수강합니다. mocha를 이용하며, describe - it 구조를 활용합니다. 이전에 자바에서 사용했던 describe - it 작성 방식이 여기서 차용된 것임을 알았습니다. 이미 한번 자바에서 해보고나니 이해하는데 크게 어려움은 없었습니다. * mocha, should, supertest란? 테스트 수트 : 테스트 환경으로 모카에서 describe()로 구현합니다. 테스트 케이스 : 실제 테스트를 말하며 모카에서는 it()로 구현합니다. '노드 assert 말고 서드파티 라이브러리를 사용하라' 슈드는 단위테스트에서 사용하는 검증 라이브러리입니다. 가독성 높은 테스트 코드를 만들 수 있습니다. 단위테스트는 .. 2022. 1. 15.
강의 후기 윤재성님은 다양한 언어로 다양한 강의를 찍어두어서 알고 있던 분이었습니다. 처음에는 안드로이드 앱 개발을 수강하였기 때문에, 스타일을 잘 알고 있었습니다. 특히, 기본내용을 찬찬히 잘 설명해주시고 템포를 조절해주셔서 좋았습니다. 장점은, 각 파트의 개념을 간단히 소개하고 코드로 실습을 합니다. 입문서에 가깝기 때문에 nodejs를 잘 몰라도 아무런 무리없이 쉽게 들을 수 있습니다. 목소리 톤과 중간중간 코드 확대 등이 초보자가 따라가기에 편하고 안정적입니다. 모듈 설정하기, 라우팅 설정, html 랜더링, db연동까지 큰 틀 개념을 빠른 시간 내에 습득할 수 있었습니다. 아쉬운 점은, 강의 자체가 오래되었다보니, 코드환경이 vs code가 아닌 nodeeclipse입니다. javascript는 무조건 v.. 2022. 1. 15.
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"); }.. 2022. 1. 15.
node js 파라미터, 쿠키, 세션 이용하기 * 개요 앞 글에서 express를 이용해 nodejs의 라우팅, ejs 랜더링 개념을 배우고 실습했다. 이번 시간에는 단순 get요청이 아닌 파라미터를 이용한 POST 요청, 쿠키, 세션을 사용한다. 파라미터를 주고받는 방법을 중점적으로 살펴본다. * form 객체에서 파라미터 이용한 POST 요청하기 express에서 파라미터는 request 객체를 통해 파라미터 추출이 가능하다. get 방식의 경우 query라는 객체안에 모두 들어 있다. post 방식의 경우 bodyParser 모듈을 이용해야 파라미터를 추출할 수 있다. POST 요청은 GET과 다르게 body에 데이터를 담아서 이동한다. noe에서는 body를 이용할 수 있도록 body-parser 모듈을 새로 추가해야 한다. dependenc.. 2022. 1. 15.
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의 .. 2022. 1. 15.
node js 기본 모듈 *개요 node js 기본 모듈을 공부합니다. 모듈들은 npm의 express를 기반으로 package.json에 dependencies에 모듈들을 등록합니다.(하지만 기본 모듈이므로 따른 설정은 필요없습니다.) 원하는 파일에서 require() 를 통해 호출하면 해당 기능을 사용할 수 있습니다. 강의에서는 많은 부분을 소개하였지만, 필요시에 추후 보기로하고 중요하거나 흥미롭다고 생각되는 부분들을 뽑았습니다. 1. assert deepEqual : 타입 무시하고 값이 같은지 검사한다. notDeepEqual : 타입무시하고 다른지 검사한다. deepStrictEqual : 타입 검사하고 모든 내용이 같은 객체인지 비교한다. notDeepStrictEqual : 타입 무시하고 다른 부분이 있는 객체인지 비.. 2022. 1. 15.
JPA를 이용해 페이징 만들기 [ 개요 ] Paging은 각 회사마다, 각 프로젝트마다 환경에 맞게 구성되어 있다. 따로 페이징을 위한 클래스를 구분하기도 하고, 엔티티가 페이징 클래스를 상속받도록 만들기도 한다. 새로운 프로젝트를 짤 때 특이사항이 아니라면 다른곳에서 사용하던 것을 그대로 사용한다. 사실상 핵심 비지니스도 아니고 복사 붙여넣기를 많이하다보니 굉장히 귀찮고 번거로운 작업이다. 이 작업을 JPA Data가 제공하는 기능을 통해 간편하게 만들어 줄 수 있다. [ 목표 ] Spring JPA에서 제공하는 페이징 쿼리 기능을 시작으로 Data에서 제공하는 @PageableDefault 기능을 알아본다. 1. 순수 JPA 페이징 기능 이용하기 public List findByPage(int age, int offset, int.. 2021. 12. 15.
JPA를 이용해 자동으로 시간, 작성자 추가하기 개요 DB 테이블에는 생성시간, 수정시간, 작성자, 수정자의 정보가 공통적으로 많이 사용됩니다. 이 공통 칼럼은 핵심 칼럼들은 아니지만 매번 일일이 만들어주어야 합니다. 따라서, 굉장히 번거롭고 귀찮은 일인데, JPA에서는 자동으로 INSERT, UPDATE를 수행하도록 방법을 만들어 두었습니다. 자동 설정을 위한 Spring Data의 핵심은 "Audit"입니다. Spring Data는 Audit이라는 용어를 사용하여 어노테이션과 클래스들을 만들 수 있습니다. Audit의 사전 뜻은 "감시하다"입니다. 예를 들어, 경찰은 차량 검문소에서 음주여부 측정을 하고 음주가 적발되면 벌금을 부과합니다. 마찬가지로 JPA의 조회, 생성, 수정, 삭제 등을 감시하다가 저장을 했을 때, 생성시간, 수정시간을 추가합니.. 2021. 12. 14.
다형성 쿼리 다형성 쿼리를 날리는 JPQL과 SQL을 비교한다. *목차 1. IN절 사용 2. TREAT 사용 1. IN절 사용 String query = "select i from Item i where type(i) IN (Book, Album)"; List items = em.createQuery(query, Item.class).getResultList(); //JPQL select i from Item i where type(i) in (Book, Album); //SQL select i from Item i where i.DTYPE in (Book, Album); Hibernate: /* select i from Item i where type(i) IN ( Book, Album ) */ select it.. 2021. 10. 7.
반응형