본문 바로가기

전체 글

(11)
독학으로 Node.js 공부하기[7] : GitHub에 파일 올리기 간단하게 git : 버전 관리 시스템 github: git을 저장하는 코드저장소 이다. 0. github 접속 후 Repositories생성 1. git 설치 https://git-scm.com/download/win 윈도우 cmd 를열어 아래 코드를 설정 git config --global user.name "본인이름" git config --global user.email "본인 이메일 주소" git config --list로 name,email 설정이 되었다는 걸 확인 할 수 있다. 2. git init vscode에 terminal을 bash로 변경 후 git init명령어시 .git 폴더 생성 ./ ../ .env app.js libs/ node_modules/ package.json packa..
독학으로 Node.js 공부하기[6]: 장바구니, 결제작성 (2) 저번엔 장바구니페이지, 결제페이지를 만들고 우편번호서비스 API를 통해 주소까지 적용해 보았다. 이번엔 아임포트를 사용해 결제를 하고 이메일로 구매조회, admin이 구매상태를 조작할 수 있게 구현 해 보았다. 필요정보 아임포트 https://developers.portone.io/docs/ko/readme 에서 결제 요청하기까지의 내용을 따라 구현한다. async await : 비동기 처리 패턴 비동기: 병렬적인 일처리 즉, 요청이 들어오면 해당 요청에 의한 작업이 끝나지 않아도 새로운 요청을 받는다. 그리고 작업이 끝났다는 이벤트가 오면 해당 요청을 처리한다. 콜백 함수와 프로미스의 단점을 보완하고 개발자가 읽기 좋은 코드를 작성할 수 있게 도와주는 코드 ex) function logName() { ..
독학으로 Node.js 공부하기[6]: 장바구니,결제작성 (1) 저번엔 상품의 수정, 삭제와 댓글 생성, 삭제를 구현하고 상품을 페이징하는 걸 구현해 보았다. 이번엔 구매 할 상품을 장바구니로 담고 장바구니페이지, 결제페이지를 만들어 장바구니 목록을 보여주고 우편번호서비스 API를 통해 주소까지 적용해 보았다. 필요정보 MySql 의 JOIN ex)SELECT ~ FROM [TABLE_A] LEFT JOIN [TABLE_B] ON TABLE_A.KEY = TABLE_B.KEY (A.KEY와 B.KEY가 같은 결과의 데이터를 연결) 우편번호서비스 (Daum) https://postcode.map.daum.net/guide ▼전체코드 폴더 routes products.js var express = require('express'); var router = express...
독학으로 Node.js 공부하기[5]: 메인페이지,게시글작성(2) 저번엔 상품작성 후 매인 페이지에 표시하기까지 구현해 보았다. 이번엔 작성한 상품의 수정, 삭제와 댓글 생성, 삭제를 구현하고 상품을 페이징하는 걸 구현해 보았다. 필요정보 페이징 :* MySql 문법에 LIMIT를 이용한다. ex) SELECT * FROM [TABLE NAME] LIMIT 0, 4; (테이블 순서대로 1번째부터 4개를 보여줌) SELECT * FROM [TABLE NAME] LIMIT 3, 4; (테이블 순서대로 4번째부터 4개를 보여줌) ▼전체코드 폴더 routes admin.js var express = require('express'); var router = express.Router(); var db = require('../libs/mysql'); var adminRequi..
독학으로 Node.js 공부하기[5]: 메인페이지,게시글작성(1) 저번에 passport로 로그인 인증을 구현해 보았다. 이번엔 본격적으로 상품을 관리하기위해 메인페이지,헤더페이지,관리자페이지를 구현하고 작성하기까지 해 보았다. 필요정보 1.CSRF CSRF(Cross Site Request Forgery): 사이트 간 요청 위조 사용자가 아닌 공격자가 사용자의 계정으로 서버에 게시글을 업로드 하는, 쿠키를 통한 인증방식에서 사용되는 공격기법이다. CSRF Token 사용방법 - get 요청시, 서버에서 csrf token과 csrf secret을 클라이언트에 보낸다 - post 요청시 header에 csrf token을 담고 csrf secret이 담긴 cookie를 동봉하면, 서버에서 decode한 csrf token이 쿠키의 csrf secret와 일치하는지 확인..
독학으로 Node.js 공부하기[4]:로그인 ,회원가입(2) 저번에 MySql을 이용해 로그인, 회원가입시 데이터를 입, 출력하는 프로그램을 구현해 보았다. 이번엔 Session, Passport를 통해 회원가입,로그인을해 보고 회원가입 시 유효성 검사를 구현 해 보았다. 필요정보 Cookie: 클라이언트에 저장되는 '키-벨류'타입의 데이터이다. 이걸 통해 로그인 유지, 장바구니 확인 등을 할 수 있다. 1.Session: Cookie를 통해 로그인할 경우 중요정보(비밀번호)를 쉽게 탈취당할 수 있기 때문에 Session을 사용해 쿠키에 Session id만 클라이언트에 저장하고 중요정보는 Session Store(서버)에 저장한다. 2.Passport : 클라이언트가 서버에 요청할 자격이 있는지 인증할 때 사용한다. 즉 로그인 절차를 확실히 하기 위해 사용한다...
독학으로 Node.js 공부하기[4]: 로그인 ,회원가입(1) MySql을 이용해 간단하게 회원가입시 정보를 저장하고 로그인시 MySql를 확인해 데이터를 가져오는 프로그램 ▼모듈설치 npm init //기본 패키지 설치, 엔터키 누르기만 하면 완료 npm install express --save //express(Node.js 웹 애플리케이션 프레임워크)사용하기위해 npm install nodemon --save //서버를 좀더 편하게 관리하기위해 nodemon 설치 npm install ejs --save //view 파일을 ejs로 사용하기위해 npm install path --save //경로 설정 하기위해 npm install body-parser --save //post로 들어오는 정보를 받기위해 npm install mysql --save // db를 ..
독학으로 Node.js 공부하기[3]: ERD설계 ERD란 Entity Relationship Diagram (개체-관계 모델) 테이블간의 관계를 설명해주는 다이어그램 데이터베이스 구조를 한눈에 알아보기 위해서 쓰인다. 기본요소로 Entity, Attribute, Relationship 가 있다 #예시 ERD 클라우드로 작성가능 https://www.erdcloud.com/ Entity(개체) Entity는 정의 가능한 정보의 실체이며 사람, 사물, 객체 혹은 개념을 의미한다. Entity는 사람, 장소, 사건(이벤트), 오브젝트가 될 수도 있다.. 데이터베이스를 설계할때 테이블이 Entity로 정의된다. 모든 Entity는 하나 이상의 식별자를 지녀야 하며 식별자가 없다면 Entity라고 할 수 없다. 예시에서 회원, 배송정보, 주문이 Entity이다..