node.js 8

NestJS Lifecycle (생명주기) 개념

🤷‍♂️ 본론에 앞서 Nest JS 개념?Nest JS는 Node JS 기반으로 한 서버 어플리케이션 프레임워크 입니다. 자바스크립트는 상당히 오랫동안 Express 기반으로 서버 어플리케이션 개발에서 압도적인 점유율을 차지한다.많이 사용하는 이유중에 빠르게 서버 구축과 API 구성할 수 있다는 장점이 있다. Express가 경량화된 프레임워크여서 핵심적인 기능과 빠르게 서버를 구성해서 API 구축하는데 큰 문제가 없지만 서비스 규모가 확장되고 볼륨이 커지는 프로젝트에서 불편함이 많다. 이런 문제를 해결하기 위해서 Nest JS 프레임워크가 등장하며 기업용 어플리케이션을 개발하고 내장하고 있는 플러그인을 통해서 쉽게 확장도 할 수 있다. OOP(객체 지향 프로그래밍), DI(의존성 주입), AOP(과점..

Nest.js 2024.05.07

개발자라면 알아야할 NVM 개념 & 설치 & 사용법

🤷‍♂️ NVM이란? NVM? Node Version Manager node.js 개발을 하다보면 한번쯤은 들어봤던 용어 NVM은 설명하자면 Node.js의 버전을 관리하는 도구이다. 왜 NVM을 사용해야 하는 이유? 회사에서 협업, 프로젝트를 진행하다보면 다양한 라이브러리, 프레임워크, 개발툴의 버전 호환 문제를 겪는다. 이러한 버전 호환문제를 해결하기 위해서 node.js 버전을 관리해주는 도구 NVM 필요하다. ex: Next.js 14 버전은 node.js 버전 18.17.4 이상부터 사용이 가능하다. 18.17.4 아래 버전이 Next.js 14 버전을 install or create 하면 오류가 발생하므로 node 버전을 업그레이드 해야한다. 이런 예시같은 버전 호환 문제가 발생할경수 NVM을..

GraphQL Express Apollo-Server Mysql 서버 구축

GraphQL은 클라이언트가 서버로부터 효율적으로 데이터를 가져오는 것에 대해 흥미를 느껴서 GraphQL 활용해봤다. 프로젝트: Express와 GraphQL를 활용해서 RestfulAPI & GraphQL API 구축 학습: GraphQL 런닝커브가 있으며 Apollo-Server, schema, resolver 개념이 필요하다. GraphQL 구현 소스: Github Source ☝ 구현 소스를 보실수 있습니다. https://github.com/yoogukhyeon/graphql-express-server GitHub - yoogukhyeon/graphql-express-server Contribute to yoogukhyeon/graphql-express-server development by ..

[Typescript] 적용 Node.js 사용하기

🤳 TypeScript Global 설치 npm install -g typescript Typescript 글로벌 설치 🤳 Npm 설치 npm init -y -y 기본설치값 🤳 Typescript 필요한 모듈 설치 npm install ts-node typescript nodemon @types/node @types/express --save-dev 🐱‍👓 Typescript setting & options tsc --init 생성시 tsconfig.json 생성됨 { "compilerOptions": { "lib": [ "es5", "es6" ], "target": "es5", "module": "commonjs", "moduleResolution": "node", "outDir": "./build",..

업무 자동화 node-schedule

비즈니스 업무 자동화를 위해서 스케줄링을 돌려서 로직을 실행할수있는 node_schedule 입니다. 자바스크립트에서 제공하는 setInterval을 사용하면 특정 시간마다 함수를 실행시킬수 있습니다. 하지만 실행시켜야하는 시간이 복잡해지고 비즈니즈 처리를 해야될경우 스케줄러를 활용하는것이 좋습니다. Cron 표기법 입니다 숙지하고 있으면 좋습니다. * * * * * * ┬ ┬ ┬ ┬ ┬ ┬ │ │ │ │ │ │ │ │ │ │ │ └ day of week (0 - 7) (0 or 7 is Sun) │ │ │ │ └───── month (1 - 12) │ │ │ └────────── day of month (1 - 31) │ │ └─────────────── hour (0 - 23) │ └─────────..

Bcrypt를 활용해서 비밀번호를 암호화 하기

비밀번호 암호화 하는 이유? 사용자의 비밀번호를 데이터베이스에 저장할 때 비밀번호를 그대로 저장하게 되면 매우 위험하다. 만약 데이터베이스가 해커들에게 털리면 사용자의 개인정보 & 비밀번호가 그대로 노출되기 때문이다. 따라서 사용자들의 비밀번호를 해싱 알고리즘을 통해서 안전하게 데이터베이스에 저장하는이유다. 그래서 Bcrypt 사용하는 이유다. Bcrypt란? 웹 혹은 앱등등 개발을 할때 보안은 가장 기본적으로 수행되어야 할 요소입니다. 비밀번호를 그대로 DB에 저장을 한다면 해킹당할 위험이 있습니다. 이를 방지하고자 Bcrypt모듈을 활용합니다. Bcrypt는 단방향 해시 함수를 이용한 모듈로써 salt 라는 개념을 사용합니다. Salt라는 값과 해시된 비밀번호를 합쳐서 DB에 암호화 하여 저장을 합니..

req 객체와 res 객체 , res.send 와 res.json 대해서

node.js express 프레임워크를 사용하면 기본적인 res객체 , req객체 , express()함수에 대해서 헷갈리거나 어려움을 느낄때가 있습니다 그래서 Express 공식 홈페이지를 참고하여 정리를 해봤습니다. req 객체 req.body : POST 정보를 가집니다. 파싱을 위해서 body-parser와 같은 패키지가 필요합니다. req.query : GET정보를 가집니다. 즉 , URL로 전송된 쿼리 스트링 파라미터를 담고 있습니다. req.params : 내가 이름 붙인 라우트 파라미터 정보를 가집니다 req.headers : HTTP의 Header 정보를 가집니다 res 객체 res.send : 다양한 유형의 응답을 전송(클라한테 보낼때 사용) res.redirect : 브라우저 리다이..

NODE.JS ORM 과 Sequelize & Sequelize-cli 대해서

저희 회사에 프로젝트는 NODE.JS ORM방식을 활용하고 있기 때문에 저는 첨으로 ORM을 공부하게 되었습니다. ORM란? ORM(Object Relational Mappings)이란 프로그램 상의 객체(Object)와 DB의 테이블(Relation)이 일대일 대응하는 관계를 맺는것(Mappings)을 의미합니다. ORM을 이용하면 query가 아닌 메서드로서 데이터를 조작할 수 있다는 것이 큰 장점입니다. 예를 들면 USER 테이블을 조회 하기 위해서 MySql SELECT * FROM 테이블명 이렇게 USER 테이블을 조회할수 있다 하지만 ORM 활용하면 ORM USER맵핑 테이블에 USER.findAll() 로 USER테이블을 조회할수있다 이렇게 ORM에서는 테이블과 맵핑되는 객체의 메서드를 통해..

카테고리 없음 2021.09.25