본문 바로가기
728x90
반응형

분류 전체보기336

4. 머스테치로 화면 구성 1. 서버 템플릿 엔진과 머스테치 1) 템플릿 엔진 : 지정된 템플릿 양식과 데이터가 합쳐져 HTML 문서를 출력하는 소프트웨어 - 서버 템플릿 엔전 : Spring+JSP, Freemarker 등 => 서버 템플릿 엔진을 이용한 화면 생성은 서버에서 Java 코드로 문자열을 만든 뒤 이 문자열을 HTML로 변환하여 브라우저로 전달 - 클라이언트 템플릿 엔진 : 리액트, vue의 view 등 => vue.js나 react.js를 이용한 SPA는 브라우저에서 화면을 생성하며, 서버에서 이미 코드가 벗어난 경우 2) 머스테치 : 수많은 언어를 지원하는 가장 심플한 템플릿 엔진 - 루비, 자바스크립트, 파이썬, PHP, 자바, 펄, Go, ASP 등 현존하는 대부분 언어를 지원하고 있음 - 자바에서 사용될 때.. 2022. 2. 28.
노드 기초 강의 (9) - 로그인 기능 with Bcrypt & 토큰 생성 with JSON WEBTOKEN 1. 로그인 기능 만들기 수선 1) 데이터베이스에서 요청한 E-mail 찾기 (.findOne() 메서드 이용하기) 2) 데이터베이스에서 요청한 E-mail이 있다면 비밀번호가 같은지 확인 (Bcrypt 이용해서 plain password와 암호화된(Hashed) 패스워드가 같은지 확인) 3) 비밀번호까지 같다면 Token을 생성 (토큰 생성을 위해서 JSON WEBTOKEN 라이브러리를 다운로드) 2. DB에서 요청한 E-mail 찾기 1) .findOne()이란 - 몽고DB 메서드로 데이터를 검색할 때 사용됨. - find()를 통해 데이터를 찾을 수 있지만, 여러 데이터 중에서 하나의 객체만 찾고 싶을 때 .findOne() 사용함 app.post('/login', (req, res) => { //.. 2022. 2. 27.
노드 기초 강의 (8) - Bcrypt로 비밀번호 암호화 1. Bcrypt : Blowfish를 기반으로 만들어진 단방향 암호화 해싱함수이며, Rainbow table 공격을 막기 위해 salt를 사용하며, 암호검사 요청이 반복될수록 cost를 늘림으로써, 무차별 대입 공격(brute-force search)를 막을 수 있음 (cost는 반복횟수로 2^n) - npm install bcrypt --save - Bcrypt 비밀번호 암호화 순서 const express = require('express') const app = express() const port = 6660 const config = require('./config/key'); const {User} = require("./models/User"); const bodyParser = requi.. 2022. 2. 27.
노드 기초 강의 (7) - 비밀 설정 정보 관리 1. 소스코드를 Gist에 업로드하면 다른 사람들이 비밀 정보들을 다 볼 수 있기 때문에, 비밀 정보들을 private하게 관리해야 됨 .gitignore : .gitignore 파일을 이용하면 파일 안에 들어있는 내용들을 Gist에 업로드 하지 않도록 관리할 수 있음 Local(Development) : 개발 모드 Deploy(Production) : 운영 모드 2. 개발 모드 private 설정 - 비밀 정보를 변수에 담아 사용 가능하며, 몽고디비의 아이디와 비밀번호가 담긴 코드를 private 하게 설정하고 싶은 경우 - config 폴더에 key.js, dev.js, prod.js 파일을 만듦 - dev.js 파일에 변수로 담아 관리하면 되며, - Heroku 사이트에서 프로그램을 활용하여 간단하.. 2022. 2. 27.
3. SpringBoot에서 JPA로 데이터베이스 활용 1. JPA 소개 - 개발자는 객체지향적으로 프로그래밍하고, JPA가 이를 관계형 데이터베이스에 맞게 SQL을 대신 생성해서 실행함. - 개발자는 항상 객체지향적으로 코드를 표현할 수 있으니 SQL에 종속적인 개발을 하지 않아도 됨 1) Spring Data JPA - JPA : 인터페이스로서 자바 표준명세서이며, 인터페이스인 JPA를 사용하기 위해서는 구현체가 필요함 ex) Hibernate, Eclipse, Link 등이 있음 - Spring Data JPA : 구현체들을 보다 쉽게 사용하고자 추상화 시킨 모듈로서, 관계는 아래와 같음. (JPA 이외에도 필터(@Filter), 인터셉터, 컨트롤러 어드바이스 등 외부 요청과 응답에 대한 전반적인 영역을 말함 - Service Layer => @Serv.. 2022. 2. 27.
노드 기초 강의 (6) - Nodemon 설치 1. Nodemon : NODE 서버를 이용하면서 코드를 변경하게 될 경우, 변경한 코드를 웹 상에서 확인하려면 서버를 껐다가 다시 켜야 변화를 감지할 수 있음 => 서버를 내리고 올리지 않아도 소스를 변경할 때 바로 감지해서 자동으로 서버를 재시작 해주는 도구 - nodemon 설치 ('npm install nodemon --save-dev') { "name": "boiler-plate", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "start": "node index.js", //노드몬 스크립트 실행을 위한 코드 "backend": "nodemon index.js",//backend는 임의로 지정한 것, 아무 이름이.. 2022. 2. 26.
노드 기초 강의 (5) - BodyParser & PostMan & 회원가입 기능 1. client와 server 통신 방법 - client : 우리가 일반적으로 사용하는 pc, 브라우저에서 행해지는 부분 네트워크로 연결된 서버로부터 정보를 제공받는 컴퓨터. 서비스를 사용하는 사용자 client는 서버 컴퓨터로부터 정보를 받아 웹 브라우저를 통해 보여지는 정보를 볼 수 있음 - server : IDE를 통해 작성한 코드 부분 클라이언트에게 네트워크를 통해 서비스를 제공하는 시스템 서버는 기획자가 제작하고자 하는 웹, 모바일 서비스에 맞는 데이터를 넣어 고객들의 요청에 맞게 전달함 - BodyParser : 클라이언트에서 정보를 입력해서 서버로 넘길 때 필요한 Dependency이며, 클라이언트에서 보내주는 자료들을 받을 수 있게 도와줌 Body데이터를 분석해서 req.body로 출력해.. 2022. 2. 26.
노드 기초 강의 (4) - SSH를 이용한 GITHUB 연결 1. Git : 컴퓨터 파일의 변경사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 분산 버전 관리 시스템 소프트웨어 개발에서 소스코드 관리에 주로 사용되지만 어떠한 집합의 파일의 변경사항을 지속적으로 추적하기 위해 사용될 수 있음 - git init => git 저장소 생성 코드 - git add . => 작업 디렉토리 상의 변경 내용을 스테이징 영역에 추가하기 위해서 사용하는 git 명령어 - git add . 를 통해 추가함 - git status => 추가된 파일 확인 - node_modules 부분은 git에 올리지 않아도 되지만, 빼지 않고 추가하여서 다시 작업했음 - npm install을 이용해서 다운받는 라이브러리인 node_modules에 쌓이는 파일 수가 많.. 2022. 2. 26.
노드 기초 강의 (3) - MongoDB Model & Schema * 회원가입시에 회원 이름, 나이 등의 정보가 데이터베이스에 들어가게 되며, 그 정보들을 관리하기 위해 유저 모델과 스키마를 만들어야 함 1. Model : Schema를 감싸주는 역할 Schema : 테이블을 디자인하기 위한 청사진으로, 각 정보에 대한 하나하나의 역할을 지정해주는 코드임 => 몽고DB는 NoSQL로 테이블이 없으며, document에 아무거나 넣어도 에러가 나지 않음 => 먼저 사용자가 작성한 스키마를 기준으로 데이터를 DB에 넣기 전에 먼저 검사하도록 함 => 스키마에 어긋난 데이터가 있으면 에러를 발생시킴 2. User Model 생성 //몽구스 모듈 가져오기 const mongoose = require('mongoose'); //몽구스 모듈로 스키마 만들기 const userSc.. 2022. 2. 26.
노드 기초 강의 (2) - MongoDB & Mongoose 연결 1. MongoDB : C++로 작성된 오픈소스 문서지향적 크로스 플랫폼 데이터베이스 => Document들이 모여서 Collection이 되고, Collection들이 모여서 Database를 이룸 Mongoose : MongoDB를 간편하게 사용할 수 있는 Object Modeling Tool이며, ODM 중 가장 유명하고 보편적으로 사용됨 *ODM(Object Document Mapping) : 객체와 문서를 1대1 매칭하며, Object는 자바스크립트의 객체이고, Document는 MongoDB의 문서를 뜻함 (MongoDB의 문서를 DB에서 조회할 때 자바스크립트 객체로 바꿔주는 역할) 2. MongoDB Cluster 생성 => mongodb 사이트 => MongoDB 가입 -> Create .. 2022. 2. 26.
728x90
반응형