본문 바로가기
728x90

전체 글156

[NodeJs] 로그인 사용자 정보를 JWT로 인증하기 [NodeJs] 사용자 정보를 JWT를 통해 인증하기 Json Web Token ⭐️ NodeJs로 서버를 열고 로그인을 구현하면서 사용자 인증을 하는 방법은 쿠키나 세션을 사용 하는 법 등 다양한 방법이 있는데, 최근 많이 사용하고 있는 JWT (Json Web Token)를 통해 NodeJs Express 환경에서 로그인 RestAPI를 구현하면서 토큰을 통한 사용자 인증을 예제를 통해 알아보기로 한다 ⭐️ 구동 로직 Express를 통한 로그인 Rest API 내 JWT (Json Web Token) 모듈을 이용한 사용자 인증 방식 🌈 로그인 예제 회원 가입 : 비밀번호 암호화 및 회원 정보 토큰생성하여 클라이언트에게 json 전송 (비밀번호 암호화는 bcrypt 모듈 사용, 하단 링크 참조) ht.. 2021. 8. 5.
[NodeJs] 비밀번호 해쉬 저장 하기 bcrypt [NodeJs] 사용자 비밀번호 해쉬값으로 변환하여 저장하기 Bcrypt ⭐️ NodeJs 를 통하여 로그인 기능을 구현할때 아이디와 비밀번호 등의 사용자 정보를 서버에 저장하는데 이때 비밀번호를 암호화 하지않고 그대로 저장하는 것은 범죄가 될 만큼 서버를 구성하는 프로그래머에겐 사용자의 정보를 암호화 하여 저장하는 일은 필수이다 ⭐️ 하지만 암호화라는 것을 그냥 네이티브하게 구현하기 위해서는 까다로운 면도 있고 안전성도 보장할수 없는데 이를위해 비밀번호 암호화를 간단하게 처리할수 있는 npm 모듈인 bcrypt를 소개하고자 한다 🌈 사용 예제 NodeJs (Express) 를 통한 로그인 RestfulAPI 내에서 회원가입시 사용자의 비밀번호 정보를 해싱하여 저장 로그인시 해쉬값과 입력한 비밀번호를 비.. 2021. 8. 5.
[NodeJs] Express 서버에서 손쉽게 유효성 검사하기 express-validator [NodeJs / Express] 서버에서 손쉽게 데이터 유효성 검사하기 express-validator ⭐️ 서버에 전송되는 데이터의 유효성 검사는 빠를 수록 좋다. 왜냐하면 유효하지 않은 데이터를 굳이 가공하는데 비용을 낭비할 필요가 없기 때문이다 ⭐️ 데이터 유효성 검사의 방법은 여러가지가 있지만 간단한 예로 회원가입시 회원가입 정보가 서버에 전달이 되었을때 아래의 데이터 기준에 부합하는 유효성 검사를 직접 구현 한 것과 express-validator를 사용한 두가지 예제를 통해 구현의 복잡성을 비교하기로 한다. ⭐️ 데이터 유효성 기준 아이디의 공백여부 및 최소 글자수 (3글자 이상) 최대 글자수 (20글자 미만)을 기준으로 유효성 검사를 하여 유효성 검사 기준에 부합할시 가입 성공 메시지 응답.. 2021. 8. 3.
[NodeJs] 모듈 (export, require) NodeJs 모듈 export, require 규모있는 프로젝트를 위해서는 연관된 기능들을 한 파일 내에 모듈화 하여 사용하는 게 좋다 다시말해 다른 js 파일 내 코드를 원하는 js 파일에서 사용할수 있도록 하는 것을 모듈화 한다고 한다. ⭐️ 샘플 예제 main.js에서 같은 경로에 있는 template.js에 있는 blog, url 값을 받아서 출력 [template.js] //template.js const blog = 'goodmemory'; const url = 'https://goodmemory.tistory.com'; module.exports.blog = blog; module.exports.url = url; [main.js] //main.js const template = requir.. 2021. 7. 26.
[JavaScript] Console (출력) 관련 여러 매서드 자바스크립트 / Javascript Console 관련 여러 매서드 개발 하다 보면 디버깅을 위해 Console에 해당 상태나 값 등을 출력해볼때가 많은데 이를 Console.log() 만으로 표현하기에는 약간의 부족함이 느껴진다 Console 이라는 객체에는 log 매서드 이외에도 출력 관련 메서드가 몇개 더 있는데 해당 메서드를 이용하여 프로젝트시 각 상태별 조금더 가독성 높은 출력을 시도해 보자 🌈 기본 형태 //일반 메시지 출력 console.log() //정보 메시지 출력 console.info() //경고 메시지 출력 console.warn() //에러 메시지 출력 console.error() 🌈 출력 결과 2021. 7. 26.
[TypeScript] 타입스크립트 함수 Rest Parameter (가변 인자) [타입스크립트 / TypeScript] Function Rest Parameter 🔆 타입스크립트 Rest Parameter란 ? 함수의 파라미터 개수를 가변적으로 전달 받을수 있는 기능을 수행할수 있게 파라미터에 기능을 부여하는 것 🔆 기본 형태 function 함수이름(...파라미터이름 : 타입 []):반환타입 { //기능 수행.. } 🔆 샘플 예제 function PrintResult(...Numbers:number []):void { const result = Numbers.reduce((a,b)=>a+b); console.log(result); } PrintResult(1,2,3,4,5,6,7,8,9,10); 🔆 출력 결과 55 2021. 6. 24.
[TypeScript] 타입스크립트 함수 Optional Parameter [TypeScript / 타입스크립트] Optional Parameter 🍔 Optional Parameter란? 함수내에 인자를 전달 하지 않아도 주어진 함수의 기능을 수행하게 하기위해 인자에 따로 옵션을 부여하는 방식 🍔 기본 형태 //파라미터 이름 뒤에 ?를 붙이면 //인수가 전달되지 않더라도 함수의 기능을 수행한다 function 함수이름 (파라미터1:타입, 파라미터2?:타입) :반환타입 { //함수 기능... } 🍔 샘플 예제 function PrintInfo(name:string,age?:string):void { age = age ?? '' console.log(name,age); } PrintInfo('goodmemory'); 🍔 출력 결과 goodmemory 2021. 6. 24.
[TypeScript] readonly를 통해 일관성 있는 코드 작성하기 [타입스크립트 / TypeScript] readonly 를 통해 일관성 있는 코드 작성하기 ⭐️ readonly란 ? 함수에 전달되는 배열을 변경할수 없게하여 코드의 일관성을 유지할수 있는 키워드이다 ⭐️ 기본 형태 function 함수(파라미터1 : 파라미터 타입[]):반환타입 { //함수기능 } ⭐️ 샘플 예제 function sum(...arr:readonly number[]):number { return arr.reduce((a,b)=>a+b); } console.log(sum(1,2,3,4,5)); ⭐️ 출력 결과 15 2021. 6. 23.
[Javascript ES6] 자바스크립트 배열 복사하기 & 합치기 & 요소 추가하기 [자바스크립트] Javascript 배열 복사 / 합치기 / 요소 추가하기 🌈 기본 형태 //복사하기 const newArray = [...oldArray]; //합치기 const resultArray = [...FirstArr,...SecondArr]; //복사하기 + 요소 추가 const copyArr = [...arr,요소]; 🌈 샘플 예제 : 복사하기 const oldArr = [1,2,3]; const newArr = [...oldArr]; console.log(newArr); 💡 출력 결과 [1,2,3] 🌈 샘플 예제 : 합치기 const firstArr = [1,2,3]; const secondArr = [4,5,6]; const resultArr = [...firstArr,...second.. 2021. 6. 23.
[Javascript / ES6] 객체 키 이름으로 직접 접근하기 {key1,key2} = object [자바스크립트 / Javascript] ES6 객체 내 키 이름으로 직접 접근하기 ES6 새로 추가된 문법으로 기존에 접근 방식에 업그레이드 된 방식으로 모듈을 import할때 자주 접했던 문법일 것이다 🌈 기본 형태 const object = { key1,key2 } //원래 키이름으로 접근 원할시 const {key1, key2} = object; //다른 이름으로 접근 원할시 const {key1:newKey1, key2:newKey2} = object; 🌈 샘플 예제 const person = { name : 'goodmemory', age : 10 }; const {name, age} = person; console.log(name,age); 🌈 출력 결과 goodmemory 10 2021. 6. 23.
728x90