인파

You Can Become A

늦게 시작해도 누구든지 노력하면 개발자가 될수 있어요 !

공부한 내용을 정리합니다
Node.js/Pug

[PUG] 📚 퍼그 문법 총정리 - 한눈에 마스터하기

Pug 태그 문법 Pug와 HTML 문법 구성을 서로 비교해가며 익혀보자. 기본 태그 입력 Script / Style 태그 안에 다른 언어 (js, css)를 쓰는 특별한 태그는 반드시 뒤에 점. 을 찍어주어야 인식된다. 태그 속성 입력 id / class 속성 입력 div 같은건 생략이 가능하다 Attributes(속성) 입력 1. 속성 하나 넣기 2. 속성 여러개 넣기 3. 속성에 자바스크립트 매핑 4. Boolean 속성 처리 boolean속성은 true일 때만 표시 텍스트 넣기 엘리먼트 다음에 한칸 띄고 내용을 적으면 된다. 유의 할점은, 태그 쓰고 한칸 스페이스 띄면 바로 평문 처리되니 조심하자 긴 문장을 입력하려면 pip | 을 쓰면 된다. 인라인 태그(inline Tags) 인라인 태그 처리..

category_image
인파_
2022.10.05
(0)
Node.js/Node Package

[NODE] 📚 Sharp 모듈 사용법 - 이미지 리사이징 / 워터마크 넣기

Sharp 모듈 노드 진영에는 많은 이미지 리사이징 패키지들이 있었지만, 끝까지 살아남은 모듈이 shap 이다. 이미지 리사이징 동작 자체가 cpu와 메모리를 잡아먹는 주범이라, 가끔 out of memory로 node가 죽는 경우가 있기 때문이다. 그런 관점에서 sharp 모듈은 리사이징 속도도 빠르며 메모리도 다른 동종 모듈 대비 많이 잡아 먹지 않는다. Sharp 사용법 아래 공식 문서 홈페이지에 들어가보면 옵션에 대해 아주 잘 정리되어있다. sharp - High performance Node.js image processing sharp.pixelplumbing.com > npm install sharp sharp 모듈 설치시 주의사항 ⚠️ sharp는 OS의 바이너리를 이용하기 때문에 윈도우,..

category_image
인파_
2022.08.15
(0)
Node.js/Node

📚 require vs import 문법 비교 (CommonJS vs ES6)

require vs import 문법 자바스크립트 개발을 하다보면 모듈을 불러오는 문법 두가지 ( require / exports ) 와 ( import / export ) 키워드를 접하게 되는데, 이 둘은 비슷하면서도 달라 가끔 자바스크립트 개발하는데 있어 혼동을 준다. 둘다 외부의 파일이나 라이브러리의 코드를 불러온다는 같은 목적을 가지고 있지만, 전혀 다른 문법 구조를 지니고 있다. ( require / exports ) 는 NodeJS에서 사용되고 있는 CommonJS 키워드이고 Ruby 언어 스타일과 비슷하다라고 볼수 있다. ( import / export ) 는 ES6(ES2015)에서 새롭게 도입된 키워드로서 Java나 Python 언어 방식과 비슷하다. 예를 들어, 아래 2줄의 코드는 기본..

category_image
인파_
2022.08.10
(0)
Node.js/Sequelize

[ORM] 📚 시퀄라이즈 - 콘솔에 쿼리 로그 끄기

콘솔에 쿼리 로그 비활성화 sequelize 메소드로 데이터베이스와 통신할때 기본적으로 다음과 같이 콘솔에 쿼리 로그가 뜨게 된다. ORM 매핑이 잘되었나 안되었나 디버깅하는 용도로써는 괜찮지만, 데이터 탈취나 로그 파일 용량 절약을 위해서 쿼리 로그는 개발모드일 때에만 콘솔에 찍히는게 좋다. 쿼리 로그를 끄는 방법은 다음과 같다. 시퀄라이즈 데이터베이스 연결 옵션을 조정하는 config.js 파일에 logging 옵션을 넣으면 된다. module.exports = { development: { username: 'test', password: 123123, database: 'nodesns', host: '127.0.0.1', dialect: 'mysql', }, production: { usernam..

category_image
인파_
2022.07.30
(0)
Node.js/Passport

[NODE] 📚 Passport - deserializeUser에서 req 객체 사용하기

Passport.js에서 req 객체 사용하는 방법 메소드 내에서 req, res 객체를 사용하기 위해서는 express의 app.use() 혹은 app.get() ..등 라우터에서 콜백(미들웨어)으로 받아 사용하여야 한다. const app = express(); app.use((req, res, next) => { // ... }); 하지만 passport의 serializeUser() 와 deserializeUser() 는 라우터에서 사용되는 메소드가 아니기 때문에 req 객체를 받아오기 힘들다. 만일 passport 전략(strategy)에서 req 요청 객체가 불가피하게 필요할 경우 막막해질 수 밖에 없다. 다행히도 최근 업데이트 버젼에서는, 다음과 같이 함수 아규먼트에 req 를 첫번째 인자로..

category_image
인파_
2022.07.19
(0)
Node.js/Sequelize

[ORM] 📚 시퀄라이즈 - 모델 INDEX / FULLTEXT 설정하기

Sequelize 인덱스 설정하기 시퀄라이즈 모델의 테이블 옵션 정하는 객체 블록에 indexes 로 배열을 선언해주면 된다. const Sequelize = require('sequelize'); module.exports = class User extends Sequelize.Model { //* 테이블 필드 설정 static init(sequelize) { return super.init( { //& 시퀄라이즈는 id 자동 생성 (auto_increament + Primary 인덱스) // id : { ... } email: { type: Sequelize.STRING(40), allowNull: true, unique: true, // 유니크 보조 인덱스 생성 }, nick: { type: Seq..

category_image
인파_
2022.07.19
(0)
Node.js/Sequelize

[ORM] 📚 시퀄라이즈 - where절에 배열 사용

Sequelize where in array 연속적인 데이터 (1,2,3,4)를 where절에서 다룰경우가 있을 경우, sql문은 보통 in 문법을 이용한다. select * from posts where id in (1,2,3,4) -- 1 or 2 or 3 or 4 시퀄라이즈에서도 sql의 in문을 다음과 같이 Op 연산자를 통해 공식 지원한다. const { Op } = require("sequelize"); const data = [1,2,3,4]; Post.findAll({ where: { id: {[Op.in]: data} // not일 경우 id: {[Op.notin]: [1,2,3,4]} } }); 하지만 다음과 같이 직관적으로 짧고 간단하게 사용할수 있다. const { Op } = re..

category_image
인파_
2022.07.17
(0)
Node.js/Node Package

[NODE] 📚 NVM 모듈 사용법 - 노드 버전 스위칭

NVM (Node.js Version Manager) 모듈 개발 환경에 따라 Node.js의 버전을 변경해야 하는 상황이 한 번쯤은 꼭 온다. 협업을 할 때, 또는 다양한 프로젝트를 동시에 진행해야 할 때 다양한 라이브러리 / 프레임워크 / 개발툴의 버전 호환 문제를 겪기 때문이다. 이런 환경에서 그때마다 Node.js를 재설치 및 삭제하는 방법으로는 한계가 있고 불편할뿐더러 잡아먹는 시간도 아깝다. 이런 상황에서 Node.js 버전을 상황에 따라 변경해 가면서 사용하게끔 도와주는 것이 NVM이다. NVM 은 Node Version Manager로써 Node.js의 도구이며, 상황에 따라 버전을 변경해 가면서 사용하는 것을 말한다. 일반 소프트웨어 설치하듯이 exe 파일을 받아 일일히 클릭하여 업데이트 ..

category_image
인파_
2022.07.08
(0)
Node.js/Nunjucks

[Nunjucks] 📚 넌적스 Macro 사용법 - 템플릿 함수

넌적스 macro PUG의 mixin과 javaScript의 function(){}과 비슷한 개념으로 템플릿을 모듈화 하여 관리하기 쉽게 만드는 기능입니다. {% macro 매크로명 %} {% endmacro %} forms.html {% macro field(name, value='', type='text') %} {% endmacro %} {% macro label(text) %} {{ text }} {% endmacro %} {% from "forms.html" import field, label%} {{ label('Username') }} {{ field('user') }} {{ label('Password') }} {{ field('pass', type='password') }} link.ht..

category_image
인파_
2022.07.03
(0)
Node.js/Node Package

[NODE] 📚 Color-Hash 모듈 - 랜덤 색상코드

Color-Hash 모듈 구현하는데 있어 랜덤 숫자가 필요하듯이, 만일 랜덤 색깔(color)가 필요하다면 이 모듈을 쓰면 된다. Color-Hash 모듈 사용법 color-hash Generate color based on the given string (using HSL color space and SHA256).. Latest version: 2.0.1, last published: a year ago. Start using color-hash in your project by running `npm i color-hash`. There are 91 other projects in the npm registry using col www.npmjs.com > npm install color-hash ..

category_image
인파_
2022.06.26
(0)
Node.js/Node Package

[NODE] 📚 Winston 모듈 사용법 - 서버 로그 관리

Winston 모듈 어떤 서버든지 실제로 서비스를 운영하려면 로그를 꼼꼼히 남기는 것은 필수이다. Log는 에러를 파악할 수 있는 열쇠이기 때문에 서버를 운영한다고 하면 로그 시스템을 구축해서 시스템을 운영해야 한다. 예를들어 어떤 사람이, 어떤 이벤트, 어떤 데이터를 요청했는지, 어떤 동작을 하다가, 어떤 트랜잭션을 돌리다가, 어떤 에러가 났는지 이를 정밀 관리할수 있다. Node.js에서는 log를 효율적으로 관리할 수 있게 도와주는 모듈인 winston.js가 았다. 윈스톤(winston.js)는 실제 서버를 운영할 때 console.log 와 console.error 를 대체하기 위한 모듈이다. console.log 와 console.error 도 개발 중에는 편리하게 콘솔 로그로 서버의 상황을 ..

category_image
인파_
2022.06.14
(0)
Node.js/Node Package

[NODE] 📚 PM2 모듈 사용법 - 클러스터 / 무중단 서비스

Node.js 싱글 스레드 Node.js는 Chrome의 V8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임(runtime)으로 ‘Event Driven’, ‘Non-Blocking I/O’ 모델을 사용해 가볍고 성능이 뛰어나 높은 평가를 받고 있다. Node.js는 기본적으로 싱글 스레드(thread)로 돌아간다. Node.js 애플리케이션은 단일 CPU 코어에서 실행되기 때문에 CPU의 멀티코어 시스템은 사용할 수 없다. 그래서 만약 서버의 사양이 8코어이며 16쓰레드면, 프로그램을 돌리는데 최대 16개 코어를 사용 할 수 있지만, 노드는 싱글 스레드 이기 때문에 모든 코어를 사용하지 못해 최대 성능을 내지 못하는, 즉 자원을 제대로 활용하지 못한다. 그래서 Node.js는 이런 문제를 해결하기 위..

category_image
인파_
2022.06.09
(0)