분류 전체보기 251

23/11/11 TIL __ 시퀄라이저 메소드 오류 Cannot read properties of undefined (reading 'create') , create is not a function

어제 만난 에러 ,,,, create is not a function... 이 부분을 하루종일 붙잡고 있었다. 아직 이해도가 낮은 상태에서 이유를 분석하려 하니, 시간이 더 많이 걸렸다. 🚓 접근 방법 1️⃣ 일단 콘솔로그로 어디가 문제인지 여기저기 찍어보았다. 그런데, require를 통해 가져오는 UsersData가 undefined가 나왔다. const express = require("express"); const { UsersData } = require("../models/usersdata"); console.log(UsersData); // undefined 이상했다.. 그래서 이번에는 참조 코드와 비교를 해봤다. 비교한 코드에서는 require를 통해 가져올때, const { UsersDa..

TIL 2023.11.11

23/11/10 TIL __ 시퀄라이저 aws rds 테이블 만들기.

개인과제가 시작되었다. node와 express, sequelize를 이용해 회원 로그인을 해야 이용할 수 있는 쇼핑몰 서버를 구축하는 과제였다. sequelize에 대한 강의는 들었지만 감이 잘 잡히지 않았다. 처음에는 좀 많이 막막했는데, 할 수 있는 것부터 차근 차근 해보기로 했다. 🚗 Sequelize 쿼리문을 작성하지 않고도, 자바스크립트 문법으로 데이터베이스를 조작 할 수 있어 편리한 도구이다. # express, sequelize, mysql2 라이브러리를 설치합니다. npm install express sequelize mysql2 # sequelize-cli, nodemon 라이브러리를 DevDependency로 설치합니다. npm install -D sequelize-cli nodemo..

TIL 2023.11.10

23/11/09 TIL __ AWS RDS 와 DDL, DML, DCL, ORM + Sequelize

데이터 베이스 관련 용어들이 정리가 되지 않아 정리해 둔다. 👻 MySQL 로컬 환경에서 설치 해 사용하는 방법 도커 위에서 mysql 띄워서 사용한다. aws 에서 rds 을 빌려서 사용한다. 🚌 아마존에서 말하는 RDS Amazon RDS를 사용하면 클라우드에서 관계형 데이터베이스를 간편하게 설정, 운영 및 확장할 수 있습니다. 하드웨어 프로비저닝, 데이터베이스 설정, 패치 및 백업과 같은 시간 소모적인 관리 작업을 자동화하면서, 비용 효율적이고 크기 조정 가능한 용량을 제공합니다. 사용자가 애플리케이션에 집중해 애플리케이션에 필요한 빠른 성능, 고가용성, 보안 및 호환성을 제공할 수 있도록 지원합니다. 🚓 DDL (data definition language) 데이터를 정의할 때 사용하는 언어 테이..

TIL 2023.11.09

23/11/08 TIL __ JWT 와 Token

jwt에 대해 궁금했는데 이번에 정리해 본다. 🚗 JWT 인터넷 표준으로 자리잡은 규격이다. JSON 형태의 데이터를 안전하게 교환해 사용할 수 있도록 하낟. header / payload / signature 형식으로 데이터를 가지고 있다( 개미 생각하면 기억하기 쉽다.) 따라서 JWT 형식으로 변환된 데이터는 항상 2개의 . 이 포함된 데이터야 한다. 쿠키에 jwt 토큰을 넣고, 쿠키와 함께 jwt 토큰을 전달하는 방식이다. 서버에 요청 후 클라이언트가 응답 받을때, 쿠키와 함께 JWT를 전달받는다. 이때 req 부분에 자동으로 쿠키를 할당하는 방법을 많이 사용한다. ⚽️ header signature 에서 어떤 암호화를 사용해 생성된 데이터인지 표현한다. ⚾️ payload 개발자가 원하는 데이터를..

TIL 2023.11.09

23/11/07 TIL __ 쿠키와 세션

오늘은 쿠키와 세션에 대해 적어보려 한다. 우리가 사이트 로그인 하면 새로고침 해도 로그아웃이 되지 않는 현상 !! 이거는 클라이언트가 서버에 누구인지를 지속적으로 알려주고 있기 때문이다. 🧐 일단 클라이언트와 서버의 상황을 보자. 1. 클라이언트가 쿠키를 갖지 않은 상태에서 서버에게 요청을 하면, 2. 서버는 쿠키와 함께 응답을 유저에게 해준다. 3. 유저가 서버에게 다시 쿠키랑 같이!! 요청을 하고, 4. 서버는 클라이언트에게 다시 응답한다. 🚗 쿠키 - 사용자의 상태를 저장하기 위해 사용 - 사용자를 추정할만한 정보를 쿠키로 만듬. - 개인정보 유출 방지를 위해 쿠키를 주기적으로 지울것을 권고한다. - 쿠키는 name=billy;year=2021 처럼 문자열 형식으로 존재. 여러개일 경우 ; 로 구..

TIL 2023.11.07

23/11/06 TIL __ 포트를 죽여도 계속 살아나요(address already in use)

👻 문제 ubuntu 환경에서 서버 배포를 위해 터미널에서 작업하고 있었다. 잘 되어서 배포를 진행하고 있었는데, 갑자기 address already in use 라는 에러를 만났다. 포트를 이미 사용하고 있다는 말이였다. 🧐 시도 & 해결 🤠 1️⃣ 강의에서 알려주셧던 lsof -i : 포트번호 를 시도했다. 지난번에 잘 사용했던 경험이 있었기에 긴장하지 않고 차분하게 대응했다. 그런데 ... 먹지 않았다. 아래의 메세지가 출력되었다. lsof: unacceptable port specification in: -i : 이상하다고 생각했지만, 검색을 다시 해봤다. 아래의 방법으로도 포트를 검색할 수 있었다. lsof -nP -iTCP:포트번호 | grep LISTEN 이렇게 하니 잘 들어왔는데 문제는 아..

TIL 2023.11.06

23/11/05 TIL __ app.use(express.urlencoded({extended: true}));

오늘은 node로 서버를 만들때 사용하는 app.use(express.urlencoded({extended:true})) 가 무엇인지 알아보려고 한다. 일단 사용하라고 해서 사용했는데, 이게 어떤 역할을 하는건지 모르고 있어서 찾아보고 정리하게 되었다. 🚗 body-parser 미들웨어 란? 본문에 있는 데이터를 해석해서 req.body 객체로 만들어 주는 미들웨어. 보통 form 데이터 혹은 ajax 요청의 데이터를 처리한다. 이전에는 따로 설치했지만, express 설치하면 내장되기 때문에 따로 설치 안해도 된다. 생김새는 이렇다. app.use(express.json()); //json 파일을 변환 app.use(express.urlencoded({extended:true})); //url에 있는 ..

TIL 2023.11.05

23/11/04 TIL __ AWS 배포하기 총정리2

👻 상황 개인과제를 진행하면서 aws로 배포를 하게 되었다. 강의에서 알려준 것 처럼 배포를 진행하는데 서버 연결에 계속 실패하는 현상을 만났다. 생각해 보니 db연결을 위한 아이디, 비번, 데이터베이스 이름 과 같은 정보들을 .env에 넣어두고, 그 파일을 gitignore에 넣어두었기 때문에, 우분투 환경에서 git clone으로 가져왔을 경우 해당 데이터가 안들어 왔다? 라는 의심을 가지고 ls 명령어로 확인해 보니 역시 안들어 왔다. 🤠 시도한 방법 맥 터미널에서 우분투로 연결 및 배포 작업을 진행했기 때문에 동일한 환경에서 작업했다. 서버를 연결하려고 하는 폴더로 cd 이동 후에, 아래의 명령어로 env 파일 생성후 수정을 해보자. touch .env vi .env 이렇게 입력 하면 뭔가를 입력..

TIL 2023.11.04

23/11/03 TIL __ mongodb 아틀라스 db.collection 안되는 이유 ...

🧐 상황 개인과제가 시작되었다. express를 사용해서 crud 기능을 구현하는 건데, mongoDB 클라우드로 연결하는 방법을 사용해야 했다. 연결 틀을 줘서 거기서 뭔갈 작업해서 연결해야 하는데, 연결되었다는 콘솔은 찍히지만, 데이터가 들어가고 나오고 이런 작업들이 진행되지 않았다. 분명 공식문서에도, 다른 글들에도 db.collection().insertOne() 뭐 이런식으로 사용하라고 나와있는데... 계속 db를 찾을수 없다느니, 정의되지 않았다느니.... ㅠㅠㅠㅠ 도대체 왜 이러는 건지 이해할 수 없었다...😹 ESM 방식이랑 commonjs 방식으로 나뉘어져 있고, 클라우드 형식이랑, 설치해서 mongoDB 를 사용하는 방법으로 나누어져 있어서, 방법을 찾는데 어려웠다. 👻 해결방법 많은 ..

TIL 2023.11.03

23/11/02 TIL __ AWS 배포하기 총정리

강의에서 aws를 이용해서 배포하는 과정을 배워서 잊어버리지 않도록 기록으로 남겨둔다. 🚗 AWS 에서 EC2 Instance 생성하기 여기서 Instance 란 서버 컴퓨터 하나의 단위를 의미한다. AWS 홈페이지로 가서 로그인 후, EC2 탭을 클릭한 다음 새로운 인스턴스를 생성한다. 새로운 키페어 까지 생성하고 만든 키페어는 잘 보관해 둔다. 이번에는 방금 만든 EC2 Instance에 접속해서 뭔가를 해보자. 일단 그 전에 알아야 할 개념이 SSH 라는 개념이다. SSH Secure Shell. 다른 컴퓨터에 연결할 때에 사용되는 프로그램이다. 다른 접속 방법보다 보안이 좋아서 서버 연결시 많이 사용한다. 만든 인스턴스의 보안 탭에서 포트가 22번이 열려 있는지(기본으로 열려있도록 되어있다) 한번..

TIL 2023.11.02