본문 바로가기

가이드

NestJS 개발 시작하기(로그인 인증 개발); 7. 암호화와 해쉬 함수 NestJS 개발 시작하기(로그인 인증 개발)1. NestJS와 Spring의 비교2. NestJS CLI로 개발시작3. API개발과 Swagger4. TypeORM으로 DB연결5. Session, JWT, OAuth 차이6. jwt 인증 (1)7. 암호화와 해쉬 함수 6. 암호화와 해쉬 함수유럽에서 2016년 5월에 GDPR (General Data Protection Regulation)이 발효되면서 많은 나라에서 개인정보보호에 대한 규정을 만들고 있다. 우리나라도 2021년 2월부터는 개인정보보 보호법에 따라 특정 정보, 또는 정보의 조합이 특정 개인을 지칭할 수 있는 경우 민감정보로 규정하고 이를 보호하는 규정을 적용하고 있다. 일반적으로 회사서비스는 어느 정도 개인 정보를 담고 있을 수밖에 없어.. 더보기
NestJS 개발 시작하기(로그인 인증 개발); 6. jwt 인증 (1) NestJS 개발 시작하기(로그인 인증 개발)1. NestJS와 Spring의 비교2. NestJS CLI로 개발시작3. API개발과 Swagger4. TypeORM으로 DB연결5. Session, JWT, OAuth 차이6. jwt 인증 (1)7. 암호화와 해쉬 함수 6. @nestjs/jwta. JWT token 생성이제, JWT와 OAuth를 사용해서 인증하는 프로그램을 만들어 보자. 앞에서 본 OAuth인증절차에서 가장 먼저 해야 할 일은 id, password를 사용해서 로그인하면 Token을 생성하는 일이다. 먼저, JWT Token 패키지를  @nestjs/jwt 패키지를 설치한다. pnpm install @nestjs/jwt 설치된 @nestjs@jwt 패키지를 사용해서 OAuth를 구현하.. 더보기
NestJS 개발 시작하기(로그인 인증 개발); 5. Session, JWT, OAuth 차이 NestJS 개발 시작하기(로그인 인증 개발)1. NestJS와 Spring의 비교2. NestJS CLI로 개발시작3. API개발과 Swagger4. TypeORM으로 DB연결5. Session, JWT, OAuth 차이6. jwt 인증 (1)7. 암호화와 해쉬 함수 6. Session, JWT (JSON Web Token), OAutha. Session앞에서는 사용자가 email과 password를 사용해서 로그인을 하면 서비스의 isLogedin에 정보를 저장했다. account.service.ts의 마지막에 아래와 같이 로그인 상태를 확인하는 함수를 추가하고 ... async isLogedIn(email: string): Promise { return this.isLogedin[.. 더보기
파이썬 딥러닝 개발환경; 2. Keras 설치, MNIST 학습 테스트 파이썬 딥러닝 개발환경1. PyTorch 설치2. Keras 설치, 테스트 2. Keras 설치파이썬은 Node.js와는 달리 프로젝트별로 패키지의 설치가 분리되지 않는다. 그래서, 개발하면서 설치하는 모든 패키지는 설치되어 있는 파이썬의 모든 프로젝트에 영향을 미치게 되고 이미 설치한 패키지의 버전을 바꾸면 다른 프로젝트에도 영향을 미치게 되기 때문에 프로젝트 별로 가상환경을 만드는 것이 좋다.a. Keras 테스트를 위한 가상환경을 만들고 activate 한다.python -m venv keras_testcd keras_testScripts\activate.batb. 가상환경에 PyTorch, Keras 설치새로 만든 가상환경에 1. 에서 설치했던 PyTorch를 다시 설치하고, pip install.. 더보기
파이썬 딥러닝 개발환경; 1. PyTorch 설치 파이썬 딥러닝 개발환경1. PyTorch 설치2. Keras 설치, 테스트 대학원을 다닐 때는 ML(Machine Learning) 과정이 재미있어서 대부분 과목을 신청해서 들었는데, 막상 회사에서는 인공지능과 좋은 인연이 아니었던 것 같다. 딥러닝이 있기 전에 ANN(Artificial Neural Network)으로 시작한 프로젝트도 마지막에는 결과가 CBR(Case Based Reasoning) 보다 좋지 않아 모델을 바꿨고, 몇 년 전에는 자유변형 물체를 Detection 하고 Instance Segmentation까지 하는 요구사항에 몇 가지 딥러닝 모델을 조합해서 앙상블(Ensemble)까지 해 봤지만 원하는 만큼 결과가 깔끔하지 않았던 것 같다. 사실 지금 나온 삼성 핸드폰을 써도 그때 만든.. 더보기
NestJS 개발 시작하기(로그인 인증 개발); 4. TypeORM으로 DB연결 NestJS 개발 시작하기(로그인 인증 개발)1. NestJS와 Spring의 비교2. NestJS CLI로 개발시작3. API개발과 Swagger4. TypeORM으로 DB연결5. Session, JWT, OAuth 차이6. jwt 인증 (1)7. 암호화와 해쉬 함수 5. TypeORM앞에서 정의한 Account정보를 DB로 저장하기 위해, 가장 많이 사용하고 있는 DB인 MySQL을 사용하기로 했다. PostgreSQL이나, Node.js와 같이 사용하기 쉬운 MongoDB도 사용하는 방법은 많이 다르지 않다. MySQL과 연결하고 데이터를 저장하기 위해서는 mysql패키지를 설치하고 DB를 직접 연결하는 방법도 있지만, NestJS와 가장 많이 사용하는 방법은 TypeORM을 사용하는 방법이다. 노.. 더보기
NestJS 개발 시작하기(로그인 인증 개발); 3. API 개발과 Swagger NestJS 개발 시작하기(로그인 인증 개발)1. NestJS와 Spring의 비교2. NestJS CLI로 개발시작3. API개발과 Swagger4. TypeORM으로 DB연결5. Session, JWT, OAuth 차이6. jwt 인증 (1)7. 암호화와 해쉬 함수 4. Auth API앞에서 이번 Auth API의 개발 요구사항을 Auth는 signup, signin, signout의 3가지 API를 제공,개인 정보는 email을 userid로 동일하게 사용하고, 사용자 명, password를 제공하는 것으로 잡았으니, 이를 기준으로 하는 간단한 API를 만들어 보자.a. SwaggerAPI 개발에는 OpenAPI, Swagger패키지를 사용하면 개발하면서 만들어진 부분을 쉽게 테스트해 볼 수 있다... 더보기
NestJS 개발 시작하기(로그인 인증 개발); 2. NestJS CLI로 개발시작 NestJS 개발 시작하기(로그인 인증 개발)1. NestJS와 Spring의 비교2. NestJS CLI로 개발시작3. API개발과 Swagger4. TypeORM으로 DB연결5. Session, JWT, OAuth 차이6. jwt 인증 (1)7. 암호화와 해쉬 함수 2. NestJS CLISpring Framework을 닮은 NestJS는 Express로 만드는 Node.js프로그램에 비해 하나의 API를 만드는데 많은 노력이 필요하다. 그래서, JavaScript에서 처음 개발을 시작한 개발자라면, "이렇게까지 해야 하나?"라는 거부감을 느끼게 하는 점도 없지 않다. 하지만 Spring Framework처럼 한번 손에 익으면 NestJS가 추가설정 없이 기본으로 제공하는 AOP나 IoC가 오히려 많.. 더보기