백앤드/Node.js 15

[포스코x코딩온] 웹개발자 입문 과정 7주차 | Socket.IO 정의 및 적용

1.Socket.IO Socket.IO는 공식 문서의 정의에 따르면 (https://socket.io/docs/v4/#http-long-polling-fallback) 클라이언트와 서버 간의 짧은 대기시간, 양방향 및 이벤트 기반 통신을 가능하게 하는 라이브러리로, WebSocket 프로토콜 위에 구축되었으며, HTTP 긴 폴링 또는 자동 재연결에 대한 폴백과 같은 추가 보장을 제공한다고 한다. 즉, 클라이언트-서버 양방향연결을 가능하게하는 라이브러리라고 생각하면 된다. WebSocket 프로토콜 위에 구축되었다고 했는데, 이 WebSocket은 무엇일까? WebSocket은 기존의 단방향 메세지 교환 방식보다 쉽게 상호작용이 가능한 웹페이지를 만들기 위해서 클라이언트(웹)-서버간 양방향 메시지 통신을 ..

백앤드/Node.js 2023.04.18

[포스코x코딩온] 웹개발자 입문 과정 7주차 | Session

1.Session 이란? 웹 !서버! 에 저장되는 쿠키로, 사용자가 웹 브라우저에 접속하고 종료할 때 까지 상태를 유지시킨다. 브라우저 단위로 관리된다. (크롬에서 생성된 세션ID ≠ 웨일에서 생성된 세션ID) 예시 - 로그인 유지 npm 문서를 읽어보면 (https://www.npmjs.com/package/express-session) 세션 데이터는 쿠키 자체에 저장되지 않고 sessionID만 쿠키에 저장된다고 한다. 세션 데이터는 서버측에 저장된다. 사용자 컴퓨터(로컬)에 저장되던 쿠키와 다르게 서버에 저장되므로, 비교적 보안이 필요한 데이터는 쿠키보다 세션에 저장한다. 그리고 페이지별 어떤 정보를 공유하고 싶을 때도 유용하게 사용될 수 있다. 서버가 종료되거나 유효기간이 지나면 세션이 사라진다...

백앤드/Node.js 2023.04.16

[포스코x코딩온] 웹개발자 입문 과정 7주차 | Cookie

1.Cookie란? 웹 브라우저(클라이언트)에 저장되는 키와 값이 들어있는 작은 데이터 파일로, 이름, 값, 만료일, 경로 정보로 구성되어 있다. - 쿠키 확인 방법: 개발자 도구 > Application > 쿠키 가. 필요성 및 사용 예시 웹서버는 접속한 클라이언트가 누군지 매번 확인해야하는 문제가 있다. 이를 해결하기 위해 쿠키나 세션을 이용해서 클라이언트의 정보를 유지시킨다. 예시 로그인 상태 유지 오늘 그만 보기 체크 -> 더이상 창 안띄움 나.동작 방식 다.설치 방법 npm install cookie-parser 라.사용 방법 app.js const express = require("express"); const app = express(); const PORT = 8000; app.set("v..

백앤드/Node.js 2023.04.12

[포스코x코딩온] 웹개발자 입문 과정 6주차 | Sequelize

1.Sequelize란? ORM 라이브러리 중 하나로, 객체 지향 패러다임을 이용해서 관계형 데이터 베이스 (RDB)의 데이터를 조작한다. *ORM: Object Relational Mapping (자바스크립트 구문 -> sql 로 변환하는 역할을 한다.) 따라서 sql문을 대체한다고 생각하면 된다. Sequelize는 많은 MySQL을 포함한 많은 RDBMS를 지원하고, Promise 기반이므로 비동기 처리가 쉽다. 2.Sequelize 설치 방법 #1.sequelize 설치 npm install sequelize sequelize-cli mysql2 # * sequelize: sequelize 패키지 # * sequelize-cli: sequelize 명령어를 사용해 데이터베이스 작업을 할 수 있는 ..

백앤드/Node.js 2023.04.10

[포스코x코딩온] 웹개발자 입문 과정 6주차 | MySQL 서버 설치, pm2

1.MySQL 서버 설치 방법 가.설치 #1.서버 접속 ssh root@주소 #2.업데이트 apt-get update #3.설치 apt-get install mysql-server #4.mysql 접속 mysql -u root -p 나. 계정 만들기 서버에도 프로젝트와 동일한 mysql 계정을 만들어줘야한다. #1.프로젝트와 동일한 계정 생성하기 CREATE USER '사용자이름'@'%' IDENTIFIED WITH mysql_native_password BY '비밀번호'; #2.user 계정에 모든 권한 부여 GRANT ALL PRIVILEGES ON *.* TO '사용자이름'@'%' WITH GRANT OPTION; #3.현재 사용중인 mysql 캐시 지우고 새로운 설정 적용 FLUSH PRIVILE..

백앤드/Node.js 2023.04.10

[포스코x코딩온] 웹개발자 입문 과정 6주차 | MVC MySQL 연동

1.Node.js -MySQL 연결 이전까지의 MVC 포스팅에서는 MySQL을 연동하지 않았다. 2023.04.05 - [백앤드/Node.js] - [포스코x코딩온] 웹개발자 입문 과정 6주차 | MVC [포스코x코딩온] 웹개발자 입문 과정 6주차 | MVC 1.MVC란? 한마디로 소프트 웨어 디자인 패턴이다. *디자인 패턴 : 상황에 따라 자주 쓰이는 설계 방법을 정리한 코딩 방법론 Model View Controller의 약자이다. 가. MVC를 이용한 웹프레임 워크 종류 MVC를 jayoung977.tistory.com 이번 포스팅 부터는 MySQL을 연동하여 데이터 베이스에서 데이터를 가져온다. 먼저 MySQL을 연동을 위해서는 프로젝트 파일에서 MySQL패키지를 설치해야한다. 가. MySQL패키..

백앤드/Node.js 2023.04.08

[포스코x코딩온] 웹개발자 입문 과정 6주차 | MVC 실습 - 여러 유저 정보 선언 후 로그인 성공 여부 판단하기

데이터 형식(model/User.js) exports.users = `apple//1234//사과사과 banana//4321//바나나나 happy//qwer234//해피해피`; 컨트롤러 코드(controller/Cuser.js) 내 코드 코드 비교 exports.pactice2 = (req, res) => { const userDatas = User.users; exist_user_arr = []; exist_user_id = []; for (array of userDatas.split("\n")) { console.log(array.split("//")); exist_user_arr.push(array.split("//")); exist_user_id.push(array.split("//")[0]); ..

백앤드/Node.js 2023.04.06

[포스코x코딩온] 웹개발자 입문 과정 6주차 | MVC

1.MVC란? 한마디로 소프트 웨어 디자인 패턴이다. *디자인 패턴 : 상황에 따라 자주 쓰이는 설계 방법을 정리한 코딩 방법론 Model View Controller의 약자이다. 가. MVC를 이용한 웹프레임 워크 종류 MVC를 이용한 웹프레임 워크에는 - Spring (Java) - Django (Python) - Express (JavaScript) - Ruby on Rails (Ruby) 등이 있다. 나. MVC 장단점 장점 - 패턴을 구분해 개발해서 유지보수에 용이하고 유연성 및 확장성이 높으며 협업에 용이하다. 단점 - 완전한 의존성 분리가 어려우며, 설계 단계가 복잡하고 시간이 오래걸린다. 또한 클래스(단위)가 많아진다는 단점이 있다. 다. MVC 흐름 - Model: 데이터를 처리하는 부분..

백앤드/Node.js 2023.04.05