객체와 테이블 매핑 @Entity @Entity가 붙은 클래스를 엔티티라 부른다. 테이블과 매핑할 클래스에 붙는다. 기본 생성자(파라미터가 없는 생성자)는 필수다. @Table 엔티티와 매핑할 테이블을 지정 ex) Table(name="MEMBER") 생략하면 엔티티 이름을 테이블 이름으로 사용한다. 기본 키 매핑 직접 할당 전략 : 기본 키를 애플리케이션에서 직접 할당한다. @Id @Column(name = "Id") private String id; Board board = new Board(); board.setId("id1");//기본 키 직접 할당 em.persist(board); 자동 생성 전략 : 대리 키 사용 방식 IDENTITY : 기본 키 생성을 데이터베이스에 위임 ex) MySQL @..
Entity Manager Factory Entity Manager를 만드는 공장 만드는 비용이 크기 때문에 애플리케이션 전체에서 하나만 만들어서 공유하도록 설계 Entity Manager 만드는 비용이 거의 들지 않는다. 여러 스레드가 동시에 접근하면 동시성 문제가 발생하므로 스레드 간에 절대 공유하면 안 된다. 영속성 컨텍스트(persistence context) Entity Manager를 생성할 때 하나 만들어진다. Entity Manager를 통해 영속성 컨텍스트에 접근하고 관리한다. 영속성 컨텍스트는 Entity를 식별자 값으로 구분하기 때문에 식별자 값이 반드시 있어야 한다. transaction을 commit하는 순간 영속성 컨텍스트에 저장된 entity를 데이터베이스에 반영한다.(flus..
1. Jade Template으로 form 화면 만들기 doctype html html(lang="en") head meta(charset="UTF-8") body form(action='/form_receiver' method='post') P input(type='text' name='title') P textarea(name='description') P input(type='submit') 2. "/form" 과 "/form_receiver" 라우터 작성 const express = require('express'); const app = express(); const port = 3000; //POST 방식으로 전송한 데이터 사용 app.use(express.urlencoded({ extende..

Querystring이란? http://localhost:3000/topic?id=1 위 주소의 전체를 URL이라 하고 '?' 뒤에 나오는 'id=1' 과 같은 부분을 쿼리스트링이라 한다. Querystring 이용 방법 app.get('/topic', (req, res) => { res.send(req.query.id);// 1 }); req.query를 이용해서 값을 얻는다. "/topic?id=1"에서 id와 "req.query.id"에서 id가 일치해야 값을 읽을 수 있다. 소스코드 app.get('/topic', (req, res) => { var topics = [ 'Javascript is ...', 'Nodejs is ...', 'Express is ...' ]; var output = `..
1. 설치 npm install jade --save 2. 애플리케이션 설정 const express = require('express'); const app = express(); const port = 3000; app.locals.pretty = true;//html 태그 줄바꿈 설정 app.set('view engine', 'jade');//express와 jade 라이브러리 연결 app.set('views', './views'); //template이 위치할 폴더 설정. app.get('/template', (req, res) => { //temp.jade 파일을 렌더링하고 객체 안에 time, _title 변수값을 전달 res.render('temp', {time:Date(), _title:'..
정적 페이지 const express = require('express'); const app = express(); const port = 3000; //public 디렉토리 생성 필요. //static.html(정적 파일)이 위치할 디렉토리 지정. app.use(express.static('public')); app.listen(port, () => { console.log(`Example app listening at http://localhost:${port}`); }); Hello, Static! coding coding coding coding coding 동적 페이지 const express = require('express'); const app = express(); const port ..
- Single Thread로 동작 - 비동기 처리는 Nodejs의 특징 중 하나 sync_async.js var fs = require('fs'); //Sync 동기 console.log(1); var data = fs.readFileSync('data.txt', {encoding:'utf8'}); console.log(data); //Async 비동기 console.log(2); fs.readFile('data.txt', {encoding:'utf8'}, function(err, data){ console.log(3); console.log(data); }); console.log(4); data.txt Hello Sync And Async 실행 결과 1 Hello Sync And Async 2 4 ..
1. Underscore 객체 생성 var _ = require('underscore'); 2. 배열 생성 var arr = [3,6,9,1,12]; 3. 배열 값 호출 예제 console.log(arr[0]); //배열의 첫번째 값 호출 //결과: 3 console.log(_.first(arr)); //underscore를 이용해서 배열의 첫번째 값 호출 //결과: 3 console.log(arr[arr.length - 1]); //배열의 마지막 값 호출 //결과: 12 console.log(_.last(arr)); //underscore를 이용해서 배열의 마지막 값 호출 //결과: 12 참고 www.inflearn.com/course/nodejs-%EA%B0%95%EC%A2%8C-%EC%83%9D%E..
1. cmd(터미널)에서 프로젝트 폴더로 이동 2. 프로젝트 폴더를 npm package로 지정(package.json 생성) npm init // 명령어 입력 후 환경설정 // name // version // description // entry point // test command // git respository // keywords // author // license // Is this ok? (yes) - 예제로 UnderscoreJS 설치 3. UnderscoreJS 홈페이지에서 설치법 확인 4. cmd(터미널)에 설치 명령어 입력(node_modules 폴더가 생성되고 하위에 underscore 폴더가 생성됨) npm install underscore --save * '--save' 를..
1. npm.com에서 'uglify-js' 검색 후 설치법 확인 2. cmd(터미널)에서 'npm install uglify-js -g' 또는 'npm install uglify-js' 입력 * '-g'가 붙으면 컴퓨터 전역에서 사용하는 독립적인 프로그램으로 사용, 없으면 프로젝트 내에서만 사용 3. 예제 pretty.js 코드 작성 function hello(name){ console.log('Hi,' + name); } hello('seogineer'); 4. 사용 방법 방법1 - cmd(터미널)에 pretty.js 변형 결과 바로 출력 uglifyjs pretty.js 결과1 function hello(name){console.log("Hi,"+name)}hello("seogineer"); 방법2..