하이브리드앱 개발 (1) – Ionic Framework 개발환경 구축

Ionic Framework는 Cordova 기반의 WebApp 개발 도구이다. Web 기반이라고 하지만 GPS, 카메라 등 스마트폰의 하드웨어에 접근하거나, 알림 등 시스템에 접근이 가능하기 때문에, 굳이 Native로 앱을 개발하지 않아도 다양한 어플리케이션 개발에 사용 될 수 있다. 현재 최신 버전은 v4 이고 Angular2 기반으로 UI 컴포넌트가 구성되어 있다. 동일한 코드로 UI 개발을 해도 안드로이드의 경우 Material ...

Kubernetes StorageClass

Kubernetes를 효율적으로 운영하기 위해서는 Dynamic Volume Provisioning 기능을 활성화해야한다. Dynamic Volume Provisioning을 사용하기 위해서는 StorageClass를 정의하여 블록 스토리지와 연동해야한다. 이 글에서는 StorageOS와 연계하는 StorageClass를 설정하는 방법을 소개한다. ...

Kubernetes Installation with Dashboard

Kubernetes는 Google에서 운영하는 컨테이너 오케스트레이션 오픈소스이다. 이 글에서는 Kubernetes 개념에 대해 소개하고, Ubuntu 18.04 버전을 기준으로 설치하는 방법을 정리하였다. 관련 키워드: Docker, Kubernetes Kubernetes Architecture Kubernetes는 Master-Slave 구조의 클러스터로 구성된다. Master Node에서 API를 통해 Kubernetes 클러스터에 접근하여 컨테이너를 생성하고 관리한다. Slave ...

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 ...