Nodejs
-
private npm registry 구축 :: 마이구미Nodejs 2020. 3. 28. 00:41
이 글은 "private npm registry" 를 의미하는 사내 npm 저장소를 다룬다. 이를 위해 Verdaccio 를 이용하는데, 전반적인 이해와 사용 방법을 알아본다. 본인은 실제로 우리가 사용하는 npm 에 대해 조금 더 알게 된 계기가 되었다. 사내 npm 저장소를 구축할 일이 없어도 유용한 글이 될것이라 생각한다. Verdaccio - https://github.com/verdaccio/verdaccio private npm registry 는 무엇인가? 우리는 현재 npm 을 통해 많은 모듈들을 이용한다. npm 에서 많은 모듈을 우리는 그저 편하게 install 하여 사용하고 있다. 우리가 이렇게 사용할 수 있는 건, npm 은 public 하게 제공해주기 때문이다. 반대로 privat..
-
Sequelize.js 에서 Class 도입하기 :: 마이구미Nodejs 2018. 1. 1. 20:07
이 글은 Sequelize.js 을 다루지만, 튜토리얼은 아니다.중심 주제는 ES6의 class 키워드를 활용한 모델 정의에 대한 문법을 다루는 것이다.sequelize 의 기본적인 내용을 다루지만, 자세히 다루지 않는다.관련 코드 - https://github.com/hotehrud/sequelize-class참고 링크 - https://github.com/sequelize/sequelize/issues/6524 본인이 이 글을 쓰게 된 동기는 다음과 같다.본인은 ES6의 class 키워드 도입 후부터 class 중심으로 코드를 짜고 있다.그래서 sequelize 관련 코드 또한 class 키워드를 사용하고 싶었다. 먼저 간단히 sequlize 에 대해 살펴보자. Sequelize.js 는 무엇인가? ..
-
일렉트론 자동 새로고침(Eletron reload) :: 마이구미Nodejs 2017. 12. 16. 14:55
이 글은 일렉트론에서 소스 변경시 새로고침에 대한 기능을 다뤄본다.이 기능은 소스를 변경했을 때, 다시 실행할 필요없이 자동으로 리로드를 하게 한다.그로 인해 개발 환경 개선에 도움을 주게 된다.일렉트론 환경에서 자동 리로드 기능을 원한다면, 읽어보길 바란다.Electron-reload - https://github.com/hotehrud/electron-reload 현재 프론트쪽에서 핫 리로드(hot-reload) 라는 기능이 이용되고 있다.핫 리로드는 페이지에 대한 단순히 새로고침이 아니라 수정된 관련 인스턴스만 반응하게 된다.그로 인해 다른 영역은 상태를 보존할 수 있게 되어 개발 환경에 많은 도움을 준다.이 기능은 관련 cli 프로젝트를 가져온다면 바로 사용할 수 있다. 이 글에서는 핫 리로드가 ..
-
Node.js vs Java 구조적 차이 :: 마이구미Nodejs 2017. 4. 30. 23:10
Node.js Architecture - Single Threaded Event Loop 링크를 참고하여 작성된 글이다. 이번 글은 Node.js의 구조를 다뤄본다.단순히 Node.js에 대한 글이 아니기에, 도움이 될만한 글이라 생각하기에 읽고 판단하길 바란다.* Node.js 를 기준으로 작성되었기에, 다소 편중된 느낌을 받을 수 있다. 기본적으로 많은 웹 어플리케이션은 멀티 스레드 기반의 구조를 따른다.간단하게 예를 들자면, Java에서 동시 요청을 처리 하기 위해 멀티 스레드를 이용한다고 생각하면 된다. 하지만 Node.js를 알고 있다면 싱글 스레드를 기반으로 한다고 들어봤을 것이다. 싱글 스레드라면 동시 요청에 대해 비효율적이지 않을까? 의문이 들 수 있다.(완전히 싱글 스레드로 동작 되는건 ..
-
Ready check failed 오류 해결 [Redis] :: 마이구미Nodejs 2017. 3. 23. 15:18
이번 글은 Redis auth 관련 오류를 다뤄본다.여기서 auth의 의미는 Redis에 설정할 수 있는 암호이다.기본적인 Redis 관련은 다른 글들에서 다뤘으니 아래 작성된 URL을 참고하길 바란다. auth 관련 오류는 대부분 auth 설정 관련 문제로 발생한다.하지만 본인의 경우 평상시에는 문제가 없다가 테스트를 할 때 오류가 발생했다.테스트 환경은 Mocha 이다. Mocha 관련 글auth 설정에 아무 문제가 없는데 오류가 발생한다면, 참고하길 바란다. ReplyError: Ready check failed: NOAUTH Authentication required. 테스트만 하면 auth 가 실패하는 오류가 발생했다.본인은 여러개의 db index를 사용하기 위해서는 복잡하고 중복되는 코드를 ..
-
async 모듈을 통한 비동기 제어 :: 마이구미Nodejs 2017. 3. 18. 22:11
비동기 관련 최신글 async/await - http://mygumi.tistory.com/328 이번 글은 Node.js 에서 비동기를 제어하기 위한 방법 중 Async 모듈을 다뤄본다.비동기 제어는 비동기 프로그래밍을 하다보면 접할 수 있는 문제점들이 있기에 필요하다.예를 들어, ajax, db query, request 등 비동기로 처리되다보니 콜백지옥을 맛보기도 한다. 위의 말이 이해가 가지 않더라도,아래 예시를 통해 조금 더 자세히 다룰테니 이번 글의 요지를 알 수 있으니 끝까지 읽어보길 바란다. 다음의 코드를 보자. app.get('/user/:userId', function(req, res) { var locals = {}; var userId = req.params.userId; db.ge..
-
라우팅 모듈화를 통한 MVC 패턴 ::마이구미Nodejs 2017. 1. 21. 17:08
이번 글은 MVC 패턴에 대해 다뤄본다.MVC 패턴을 라우팅 모듈화를 통해 더 견고하게 만들어보자. MVC란 무엇인가? 위키의 정의를 보자.모델-뷰-컨트롤러(Model–View–Controller, MVC)는 소프트웨어 공학에서 사용되는 아키텍처 패턴이다. 이 패턴을 성공적으로 사용하면, 사용자 인터페이스로부터 비즈니스 로직을 분리하여 애플리케이션의 시각적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향 없이 쉽게 고칠 수 있는 애플리케이션을 만들 수 있다. MVC에서 모델은 애플리케이션의 정보(데이터)를 나타내며, 뷰는 텍스트, 체크박스 항목 등과 같은 사용자 인터페이스 요소를 나타내고, 컨트롤러는 데이터와 비즈니스 로직 사이의 상호동작을 관리한다이해하기 쉽게 설명하자면, M - 데이터베이스, ..
-
[nodejs] redis session 저장소 관리 :: 마이구미Nodejs 2017. 1. 8. 14:54
이번 글은 redis 서버를 통한 세션 관리를 다뤄본다.nodejs의 express 프레임워크를 사용하여 예제를 진행한다. 현재 NoSQL의 일종으로 redis는 많은 목적으로 활용되고 있다.redis란 무엇인가? 위키의 정의를 보자. 레디스(Redis)는 오픈 소스이며 네트워크화, 인메모리 데이터베이스, 선택적 영구성 키-값 데이터 저장소이다. 레디스의 개발은 2013년 5월부터 Pivotal의 지원을 받고 있으며, 그 전에는 VMWare의 지원을 받았다. DB-Engines.com의 월간 랭킹에 따르면, 레디스는 가장 인기 있는 키-값 저장소이다.* 인메모리 데이터베이스(In-Memory Cache) - I/O 성능을 위해 데이터를 메모리에 적재하는 데이터베이스 redis를 들어봤다면 "빨라. mys..