node.js
-
sequelize Op 연산자node.js 2023. 7. 16. 23:30
Op 연산자 where 객체 안에서 사용되는 Symbol 타입의 연산자이다. 해당 연산자를 사용하여 복잡한 비교 연산을 지원해준다. 일반연산자 // Logical operator [Op.and]: [{ a: 5 }, { b: 6 }], // (a = 5) && (b = 6) 그리고 [Op.or]: [{ a: 5 }, { b: 6 }], // (a = 5) || (b = 6) 또는 // Basics [Op.eq]: 3, // = 3 [Op.ne]: 20, // != 20 같지않음 [Op.is]: null, // IS NULL [Op.not]: true, // IS NOT TRUE [Op.or]: [5, 6], // (someAttribute = 5) OR (someAttribute = 6) // Using..
-
환경변수 dotenvnode.js 2023. 7. 16. 21:44
환경변수란? 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는 동적인 값들의 모임 즉, 이름 그 자체로 어떤 변수값을 가지는 것을 말한다. os에서 자식프로세스들을 생성할때, 참조하는 변수라고 생각하면 된다. 깃허브와 같은 오픈소스에 코드를 공개할 경우 민감한 정보를 환경변수로 올리는 것이다. (db의 id,password 나 미들웨어의 비밀키 등등) 사용법 라이브러리의 dotenv 를 받는다 $ npm i dotenv .env 파일을 만든후 공개하기 싫은 정보를 변수로 지정해 준다. MYSQL_USERNAME=아이디 MYSQL_PASSWORD=비밀번호 MYSQL_HOST=호스트주소 MYSQL_DATABASE=db이름 JWT_SECRET_KET=비밀키 process.env.내가 지정한 변수명 requi..
-
객체 지향에 대해node.js 2023. 7. 6. 23:11
객체 지향은 소프트웨어의 핵심을 기능이 아닌 객체로 삼으며 “누가 어떠한 일을 할 것인가?”에 초점을 맞춥니다. 책임과 권한을 가진 객체들이 서로 메시지를 주고받으며 협력해서 필요한 기능을 수행하도록 시스템을 개발하는 것을 객체 지향이라고 합니다. 크고 복잡한 시스템을 효과적으로 분해하고 구성할 수 있고, 손쉽게 이해하고 효율적으로 다룰 수 있게 도와주는 방법으로 인정받아 많은 프로그래밍 언어에 적용되어 왔고 지금은 가장 인기 있는 프로그래밍 패러다임으로 자리 잡습니다. 1. 캡슐화 (Encapsulation) 개념적이나 물리적으로 객체 내부의 세부적인 사항을 감추는 것을 캡슐화라고 부릅니다. 즉, 캡슐화를 사용하는 가장 큰 이유는 정보은닉을 목적으로 합니다. 정보은닉은 객체에 대한 중요한 정보를 외부로..
-
Access Token 과 Refresh Tokennode.js 2023. 7. 6. 09:21
Access Token Access Token은 사용자의 권한이 확인(ex: 로그인) 되었을 경우 해당 사용자를 인증하는 용도로 발급하게됩니다. 1.사용자가 Access Token을 가지고 인증을 요청할 경우 Token을 생성할 때 사용한 비밀키(Secret Key)를 가지고 인증하기 때문에, 복잡한 설계없이 코드를 구현할 수 있고, 여러 분기를 거치지 않아도 된다는 장점이 있다. 2. Access Token의 경우 Stateless(무상태) 즉, Node.js 서버가 죽었다 살아나더라도 동일한 동작을하는 방식입니다. jwt를 이용해 사용자의 인증 여부는 확인할 수 있지만 처음 발급한 사용자 본인인지 확인할 수는 없습니다 3. Access Token은 그 자체로도 사용자를 인증하는 모든 정보를 가지고 있..
-
Prettier 사용법node.js 2023. 7. 4. 14:59
prettierr 사용법 1. prettierrc.js 파일 생성 module.exports = { printWidth: 80, // 줄 바꿈 할 폭 길이 tabWidth: 2, // 탭 너비 singleQuote: true, // single 쿼테이션 사용 여부 trailingComma: 'all', // 여러 줄을 사용할 때, 후행 콤마 사용 방식 }; 등 원하는 규칙 생성 2. npm i prettier -D 로 설정한 모듈 적용 3. package.json 파일에 scripts 부분에 "prettify": "prettier --write *.js **/*.js" 붙여 넣기 (scripts 부분에 붙여 넣을때 ,(콤마)빼먹지 않기) prettify 실행시 원하는 프리티어 규칙대로 코드가 바뀜 4. ..
-
JWT 토큰 인증이란 ? (Cookie, Session, Token)node.js 2023. 6. 21. 00:01
인증 방식의 종류 서버가 클라이언트 인증을 확인하는 대표적인 방식으로 Cookie, Session, Token 3가지 방식이 있다. 우선 이 3가지의 방식의 특징과 장단점을 알아보자. Cookie 인증 Key-Value 형식의 문자열 덩어리 이다. 클라이언트는 서버에 요청(Request)을 보낼 때 자신이 보유하고 있는 쿠키를 자동으로 서버에 전달하게 됩니다. 클라이언트가 전달하는 쿠키 정보는 Request header에 포함되어 서버에 전달되게 됩니다. Cookie 인증 방식 1. 클라이언트(브라우저)가 서버에 요청을 보낸다. 2. 서버는 클라이언트의 요청에 대한 응답을 작성할 때, 클라이언트 측에 저장하고 싶은 정보를 응답헤더의 Set-cookie에 담는다. 3. 이후 해당 클라이언트는 요청을 보낼 ..
-
모듈(Module)이란?node.js 2023. 6. 13. 15:35
Module 이란? 자바스크립트 파일 단위로 분리된 코드를 의미합니다. 1.모듈(Module)은 하나의 모듈에서 다른 모듈을 호출하여 사용할 수 있습니다. 2.모듈(Module)은 그 자체로도 하나의 프로그램이면서 다른 프로그램의 부품으로도 사용할 수 있습니다. 3.보통 1개의 파일이 1개의 모듈이 됩니다. Module 은 왜 필요한가? 1.코드 베이스를 분리할 수 있으며, 이를 통해 코드를 구조적으로 관리할 수 있습니다. -> 유지 보수가 용이해 진다는 뜻 2.코드를 재사용 가능하게 만들어줍니다. 즉, 모듈화(module) 됩니다. 3.모듈의 인터페이스(Interface)만 노출 시킬 수 있습니다. 즉, 인터페이스 이외에는 모든 정보를 은닉하는 정보은닉(information hiding)을 구현 할 수..