본문 바로가기

전체 글192

17. Sequelize 1. Sequelizenode.js에서 mysql 등 RDBMS를 쉽게 다룰 수 있도록 도와주는 라이브러리 사이트: https://sequelize.org/  branch 추가 설치        npm i sequelize   db > database.js : import, 객체 바꿔주기       db > database.js >             // import mysql from 'mysql2'; // 삭제            import { config } from  '../config.js';            import SQ from 'sequelize'; //추가            // 삭제            // const pool = mysql.createPool({     .. 2024. 5. 8.
16. ORM 1. ORM    ORM (객체 관계 매핑, Object Relational Mapping)- 객체 지향 프로그래밍 언어에서 사용되는 객체와 관계형 데이터베이스 간의 불일치를 해결하기 위한 기술- 객체 모델과 관계형 데이터베이스의 테이블 간의 매핑을 수행하여 개발자가 SQL 쿼리 대신 객체 지향 코드를 사용할 수 있도록 함(데이터 베이스의 모든 쿼리를 객체로 만들어서 실행하는 매개체, Node.js에도 노드로 존재) ODM(객체 문서 매핑, Object Document Mapping)- NoSQL 데이터베이스와 객체 지향 프로그래밍 언어 간의 매핑을 제공하는 기술- 주로 문서 지향 데이터베이스(MongoDB)와 함께 사용(SQL 문법을 사용하지 않고 자바스크립트, 트리로 데이터를 넣는 방법)  2. Br.. 2024. 5. 3.
15. 환경변수, 웹소켓 1. 환경변수 관리  - 로컬에서 개발 또는 서버에 배포할 때 DB 연결, 포트 설정, 시크릿 키 등 안전하게 관리하기 위하 환경변수로 처리  - .env라는 파일에 환경 변수를 설정  설치               npm i dotenv    .env 파일 만들기        .env >             # DB            DB_HOST=127.0.0.1            DB_PORT=3306            DB_USER=root            DB_PASSWORD=1234            # JWT            JWT_SECRET=abcd1234%^&*            JWT_EXPIRE_SEC=172800            # BCRYPT         .. 2024. 5. 3.
14. Postman 정리, 아이디 중복체크 1.  Postman 정리    postman _ collection 추가  postman _ collection_request 추가    1-1. 모든 트윗 가져오기 Ⅴ Ⅴ Ⅴ 더보기    1-2. 해당 아이디에 대한 트윗 가져오기 Ⅴ Ⅴ Ⅴ더보기    1-3.  해당 이름에 대한 트윗 가져오기 Ⅴ Ⅴ Ⅴ더보기    1-4.  트윗 생성하기 Ⅴ Ⅴ Ⅴ더보기    1-5.   트윗 수정하기 Ⅴ Ⅴ Ⅴ더보기    1-6.   트윗 삭제하기 Ⅴ Ⅴ Ⅴ더보기  2-1. 회원가입하기 Ⅴ Ⅴ Ⅴ더보기   2-2. 로그인하기 Ⅴ Ⅴ Ⅴ   2-3. 나 확인하기Ⅴ Ⅴ Ⅴ더보기 폴더정리하기    2.  문제  회원가입시 아이디 중복체크 하기  단, 중복이라면 409를 리턴 data > auth.js 추가        .. 2024. 5. 2.
13. Authentication, bcrypt, JWT 1. Authentication(인증)  session & cookie- 쿠키   : 클라이언트 컴퓨터에 저장되는 작은 데이터 조각   : 서버로부터 전송되어 웹브라우저에 저장    :  텍스트 형식으로 주로 사용자 인증, 설정, 장바구니 등에 사용- 세션 : 웹서버 측에서 유지되는 상태 정보 : 사용자에 대한 고유한 세션ID를 통해 식별 : 서버 메모리 또는 데이터베이스에 저장 가능  2. bcrypt- 해시 함수를 사용하여 비밀번호를 안전하게 저장하는데 사용되는 암호화 라이브러리- 단방향 해시 함수로 한번 해시된 값을 다시 원래 값으로 역추적하는 것이 불가능- 솔트(salt):  해시에 고유한 솔트 값을 추가하여 보안성을 높임. 같은 비밀번호를 가진 사용자가 있더라도 서로 다른 해시값을 가짐- 작업인.. 2024. 4. 29.
12. Validate(데이터 검증) 1. Validate express-validatorExpress.js를 사용하여 웹 애플리케이션을 개발할 때 입력 데이터의 유효성을 검사하기 위한 패키지 npm i express-validator를 통해 validator 설치모듈 안의 여러 매서드를 사용하여 제한을 걸어줌 설치                    npm i express-validator   파일생성 validation_ 파라미터에 대한 GET 요청       validation.js >            import express from 'express';            import {body,param,validationResult} from 'express-validator';            const app = ex.. 2024. 4. 29.
11. 리팩토링 1. 리팩토링- 소프트웨어 개발 과정에서 코드를 재구성하여 가독성을 높이고 유지보수를 쉽게 만드는 과정- 코드의 구조를 개선하고 중복을 제거하여 더 나은 설계 패턴을 도입함으로 코드의 품질을 향상- 코드의 기능을 변경하지 않으면서 코드를 개선하는 방법 🔻 지난 코드 리펙토링해보기 router> tweets.js  에 있던 데이터 ---> data> tweets.js 에 분리하기더보기           data > tweet.js >            let tweets = [                {                    id: '1',                    text: '안녕하세요!',                    createdAt: Date.now().toStri.. 2024. 4. 26.
10. 실습: Tweet ✔ 파일을 만들어 실습해보자!더보기1. 2. 3.4. 5. 6. 7. 8. 9. 파일 생성 app.js        app.js >            import express from "express";            import morgan from "morgan";            import tweetsRouter from './router/tweets.js'             const app = express();             app.use(express, json());  // json로 연결            app.use(morgan("dev"));            app.use('/tweets', tweetsRouter);  //tweetsRouter 미들웨.. 2024. 4. 26.
09. git 설치, github 간단 연동 1. 버전관리  여러 파일을 하나의 버전으로 묶어 관리하는 것 버전관리 시스템의 종류1. 클라이언트 _서버모델  - 하나의 중앙 서버로 여러 클라이언트들이 각자 필요한 것만 가져와서 작업하고     다시 중앙서버로 보내서 통합하는 방식- SVN, CVS2. 분산 모델 - 하나의 중앙서버가 존재하지만 여러 클라이언트들은 각자의 컴퓨터 저장소에 전체 사본을 가지고 작업하는 방식 - Git  2. Git  버전 관리 시스템의 일종 Git 의 장점1. 동시에 작업하는 사람들과 소스코드를 주고받을 필요 x2. 같은 파일을 여러명이 동시에 병렬 개발이 가능3. 변동 과정을 체계적으로 관리할 수 있고, 언제든지 지난 시점의 버전으로 되돌리기 가능4. 인터넷이 연결되지 않은 곳에서도 개발을 진행할 수 있고, 중앙 서버.. 2024. 4. 25.