til(36)
-
[Node.js_4기] TIL : Nodemailer (24/02/13)
목차 1. 문제 2. 시도 3. 결과 4. 배운점 1. 문제 회원가입 라우터는 email, password, password_check, name, interest를 포함하는 body를 post하고, email이 db에 이미 존재하는지, password와 password_check가 같은지, password의 길이가 6 이상인지 확인한 뒤 이메일을 bcrypt를 사용해 암호화한 뒤 email, (암호화된)password, name, interest를 저장하는 것으로 구현하였다. 2. 시도 1. 설치 npm i nodemailer 2. google 계정 준비 [NodeJS] nodemailer로 이메일 보내기 (tistory.com) 해당 링크의 [2단계 인증 해결 방법] 부분을 참고하였다. 2단계 인증이..
2024.02.13 -
[Node.js_4기] TIL : 뉴스피드 프로젝트 (24/02/07)
목차 1. 문제 2. 시도 3. 결과 4. 배운점 1. 문제 숙련주차 2 팀 프로젝트로 뉴스피드 프로젝트를 진행하게 되었습니다. 뉴스 피드 : 내 게시물을 포함한 모든 게시물을 볼 수 있는 공간 → 블로그, 커뮤니티, SNS 모두 될 수 있다. 팀원들과 팀원 카드를 확인해보면서 관심사에 대해 말하다 당근마켓의 동네생활 란을 모티브로 프로젝트를 진행해보면 어떻겠냐는 이야기를 하게 되었고, 이를 프로젝트 목표로 잡게 되었습니다. 2. 시도 프로젝트 명 : 우(리동네) 동(아리) 소개 한 줄 정리 : 관심사를 기반으로 동아리를 만들어 소통하는 프로젝트 내용 : interest를 공유하는 사람들과 community를 만들어 게시글을 작성하고, 게시글에 댓글과 좋아요로 반응하는 게시판 프로젝트 입니다. 프로젝트 ..
2024.02.08 -
[Node.js_4기] TIL - 개인과제 정렬기능 리팩토링(24/02/05)
목차 1. 문제 2. 시도 3. 결과 4. 배운점 1. 문제 개인과제가 끝나고, 과제 해설 영상을 통한 그로우업 시간을 가지고 있습니다.(주말은 쉬었습니다.) router.get('/resumes', async (req, res, next) => { try { //validation & path handler const { orderKey, orderValue } = req.query; let orderBy = { createdAt: 'desc' }; if (orderKey && orderValue) { const validOrderValues = ['asc', 'desc']; if (validOrderValues.includes(orderValue.toLowerCase())) { orderBy[orde..
2024.02.05 -
[Node.js_4기] node숙련주차 개인과제 (24/02/02)
목차 1. 문제 2. 시도 3. 결과 4. 배운점 1. 문제 더보기 웹 프레임워크 Node.js의 대표적인 웹 프레임워크인 Express를 이용합니다. 패키지 매니저 yarn을 이용합니다. ES6 부터 도입 된 모듈 시스템(ESModule, type: "module")을 이용합니다. 데이터베이스 숙련 주차 강의 후반에서 다룬 MySQL을 사용합니다. 직접 설치하지 않고, Cloud 서비스인 AWS RDS를 이용합니다. ORM(Object Relational Mapping) MySQL의 데이터를 쉽게 읽고 쓰게 해주는 Prisma를 사용합니다. 프로젝트 목표 : RDB(MySQL) 데이터 모델링(feat.prisma), JWT, Express MiddleWare를 이용한 인증 로직 구현 API 명세서를 작..
2024.02.02 -
[Node.js_4기] Today_I_Learn : Prisma ORM (24/01/31)
목차 1. 학습 내용 2. 내용 정리 3. 예제 4. 생각 정리 1. 학습 내용 Prisma ORM을 사용하기 전에는 데이터베이스에 SQL(Structured Query Language)을 이용하여 직접 쿼리(Query)를 요청하는 Raw Query를 사용하였다. Raw Query는 엄청나게 긴 쿼리를 수행하거나 트랜잭션을 직접적으로 관리하는 등 데이터베이스가 지원하는 대다수의 기능을 SQL만으로 간편하게 사용할 수 있는 장점을 가지지만, DB에 수정이 가해졌을 경우 영향을 받는 코드 모두에 바뀐 부분을 반영하는 수정이 필요하게 되며 복잡한 프로젝트일수록 이 수정에 시간이 소요된다는 단점을 가지고 있다. 또, 사용자가 전달한 데이터를 데이터베이스에 직접 요청하게 되므로 사용자가 악의적인 쿼리로 서버에 접..
2024.01.31 -
[Node.js_4기] Today_I_Learn : 트랜잭션 (24/01/30)
목차 1. 학습 내용 2. 내용 정리 1. 학습 내용 - 학습 목표 - 1. 트랜잭션(Transaction)의 개념에 대해 알아봅니다. 2. 트랜잭션의 특징 (ACID)에 대해 알아봅니다. 2. 내용 정리 1. 트랜잭션의 개념 1) 트랜잭션이란 무엇인가. 데이터베이스 관리 시스템 또는 유사한 시스템에서 상호작용의 단위이다.(by.wiki) 데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위. 트랜잭션(Transaction)은 작업의 완전성을 보장하기 위해 사용되는 개념. (작업 단위를 하나의 쿼리에 종속하는 것이 아닌, 여러 쿼리를 묶어 하나의 작업단위로 처리하는 작업을 뜻한다.) 2) 트랜잭션을 사용해야 하는 이유 트랜잭션은 부분 업데이트같은 상황을 방지하기 위해 도입되었다. (ex : A에서 ..
2024.01.30