분류 39

LINE Bot 만들기 - 1. 시작하기

채팅봇(Chat Bot)이란? 챗봇이란 쉽게 말해 채팅하는 로봇이다. 정해진 응답 규칙에 따라 사용자 질문에 응답할 수 있도록 만들어진 시스템이다. 전자게시판이나 통신망에서 여러 사용자가 다양한 주제를 가지고 실시간 모니터링 화면을 통해 대화를 나누는 채팅과, 자동으로 사람이 하던 일을 수행하는 기계인 로봇에서 한 글자씩 따와 만든 용어다. 인공지능을 기반으로 사람과 자동으로 대화를 나누는 소프트웨어라고 보면 된다. 출처 : 네이버 캐스트 - 채팅 봇http://navercast.naver.com/contents.nhn?rid=122&contents_id=120105 봇 API를 제공해주는 메신저는 많이 있는데요. 그중에서 2016 LINE Developer Day때 발표한 Message API를 이용해..

Nodejs 2016.10.22

ECMA 2015를 공부해보자

Javascript의 속도가 점점 빨라지면서 이를 이용하여 단순 HTML코드에서 사용되는 스크립트를 넘어, 어플리케이션을 만드는 데에도 사용되고 있다. 따라서 현재 트렌드를 따라가기 위해, 현재 사용되고 있는 ECMA5 문법에 새로운 스펙이 추가 된 ECMA2015(es6)가 표준화 되었다. 그러나 현재 몇몇 브라우저에서 제한된 문법만 지원되고 있을 뿐이어서 실제 개발이나 서비스에 도입하는데는 시간이 걸릴 것으로 보인다. 그렇다면 미리 적용해 볼 수 있는 방법은 없을까? 결론부터 말하자면 가능하다. Babel같은 트랜스파일러를 통해 es6 문법을 es5로 컴파일하여, 문법은 es6로 작성하고 실행은 es5로 하는 것이다. 이 페이지에서는 Babel을 설치한 후 앞으로 사용 될 es6 문법을 미리 공부해 ..

JavaScript 2016.08.07

State Pattern (스테이트 패턴)

State Pattern(스테이트 패턴)이란, 일련의 규칙에 따라 객체의 상태(State)를 변화시켜, 객체가 할 수 있는 행위를 바꾸는 패턴이다. 상태에 따라 행동이 변화하는 객체엔 모두 적용할 수 있다. 이번 기회에 스테이트 패턴을 적용하여 알람 시계를 한 번 만들어 보도록 하자. 기능은 단순하게 normal, alarm상태 두 가지로 한정한다. State 패턴의 핵심은 상태를 인터페이스로 분리시키는 것이다. 따라서 상태들을 유연하게 관리할 수 있기 때문에 유지 보수에 효율적이다. 우선 시계의 상태를 인터페이스로 정의해보자. 시계는 normal(보통일 때의 상태), 와 alarm(알람이 울릴 때 상태) 두가지 경우를 가지고 있다. 우리가 만들고자하는 Clock 클래스를 구현해보자. State 패턴에서..

Design Pattern 2015.12.17

Singleton Pattern (싱글턴 패턴)

Singleton Pattern(싱글턴 패턴) 이란, 단 하나만의 인스턴스를 만들어 어디서든 접근할 수 있도록 만든 패턴 유형이다. 싱글턴에도 종류가 어려가지 있지만, 가장 기본적인 싱글턴 유형부터 살펴보기로 하자.[그림] Basic Singleton 싱글턴 패턴의 구현자체는 어렵지 않다. 먼저 싱글턴 클래스 안에 인스터스를 저장할 변수(sInstance)를 전역으로 선언해준다. 다음으로생성자를 private로 선언해주면 클래스 밖에서 객체의 생성이 불가능하게 된다. 따라서 이 객체의 인스턴스는 getInstance() 메소드를 처음 호출했을 때만 만들어지게 되며, 다음번부터 호출될 시에는 처음에 만들어진 인스턴스만 참조하게 된다. 실제로 같은 주소를 공유하는지 메인함수에서 toString() 함수를 호..

Design Pattern 2015.12.17

SOLID 원칙

프로그래밍 설계를 하다보면 객체지향 5대원칙 또는 SOLID 원칙이란 단어를 들어본 적이 있을 것이다. 당시에 구글링을 하여 찾아보았지만 프로그래밍 내공이 부족하여 잘 이해가 되지 않았다. 그때보다 조금(?) 나아진 현재 다시 공부하면서 나름대로 이해한 내용을 여기에 정리해 보고자 한다. 객체지향 5대 원칙이란,SRP(단일 책임 원칙), OCP(개방-폐쇄 원칙), LSP(리스코프 치환 원칙), DIP(의존 역전 원칙), ISP(인터페이스 분리 원칙)을 말하며, 앞자를 따서 SOILD 원칙이라고 부른다. 프로그래머가 시간이 지나도 유지 보수와 확장이 쉬운 소프트웨어를 만드는데 이 원칙들을 적용할 수 있다. 1. Single Responsiblity Principle (단일 책임 원칙) - 소프트웨어의 설계..

Design Pattern 2015.12.14

자바스크립트 배열

배열은 언어에 구분없이 많이 사용되는 자료구조이다. 여기서 자바스크립트에 사용되는 배열을 한번 정리해 보자. 1. 배열 선언 배열을 만드는 방법은 여러가지가 있다. 1) [ ]를 이용하여 배열을 선언하는 방법 var numbers = []; // 배열 선언 var numberArray = [ 1, 2 , 3, 4 , 5]; 2) Array 생성자를 호출하는 방법 var numbers = new Array(); var numberArray = new Array(1, 2, 3, 4, 5); 파라미터를 1개만 줄 경우 배열의 길이를 할당한다. var numbers = new Array(5); // 길이가 5인 배열 생성 일반적으로 1번 방법을 사용하는것이 더 효율적이다. 2. 배열에 접근하기배열에 접근할 땐 ..

JavaScript 2015.11.01

자바스크립트 변수

자바스크립트에서 변수선언은 다른 언어와 다른 특징이 존재한다.여기에 자바스크립트만이 가지는 변수 타입의 특징을 정리해 보자. 1. 변수 선언 방식자바스크립트에서 변수는 var 키워드를 사용하여 선언한다.C언어에서는 자료형에따라 int, float, char 형 등으로 변수를 선언하지만, js에서는 var 키워드 하나로 모두 통일한다. 다른 언어와 마찬가지로 선언과 동시에 초기화 할 수 있다.var x;var y = 10; // 정수var a = 10, b = 20, c = 30;var floatValue = 1.2; // 실수var flag = true; // boolvar myString = "Hello World!"; // string 2. 유효 범위자바스크립트의 변수는 함수 범위(function s..

JavaScript 2015.10.30

C언어 표준 입출력 정리

C언어에서 표준 입출력은 printf(), scanf() 함수 등을 사용한다.이러한 입출력 사용방법은 여러가지가 있는데, 이번 기회에 정리해 보고자 한다. 1) printf() / scanf()가장 많이 사용하는 표준 입출력 함수로써 헤더파일에 정의되어 있다.출력 함수는 printf("출력내용 %d, integer); 과 같이 사용할 수 있다.입력 함수는 scanf("%d %f", &integer,, &float); 와 같이 사용할 수 있다. *예제 %d, %f를 형식 지정자라 하며, 출력 형식을 지정할 수 있다.Format Specifier 변환 내용 %d 10진수 정수형 %ld long 타입 10진수 %o 8진수 %x 16진수 %u unsigned 타입 10진수 %f 실수형 %lf double 타입 ..

C++ 2015.10.30