컴퓨터의 장점은 반복 작업을 불평 없이 약속된 시간에 수행한다는 것입니다. Node.js로 구현한 App 역시 마찬가지로 지정된 시간마다 실행되도록 할 수 있습니다. 이번 포스트에서는 *nix(Linux, MacOS) OS를 기준으로 Node.js App을 스케줄링하는 두가지 방법을 공유합니다. Cron? *nix 시스템에는 기본적으로 cron scheduler가 탑재되어 있습니다. cron 표현식에서 각 시간은 공백문자 한 개로 구분하며 아래와 같이 작성합니다. # 분 시 일 월 요일 명령 0 10 * * * /sendMail.sh # 매일 오전 10시 정각에 sendMail.sh를 실행 30 14 * * 0 /nap.sh # 매 일요일 오후 2시 30분에 nap.sh를 실행 이 글에서는 Cron 자체..
Node.js 응용프로그램을 실행하는 방법은 일반적으로 node 혹은 npm 명령어입니다. 이 때 별개의 터미널을 이용해 실행하거나, OS의 스케쥴러를 이용하죠. 하지만 웹 서비스와 같이 항상 실행되어야 하는 App도 있습니다. 이런 경우 별도의 터미널로 실행되어 있을 때 실수로 터미널을 종료하기라도 하면 치명적일 수 있습니다. PM2는 Node.js App을 백그라운드에서 실행해줘서 이런 상황을 방지해 줄 수 있습니다. PM2 KeyMetrics에서 제공하는 PM2의 PM은 Process Manager라고 합니다. 이름에서 볼 수 있듯이 Node.js 프로세스를 관리해주는 프로그램이죠. PM2의 홈페이지에서는 IBM, MS, PayPal 등의 업체가 PM2를 이용하고 있다고 합니다. PM2를 이용하면 ..
청약조회긱 서울에서 예정 중인 혹은 진행 중인 주택 청약을 빠르게 조회해주는 챗봇입니다.Telegram Bot API를 이용하여 간단하게 구현되었습니다. :: 사용 언어- node.js :: 주요 라이브러리- cheerio: 웹페이지 분석- cron: 스케줄러- telegraf: Telegram Bot API 사용 지원 :: 주요 기능- 청약 조회 + 예정 중인 혹은 진행 중인 주택 청약을 조회하여 출력합니다.- 청약 정보 구독 + 구독을 신청한 경우 예정된 시각에 자동으로 새 정보를 발송합니다. :: 사용해보기- 이 링크를 누르면 Telegram을 통해 사용해 볼 수 있습니다. :: 스크린샷
한 서버에서 여러 웹 서비스를 운용해야 하는 경우가 있습니다. 단순히 도메인이 여러개라서 한 도메인으로 사용자를 전달한다거나, 사용자 페이지와 백 오피스를 함께 운용할 수도 있지요. 이런 경우 Apache나 Nginx를 이용한다면 설정 파일을 이용해서 VirtualHost를 활용하곤 합니다. 만약 모든 서비스가 Node.js로 운용되고 있다면 굳이 Apache나 Nginx를 찾지 않고도 VirtualHost를 사용할 수 있습니다. 사전 준비: hosts 파일 편집 hosts 파일은 로컬에 보관하는 일종의 전화번호부입니다. DNS 동작에서의 hosts 파일 역할에 대한 자세한 설명은 다음 링크에서 확인하실 수 있습니다: hosts 파일 - 생활코딩 hosts 파일은 아래 위치에서 찾을 수 있습니다. - W..
이메일은 사용자에게 낮은 비용으로 메시지를 전달할 수 있는 수단입니다. 이번 포스트에서는 Node.js에서 간단한 방법으로 메일을 발송하는 방법을 알아봅니다. 서버 구성 이번에 공유하는 예시는 이용하는 서버 환경에 따라 작동이 되지 않을 수 있습니다. 이 점 유의해주시기 바랍니다. - OS: Ubuntu 16.04 (aws) - Node.js: v8.11.1 사전 준비: Postfix 설치 1. 아래 명령어를 이용하여 Postfix를 설치를 시작합니다. sudo apt-get install -y postfix 2. 설정 화면이 실행됩니다. enter 혹은 return키를 눌러 다음 화면으로 이동합니다. 3. Internet Site를 선택합니다. 4. 자신의 도메인을 입력합니다. 도메인이 없는 경우 기본..
VSCode는 가벼운 에디터지만 필수적인 기능만 제공하고 있습니다.대신 Marketplace를 통해 추가 기능을 제공하고 있죠.Extension 기능을 적절히 활용하면 생산량 증가를 꾀할 수 있습니다. VSCode 설치 후 고정적으로 이용하는 Extension을 추천해드릴 겸 목록을 공유합니다. Active File In StatusBar (이동) 현재 편집 중인 파일의 경로를 하단 상태 막대에 표시합니다. 이 경로를 클릭하면 바로 클립보드에 복사할 수도 있죠. 터미널이나 탐색기를 여러번 이용해야 하는 경우 그 빛을 발합니다. Bracket Pair Colorizer (이동) 프로그램의 덩치가 커지면 여러 단계의 괄호를 이용해야 합니다. JavaScript 코드는 특히 더 심하죠.괄호의 단계별로 다른 색..
Express.js 서버로 업로드 한 이미지 파일의 배경색을 제거하기 웹 서비스를 운영하다보면 사용자의 도장을 인식하거나, 간단한 사진 합성을 하는 등 사용자가 업로드 한 이미지의 배경색을 제거하고, 이미지의 내용 부분만 추출해야 할 수도 있습니다. 사용자가 이미지를 업로드하면, 배경을 제거하는 예제를 공유합니다. 사전 준비 1. GraphicsMagick을 설치합니다. - GraphicsMagick은 널리 이용되는 이미지 처리 라이브러리입니다. 이 예제에서는 GraphicsMagick을 이용해 이미지를 처리합니다. - Windows: 아래 링크에서 다운로드 후 설치를 진행하세요. http://www.graphicsmagick.org/README.html#installation - *nix: 아래 링크에..
Bookmarklet을 활용하여 생산성 향상하기 웹브라우저의 Bookmark는 자주 가는 사이트를 등록해두는 기능입니다.이 Bookmark에 JavaScript 코드를 등록해둔다면 생산성 향상을 기대할 수 있습니다. Bookmarklet 생성 간단합니다.웹브라우저에서 Bookmark를 등록할 때, URL에 'javascript:'로 시작하는 간단한 스크립트를 입력합니다.혹은 웹 페이지에 있는 링크를 브라우저의 Bookmark Bar로 끌어다 놓아도 추가할 수 있습니다. 1. 직접 스크립트 입력해서 추가 2. 끌어다 놓아서 추가 자주 사용하는 Bookmarklet 주로 참고 문서를 열거나 WebApp을 실행할 때 이용합니다.아래 자주 사용하는 Bookmarklet을 공유합니다. 각 항목의 항목명을 끌어서 ..
Express.js 서버로 업로드 한 Excel 파일을 JSON 형식으로 변환하기 재무제표, 수익률 데이터, 용돈 데이터 등등... 종종 Excel로 기록된 데이터를 Node.js에서 다뤄야 할 경우가 있습니다. Express.js로 구현된 웹 페이지에 사용자가 엑셀 파일을 업로드하면, 해당 파일을 읽어들여 json 형식으로 돌려주는 예제를 공유합니다. 사전 준비 1. Dependencies: 아래 명령어를 이용해 필요한 패키지를 설치합니다. - multiparty: multipart/form-data 형식으로 전송된 파일을 좀 더 편리하게 다룰 수 있도록 도와줍니다. - xlsx: Excel 파일을 다룰 수 있도록 도와줍니다. npm i --save express http body-parser mult..
검색 결과 강조 각종 검색엔진을 이용하여 검색 결과를 보면 내가 입력했던 검색어가 강조되어 표시되는 것을 볼 수 있습니다. 우리가 만든 검색 결과 페이지에 적용할 순 없을까요? Solr는 이 Highlighting 기능을 지원하고 있습니다. 지금까지 그랬던 것처럼 아주 간단한 방법으로 구현할 수 있는데요. 오늘은 이 Highlighting 기능을 확인해보겠습니다. Highlighting 적용기존의 표 방식의 결과 페이지에는 본문 조각을 표시하기가 좋지 않습니다. src/main/webapp/WEB-INF/jsp/board4/boardSearch.jsp 파일을 아래와 같이 변경해주세요. 검색 결과 [] by. ... ... 검색 결과에 검색어를 강조하기 위해 src/main/java/gu/board4/bo..
SolrJ를 이용한 검색 4편까지의 연재를 통해서 새 색인 문서를 추가하고 삭제하는 법을 확인하였습니다. 이 모든 과정은 사실 오늘을 위해서 배웠다고해도 과언이 아닙니다. 오늘 5편에서 드디어 Solr를 이용해 검색을 진행하겠습니다. 색인된 문서 검색 게시판에 샘플 데이터를 충분히 입력해주세요. 예제에서는 노래 가사를 사용하겠습니다. 이제 검색 결과를 표시할 페이지를 디자인하겠습니다. src/main/webapp/WEB-INF/jsp/board4/boardSearch.jsp를 생성하고 아래 코드를 입력해주세요. 검색 결과 번호 제목 등록자 등록일 검색 페이지를 표시하기 위해 src/main/java/gu/board4/board4Ctr.java에 아래 코드를 이용하여 board4Search() 메소드를 추..