1. 주말에 [객체지향의 사실과 오해] 책을 일고 보면서 객체에 대한 개념을 다시 잡았다. 클래스라고만 알고 있던 객체에 대해서 틀이 깨졌다. 지금가지 완전히 뜬구름처럼 알고 있었고 어떤 방향으로 객체를 생각해야하는지 배웠다. 응집도,결합도, 복잡도 등등 다양한 설계 관련 용어들에 대해서 객체지향적인 사고로 생각을 정리할 수 있었다. 자바할 때 매일 빨간색 자동차나 사람과 학생,선생 클래스 정도로만 알고 있던 객체는 생각보다 훨씬더 넓고 프로그래밍에 있어서 굉장히 기본적인 개념이었다. 하나의 어플리케이션을 구성하는 것이 객체들이고 이들의 협력과 조화로 어플리케이션이 만들어진다. 특히 ,변수의 타입도 객체라는 생각을 해본 적이 없었는데 개발자는 변수를 만들고 값을 넣어서 사용하지만 그 뒤에서는 변수 타입 ..
T.I.L = Today I Learned #2021년 목표는 시간 잘 쓰는 것이 목표이다. 그런 의미로 TIL 시작한다. 시간은 자기발전에 의지에 도움이 되고자 TIL시작ㄱㄱ 원칙 간단한 내용을 하나씩 알아보고 기록하기(빡센 공부가 아니라 알아보기!) 1. 정성들여 쓰려고 하지말고 간단명료하고 빠르게 쓰자(기억만 나면 된다) 2. 매일쓰는 것은 욕심이니까 일주일에 적어도 2번 이상은 쓰자 3. 원칙을 정하면 또 부담되니까 원칙은 이것만 쓰자 워렌 버핏이 자신이 가장 후회하는 일 중 하나가 "11살에 투자를 시작한 것" 이라는 인터뷰를 했다. 무슨 소리인가 했는데 5살 때부터 투자를 시작하지않아서 그 시간이 아깝다고하셨다. 90살 넘은 할배가... 어린 시절 짧은 시간조차 아쉽다고 하는데 워렌할배의 시간..
3. 항공권 검색에서 음성 서비스 고려사항 사용자는 실제 사람과 같은 AI 비서를 기대한다. 항공권 음성 검색 서비스에서 필요한 요구사항은 마치 상담원처럼 사람을 대신해 지속적인 대화로 검색 조건을 수집하고 지능적으로 처리하는 것이다. 하지만 음성 서비스에서 현재 기술 수준 및 기능과 정보 측면에서 고려해야 할 제약 사항들이 존재한다. 항공권 검색 서비스를 음성 인터페이스로 서비스하기 위해 고려 해야 할 사항은 아래와 같다. (1) 사용자의 다양한 발화 음성 서비스를 기획할 때, 가장 먼저 고려하는 것은 사용자가 어떤 발화를 할 것인지에 대 한 시나리오 구상이다. 사용자가 항공권 검색을 명령할 때 일반적으로 다음과 같은 발화를 예상할 수 있다. [표 1]을 보면 "찾아줘", "검색해줘"와 같이 사용자의 ..
2020년에 친구와 함께 2명이서 프로젝트를 맡아 직접 개발하고 출시했던 항공권 음성 검색 서비스를 논문 형식으로 정리한 내용이다. 음성 인터페이스를 공부하면서 많은 내용들을 인터넷에서 찾아보고 배웠기 누구에게는 도움과 영감을 줄 수 있을 것 같아 공유한다. 어떤 프로젝트를 하고 일을 하던지 마침표를 찍는게 중요한 것 같다. 프로젝트를 진행하면서 고민했던 것들과 공부한 것들을 정리하고 글로 써내려가면서 프로젝트의 진정한 마침표를 찍은 것 같다. 과거 사진을 보면 예전 기억과 감정이 되살아는 것처럼 기억이 무뎌지기 전에 항상 글로 기록하고 정리하는 습관을 만듭시다! 1. 음성 인터페이스 음성 인터페이스 기술은 우리가 매일 같이 사용하는 가장 자연스러운 의사소통 수단인 '음 성'으로 인간과 기계의 대화를 가..
누구 Play에서 2020년 9월부터 서비스를 시작한 오늘의 퀴즈 서비스를 수정 후 배포했다.(12/07) 단순하고 트랜잭션이 가장 많았던 서비스이다. 기존 서비스는 Oauth 계정연동으로 사용자별로 본인에게 퀴즈를 하나씩 제공하고 포인트를 획득할 수 있는 서비스지만 이번 수정 된 서비스는 계정연동없이 누구나 사용할 수 있는 서비스로 개편하였다. 수정 이유 계정연동에서 토큰 유효시간 만료에 따른 오류 발생. 매일 다른 퀴즈 리소스를 관리하는 것이 어려움.(사용자 개인별로 보너스 퀴즈 제공) 더 가벼운 서비스가 사용자들에게 접근성이 용이하겠다는 판단. 따라서, 사용자 개별로 퀴즈를 제공하는 방식을 없애고, 누구나 계정연동 없이 사용할 수 있는 public 서비스로 서비스 방향을 개편하고 서버 코드를 수정했..
JavaScript는 뭐고 Node.js는 뭐고 Express는 무엇일까? 간단히 말해서 JavaScript(이하 자스)는 언어이다. 컴퓨터와 대화하기 위해서 사람이 기본적으로 알아야 하는 소통하기 위한 언어. 자바스크립트는 원래 웹사이트를 만들기 위한(보이는 쪽 - 프론트엔드) 언어였지만 백엔드(보이지 않는 쪽) 개발을 위해 구글에서 Node.js라는 V8엔진으로 빌드되는 자바스크립트 런타임을 만들었다. 이 런타임 위에서 자바스크립트로 개발하면서 서버의 개발도 가능하게 된 것이다. 런타임은 언어가 돌아가는 환경이라고 보면 되고 넓게 보면 프로그램이 돌아갈 수 있는 환경이라고 해석 할 수 있다. 노드가 나오기 전에는 웹브라우저로 밖에 자스를 이용 할 수 없었다. 하지만 Node.js는 이제 알겠지만 그럼..
라우터를 구성하기 전에 Play가 우선이 되어야한다. 아마존, SKT, 네이버 등 각 기업으 Voice App 빌더에서는 기본적으로 사용자의 발화를 구분하고 발화에서 필요한 data를 추출해 백 엔드 서버로 요청해주는 구조를 가지고 있다. 따라서 서버에서 사용자가 어떤 발화를 했냐에 따라 해줘야 하는 것들이 다른데 SKT Play에서는 특정 발화(Intent)를 트리거로 하는 Action에서 서버와 연동해 다양한 동작들을 처리하 수 있다. SKT Play 빌더를 만드는 것에 대한 자세한 내용은 NUGU 공모전에서 2번이나 만나서 같이 놀았던(ㅋㅋ) '루나스트라토스' 개발자님이 정리를 잘해놓으셨다. (github.com/lunaStratos/sk_Nugu_chatbot/tree/master/nugu_lot..
서버를 만들었으면 이제 이 클라우드 서버를 NUGU Play 백 엔드 서버로 사용하기 위해 세팅을 해줘야한다. 지금은 그냥 Ubuntu가 설치되어 있는 컴퓨터일 뿐이다. 따라서 여기에 Nodejs를 설치할 것이다. apt-get을 통해 설치를 진행할 것인다. apt-get은 우분투(Ubuntu)를 포함안 데비안(Debian)계열의 리눅스에서 쓰이는 팩키지 관리 명령어 도구이다. apt-get update 명령을 통해 패키지들을 패키지 정보를 업데이트해주고 nodejs와 그 패키지 매니저인 npm을 설치하자 헷갈리는 개념을 정리하면 Nodejs는 자바스크립트 런타임! npm은 nodejs의 패키지 관리 도구 런타임이란 프로그래밍 언어가 구동되는 환경을 의미하고 js의 경우 과거에는 런타임은 브라우저밖에 존..
당연히 서비스를 하기 위해서는 서버가 필요하고 기존 네이버 프리 티어 서버는 기간이 만료되어서 이제 사용하지 못한다. 물론 친구, 가족의 아이디 돌려가면서 할 수 있지만 그거슨 존엄성을 해치는 일이기 때문에 때문에 이번에 오라클에서 무료 서버를 제공한다고하니까 공짜 서버를 사용해보자. 오라클 무료 서버 만들기는 그냥 클라우드 가입하고, 카드입력하고, 정보를 기입하면 만들 수 있다. www.gamjaa.com/blog/1404 ( 클라우드 계정 만들기는 이 블로그를 참고했다.) 다만 완전히 컨펌이 나는데까지 네이버 아이디 기준으로 8시간 정도 걸린다. 나의 경우는 만드고 컨펌까지 6시간만에 메일이 온 것 같다. 신용카드 확인(1$)도 6시간 지나니까 빠져나갔다고 알람이 와서 알았다. 처음엔 로그인해도 아이..