[VueJS] VueJS와 Sentry 연동

Sentry 란?

Sentry 공식 홈페이지에서 Sentry는 실시간으로 로그를 모니터링 할 수 있도록 도와주는 서비스라고 표현되어있다. 말 그대로 에러를 실시간으로 모니터링 할 수 있고, 그러한 알림을 slack이나 gmail 로 연동해서 실시간으로 받아볼 수 있다. 물론 client side 뿐 만 아니라 서버 사이드의 각 언어들도 지원을 한다. 이 플랫폼은 현재 오픈소스로 개발 되고 있으며 혹시라도 기여를 하고 싶다고 한다면 Github 주소에서 찾아볼 수 있다.

More …

[Machine learning] Linear Regression 이란?

Linear Regression 이란 무엇인가?

Linear Regression 에 대해 사전적인 의미를 찾아 보면 선형 회귀 라고 표현을 한다. 위키 백과에서는 다음과 같이 표현한다.

선현 회귀는 종속 변수 y 와 한 개 이상의 독립 변수 x와의 선형 상관 관계를 모델링하는 회귀분석 기법이다. 한 개의 설명 변수에 기반하는 경우는 단순 선형 회귀, 둘 이상의 설명 변수에 기반한 경우에는 다중 선형 회귀라고 한다.

More …

[Typescript] Typescript 의 Generic Type

Generic type 이란?

Generic 은 정적 타입 언어를 사용하던 사람에게는 매우 친숙한 단어이다. 여기에서 Generic 은 함수나 클래스를 선언할 때 타입을 고정하지 않고, 사용 때 명시해 타입을 유연하게 사용할 수 있게 해준다. 예를 들어 선언과 동시에 타입을 선언한다고 하면 다음과 같은 것이다.

function sum (str1: string, str2: string): string {
    return str1 + str2;
}

위의 코드를 보면 str1이라는 string 타입의 인자와 str2 라는 string 타입의 인자를 받아서 합쳐준 후, string 으로 반환해주는 sum 이라는 함수가 있다. 이 것만 봤을 때는 크게 문제는 없어 보인다. 그런데 만약 number 형의 인자를 받아서 처리를 해야 하는 경우가 생겼다면 어떻게 변화가 되어야 할까?

function sumString (str1: string, str2: string): string {
    return str1 + str2;
}
function sumNumber (num1: number, num2: number): number {
    return num1 + num2;
}

아마도 위처럼 처리되는 것에 따라 함수 자체를 나눠주거나 타입을 아래 처럼 any 로 처리를 해야할 수 있다.

function sum (str1: any, str2: any): any {
    return str1 + str2;
}

하지만 이렇게 되는 경우의 문제점이 있다. 위처럼 단순한 코드에서는 타입이 무엇이든 신경을 안 쓸순 있다. (물론 사실 이렇게 쓴다면 타입스크립트 보단 그냥 자바스크립트만 쓰는 게 더 나은 것 같다) 하지만 만약 그 규모가 커진다고 한다면 정확한 타입 추정이 가능해야 한다. 또한 그 타입에 따라 사용할 수 있는 고유의 메소드들 역시 다를 수 있는데, 타입이 명확하지 않으면 일단 런타임이든 아니면 그 이전이든 에러를 뿜어낼 것이다. 예를 들어 sum 이라는 함수에서 return 해준 결과가 string 이라고 생각하고 그 string 의 특정 문자열을 구하려고 한다면 런타임 에러가 뜨는 것을 볼 수 있다.

function sum (str1: any, str2: any): any {
    return str1 + str2;
}
sum(1, 23).indexOf('2');    // Error!

혹은 여러개의 함수가 유기적으로 얽혀있는 모듈 중에 하나의 기능이 예상치 못한 결과를 반환해주어 예상치 못한 결과를 가져올 수 있을 것이다.

function sum (str1: any, str2: any): any {
    return str1 + str2;
}
sum(1, 23).length;  // undefined

물론 위와 같이 예상치 못한 결과, 에러 등도 그 이유겠지만, 무엇보다 타입스크립트에서 지원해주는 타입 추론에 대한 안정성이 떨어진다는 것이 제일 큰 단점이다. 이때 generic 타입을 사용하게 되면 타입 추론의 안정성과 위 예제와 같은 유연성을 동시에 가져갈 수 있다.

More …

[Machine learning] TensorFlow 란 무엇인가?

Tensorflow 란 ?

Tensorflow 는 구글에서 만든 오픈 소스 라이브러리이다. 딥 러닝 라이브러리는 이외에도 많은 것이 있으나, 이 Tensorflow 를 사용하는 가장 큰 이유는 사람들의 관심을 많이 받고 있기 때문이다! 관심을 많이 받는다는 것은 그만큼 자료도 많다는 것을 의미하고, 혹시나 버그가 생기더라도 사람들로 인해 금방 리포트가 되어 수정이 된다는 장점이 있다.

More …

[Machine learning] 머신 러닝이란

머신 러닝이란 무엇인가?

머신 러닝을 wiki 에 찾아보면 다음과 같이 정의 하고 있다.

기계 학습(機械學習) 또는 머신 러닝(영어: machine learning)은 인공 지능의 한 분야로, 컴퓨터가 학습할 수 있도록 하는 알고리즘과 기술을 개발하는 분야를 말한다. 가령, 기계 학습을 통해서 수신한 이메일이 스팸인지 아닌지를 구분할 수 있도록 훈련할 수 있다.

More …