JavaScript (94) 썸네일형 리스트형 Node.js 심화 1주차_3 Node.js 심화 1주차_3 응집도 ↑ 결합도 ↓ /** OCP Before **/ function calculator(nums, option) { let result = 0; for (const num of nums) { if (option === "add") result += num; // option이 add일 경우 덧셈 연산을 합니다. else if (option === "sub") result -= num; // option이 sub일 경우 뺄셈 연산을 합니다. // 새로운 연산(기능)을 추가 하기 위해서는 함수 내부에서 코드 수정이 필요합니다. } return result; } console.log(calculator([2, 3, 5], "add")); // 10 console.log(cal.. Node.js 심화 1주차_2 Node.js 심화 1주차_2 선행지식 📌 TCP 서버와 클라이언트 간 신뢰성 있는 데이터 송수신을 위해 만들어진 프로토콜 연결 지향성 데이터를 나눠서 보낼 수 있어 재조립 가능, 누락된 데이터를 다시 요청해 완전한 데이터를 만듦 서버/클라이언트 간 연결이 된 경우 양뱡향으로 데이터를 주고 받을 수 있음 데이터의 순서가 뒤바뀌는 일이 없어 안정적이며 신뢰성이 높음 UDP에 비해 비용이 크고 전송속도가 느림 📌 UDP 비연결성 데이터를 제대로 받았는지 확인되지 않아 신뢰도가 낮음 데이터를 순차적으로 보내도 다른 순서로 전달 될 수 있음 데이터를 보내기만 하고 별다른 처리를 하지 않음 TCP에 비해 비용이 적고 전송속도가 빠름. 소켓이란? 📌 Socket 네트워크에서 데이터를 송수신하기 위해 반드시 거쳐야 .. Node 숙련 개인과제 ER다이어그램 Node 숙련 개인과제 ER다이어그램 DrawSQL - 🔥 Database schema diagrams DrawSQL - 🔥 Database schema diagrams Simple, beautiful database diagram editor for developers to create, collaborate and visualize their entity relationship diagrams. drawsql.app 📌 좋아요 Table을 따로 생성하는 이유? 데이터 분석하기 용이하기 때문에, 혹시 좋아요한 사람의 user 데이터만 조회해주세요! Client의 요구가 있을 수 있기 때문. 📌 PostId, CommentId 동시에 존재 가능? 게시글이랑 댓글에 좋아요를 각각 달 수 있다고 가정한다면,.. Node.js 심화 1주차_1 Node.js 심화 1주차_1 코드 서식 정리 코드 서식 관리 도구 : Prettier 📌 프리티어 설치(Terminal) npm i prettier -D 코드 작성을 조금 더 편리하게 해주는 도구이므로 devDependency 옵션 📄.prettierrc.js module.exports = { "printWidth": 80, // 줄 바꿈 할 폭 길이 "tabWidth": 2, // 탭 너비 "singleQuote": true, // single 쿼테이션 사용 여부 "trailingComma": "all", // 여러 줄을 사용할 때, 후행 콤마 사용 방식 "jsxBracketSameLine": false, // JSX의 마지막 `>`를 다음 줄로 내릴지 여부 } 권장하는 규칙 module.export.. Node.js 숙련 주차 개인 과제_3 Node.js 숙련 주차 개인 과제_3 📌 게시글 API 📌 Comment 모델 생성(Terminal) npx sequelize model:generate --name Comment --attributes comment:string,userId:integer,postId:integer Id → commentId 수정 userId를 외래키로 user모델과 연결 📄 /models/comment.js 'use strict'; const { Model } = require('sequelize'); module.exports = (sequelize, DataTypes) => { class Comment extends Model { /** * Helper method for defining associations... Node.js 숙련 주차 개인 과제_2 Node.js 숙련 주차 개인 과제_2 📌 게시글 API 📌 Post 모델 생성(Terminal) npx sequelize model:generate --name Post --attributes title:string,content:string,userId:integer Id → postId 수정 userId를 외래키로 user모델과 연결 📄 /models/post.js 'use strict'; const { Model } = require('sequelize'); module.exports = (sequelize, DataTypes) => { class Post extends Model { /** * Helper method for defining associations. * This method is.. Node.js 숙련 주차 개인 과제_1 Node.js 숙련 주차 개인 과제_1 📌 회원가입 & 로그인 API 📌 Terminal npm init -y npm i sequelize mysql2 -S npm i sequelize-cli -D npx sequelize init 📄 /config/config.json "development": { "username": "root", "password": "비밀번호", "database": "database_development", "host": "엔드포인트", "dialect": "mysql" }, 📌 기존 User 테이블 삭제 쿼리문 DROP TABLE `database_development`.`Users` DROP TABLE `database_development`.`SequelizeMeta` 📌.. Node.js 숙련 1주차_6 Node.js 숙련 1주차_6 Sequelize 📌 Terminal npm init -y npm i sequelize mysql2 -S npm i sequelize-cli -D npx sequelize init 📄 /config/config.json "development": { "username": "root", "password": "비밀번호", "database": "database_development", "host": "엔드포인트", "dialect": "mysql" }, 📌 데이터베이스 생성하기 npx sequelize db:create 📌 User 모델 생성 npx sequelize model:generate --name User --attributes email:string,nickname.. Node.js 숙련 1주차_5 Node.js 숙련 1주차_5 MySQL 📌 RDS생성 📌 RDS 설정 📌 인바운드 규칙 편집 📌 mysql install 📌 mysql 연결 host : 연결/보안 > 엔드포인트 user : root 비밀번호 : 비밀번호 입력 express_db 생성된걸 확인할 수 있다. SQL문 📄 데이터베이스 생성 CREATE DATABASE NodeJS; 📄 테이블 생성 CREATE TABLE IF NOT EXISTS courses ( id bigint(5) NOT NULL AUTO_INCREMENT, title varchar(255) NOT NULL, tutor varchar(255) NOT NULL, PRIMARY KEY (id) ); 📄 데이터 삽입 INSERT INTO courses (title, tuto.. Node.js 숙련 1주차_4 Node.js 숙련 1주차_4 로그인 & JWT 구현 📄 app.js const jwt = require("jsonwebtoken"); // 로그인 router.post("/auth", async(req,res) => { const {email, password} = req.body; const user = await User.findOne({email}); // 사용자가 존재하지 않거나, // 입력받은 password와 사용자의 password가 다를 때 에러메세지가 발생해야 한다. if(!user || password !== user.password){ res.status(400).json({ errorMessage: "사용자가 존재하지 않거나, 사용자의 password와 입력받은 password가 .. 이전 1 ··· 3 4 5 6 7 8 9 10 다음