Node.js Async & Await를 활용하여 콜백 탈출하기

Javascript로 프로그래밍을 할 때 가장 골치인 것이 비동기 콜백 함수를 사용할 때이다. 비동기 함수가 유용할 때도 있지만, 크롤링 등의 작업을 할 때는 순차적으로 프로세스를 진행해야하는데 비동기 함수로 인해 코드 리딩이 어려워진다. Node.js 버전 7부터는 Async/Await 기능이 추가되어 이러한 비동기 콜백 문제를 직관적으로 해결 할 수 있게 되었다. 관련 키워드: Node.js, Async/Await, ...

k-Means Clustering

k-Means 클러스터링은 비지도 학습(Unsupervised Learning) 알고리즘 중 하나로 데이터를 유사도를 바탕으로 k개의 그룹으로 구분하는 알고리즘이다. 레이블이 없는 데이터 집합에서 분류 작업을 할 때 유용하게 사용된다. 이 글에서는 k-Means의 기초적인 개념을 바탕으로, 간단하게 구현하는 과정을 소개한다. 관련 키워드: k-Means, 클러스터링, 기계학습, node.js k-Means 알고리즘이란? k-Means ...

kNN (k-Nearest Neighbor) 알고리즘

k-NN 알고리즘은 분류 알고리즘의 하나로 로직이 간단하여 구현하기 쉽다. 하지만 학습 모델이 따로 없고, 전체 데이터를 스캔하여 데이터를 분류하기 때문에 데이터의 양이 많아지면 분류 속도가 현저하게 느려진다. k-NN 알고리즘은 단순 분류 작업 이외에도 협업 필터링을 구현 할 때 사용되기도 한다 (참고: https://github.com/guymorita/recommendationRaccoon). 관련 키워드: kNN, 분류, 기계학습, ...

추천 알고리즘 구현하기 (User-based Collaborative Filtering)

추천 시스템은 보유하고 있는 데이터에 따라 다양한 방법으로 접근하여 구현이 가능하다. 아마존, 넷플릭스와 같이 사용자의 행위 데이터를 분석하여 맞춤형 추천이 가능하고, 뉴스 데이터 등의 텍스트 데이터의 내용을 분석하여 유사도 계산을 통해 추천하는 것도 가능하다. 이 글에서는 추천 시스템의 종류에 대한 소개와 협업 필터링을 통해 간단한 추천 알고리즘을 소개한다. 관련 ...

Javascript Promise 객체 활용 – Value 처리

Javascript 코딩을 할 때 Promise를 사용하여 비동기 함수를 체계적으로 활용 할 수 있다. Promise를 잘 사용하면 Async 보다 깔끔하게 코드 정리가 가능하다. 예제 코드는 여기에서 확인 할 수 있다. Promise 객체 new Promise()를 선언할 때 지시된 함수가 실행되기 때문에 Promise 객체는 함수로 Wrapping 하여 사용한다. 'use strict' let add = (arg1, arg2)=> new Promise((resolve)=> { setTimeout(()=> { console.log('add ...

Docker 시작하기

참고자료: https://docs.docker.com/engine/getstarted/step_four Docker는 VMWare 등과 같은 운영체제 가상화 프로그램이다. docker가 설치되어있다면 개발 환경을 설정할 필요 없이 이미지를 통해 설치하여 바로 실행이 가능하기 때문에 서버 운영, 웹 어플리케이션 배포 등을 간편히 해준다. 최근 Saturn이라는 Web IDE를 개발하면서 쉽게 배포하기 위해 Docker를 사용해보았는데, 프로그래밍 교육용 프레임워크 ...

How to Manage Visitor Log in Express.js

example code in here Overview Pre Install lwot saturn Define Libraries // visitor count example // use '127.0.0.1:port' for this app // this app didn't save log, if you want to maintain the log, you must have to save the log as file or database. const moment = require('moment'); const express = require('express'); const expressLess = require('express-less'); const jade = require('jade'); const app = express(); // express middleware const session = require('express-session'); const ...