Node.js13 Node.js - ORM, sequelize 1. ORM이란?2. sequelize 1. ORM이란? Object Relational Mapping, 객체-관계 매핑데이터베이스와 객체 지향 프로그래밍 언어 간의 호환되지 않는 데이터를 변환하는 프로그래밍 기법이다.객체 지향 프로그래밍은 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용한다.따라서, 객체 모델과 관계형 모델 간에 불일치가 존재하게 된다.이러한 불일치를 ORM을 통해 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결한다. 2. sequelize자바스크립트를 사용하는 ORM 시퀄라이즈는 데이터베이스의 테이블과 객체 지향 프로그램의 객체를 매핑시켜 주는 ORM 중 하나다. 사용법1. 시퀄라이즈 다운로드시퀄라이즈는 외부 라이브러리로 패키지 매니저를 통해 설치 후 .. 2024. 8. 20. Node.js - jwt(Json Web Token) 1. jwt란?2. 토큰의 유형3. 어떻게 생겼을까?4. 토큰 만들기5. 쿠키 사용? 1. jwt란? Json Web Token 권한 인증을 위해 유저의 정보를 SHA-256 해시알고리즘으로 암호화한 값으로 권한인증을 하는 토큰 기반 인증 방식기존의 권한인증은 세션 정보를 서버에 저장하여 사용자가 요청할 때 헤더에 포함된 세션을 비교하여 인증을 하는 방식이었다. 하지만 이는 세션 정보가 많아짐에 따라 서버에 부담을 줄 수 있다. 하지만 토큰은 서버가 아닌 클라이언트가 토큰을 가지고 있도록 하여 서버에 부담을 줄여줄 수 있다. 2. 토큰의 유형토큰은 사용 목적에 따라 2가지가 있다. Access Token 서버에 통신할 때 권한 인증을 위해 사용되는 토큰으로 짧은 유효시간을 갖는다. 유효시간이 짧다.. 2024. 8. 19. Node.js - bcrypt 1. bcrypt란?2. bcrypt 사용법 1. bcrypt란?Bcrypt는 브루스 슈나이어가 설계한 키(key) 방식의 대칭형 블록 암호에 기반을 둔 암호화 해시 함수다.Bcrypt는 레인보우 테이블 공격을 방지하기 위해 솔팅과 키 스트레칭을 적용한 대표적인 예다. Salting & Key Stretching단방향 암호화에 사용되는 해시 알고리즘은 동일한 문자에 대해 항상 동일 해시값을 갖는다. 따라서 특정 해시 알고리즘에 대하여 특정 문자가 어떤 해시값을 갖는지 알 수 있다.또한, 해시 함수는 본래 신속히 데이터를 검색하기 위해 탄생되었기 때문에 공격자는 매우 빠른 속도로 임의의 문자열의 해시값과 해킹할 대상의 해시값을 비교하여 대상자를 공격할 수 있다.이러한 문제를 보안하기 위해 단방향 암호화.. 2024. 7. 11. Node.js - MySQL 연결하기 1. 모듈 설치2. DB연결3. 쿼리 실행 1. 모듈 설치데이터베이스에 저장된 데이터들을 JavaScript에서 다루려면 데이터베이스와 연결해 주는 작업이 필요하다.Node.js의 내장모듈 중 MySQL을 제어할 수 있는 모듈이 존재하지 않는다. npm을 사용해 MySQL2 라이브러리를 설치해 데이터베이스에 연결해 보자 모듈 설치npm init -ynpm i mysql2 MySQL 라이브러리는 1, 2가 존재하는데 2를 사용하는 이유는 무엇일까?가장 큰 이유는 promise를 지원하기 때문이다. sequelize라는 ORM에서 promise 방식을 사용하기 때문에 공식 npm에서 mysq2 사용을 권장하고 있다. 2. DB연결설치된 MySQL2를 사용해 데이터베이스와 연결해 보자.const mysql.. 2024. 7. 1. Node.js - ejs 1. ejs란?2. 사용법 1. ejs란?ejs는 Embedded JavaScript Template의 약어로 서버사이드 템플릿 엔진이다.html 파일과의 차이점은 script 태그 내부가 아닌 body 태그 내부에서 javascript 문법을 사용할 수 있다는 것. 템플릿 엔진이란?지정된 템플릿 양식과 데이터가 합쳐져 HTML 문서를 출력하는 소프트웨어다. 쉽게 말해, 웹 애플리케이션에서 동적으로 HTML 페이지를 표시하기 위한 도구 중 하나라고 보면 된다. ejs문법 : 자바스크립트의 코드가 들어가는 태그, 줄 바꿈이 생길 시 새로운 가 필요하다. 5번 반복 : 안에 들어있는 변수 값을 옮겨주는 태그 번째 실행 2. 사용법express 환경에서 ejs를 사용하는 간단한 예시를 들어보.. 2024. 6. 30. Node.js - REST란? 1. REST란?2. REST API란? 1. REST란? 자원(resource)의 표현(representation)에 의한 상태 전달Representational State Transfer의 약자로 자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고받는 모든 것을 의미한다. 자원 : 문서, 그림, 데이터 등 소프트웨어가 관리하는 모든 것 자원의 표현 : 그 자원을 표현하기 위한 이름 REST는 네트워크 상에서 Client와 Server 사이의 통신 방식 중 하나이며, 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일이다. 요청의 종류REST 방식은 서버의 데이터 처리에 따라 클라이언트가 요청을 다르게 한다.. 2024. 6. 29. 이전 1 2 3 다음