데이터입력 키바나(Kibana)의 콘솔을 활용하면 엘라스틱서치(Elasticsearch)에 매우 쉽게 데이터를 넣어볼 수 있다. 키바나(Kibana) Console 창에서 PUT Http 메소드를 사용하여 엘라스틱서치에 매우 쉽게 데이터를 넣어볼 수 있다. Kibana 콘솔창에 JSON 구조의 파라미터를 입력한 후, ▷ 버튼을 클릭하여 데이터를 입력한다. PUT /// PUT /article/_doc/1 { "article_no":"20200526000243", "title":"코오롱플라스틱, 긴축경영…코로나19 경영난 전방위 확산 우려", "description":"바스프 합작 신공장 고정비 과다 지출 PBT·POM 등 국내외 판매 둔화 가속 임원연봉 삭감…경영 정상화 안간힘 항공·정유 이어 소재산업 ..
어느 예능프로였는지 유튜브였는지 기억이 잘 안나지만, 35년전에 워렌버핏에게 100만원을 줬으면 지금 얼마를 만들어냈는지 아는가?를 물었던 장면이 있었다. 이때 사람들이 억에서 십억 단위로 대답을 하였는데 정답은 128억원이었던걸로 기억이 난다. 지금 들으면 역시 워렌버핏이라는 생각이 들며, 우리도 가능할까?라는 생각을 한다. 그렇다면 워렌버핏은 100만원으로 어떻게 128억원을 만들어낼 수 있을까? 단지 100만원으로 초저평가를 받는 주식에 투자를 해서 128억원을 만들어 냈을까? 사실 후자는 불가능에 가깝다고 볼 수 있다. 이게 가능하려면 12,800배가 올라야 하기 때문이다. 제목에도 적혀 있지만 사실 이정도로 오를 수 있는 이유는 복리 방식이 주식에 적용되기 때문이다. 35년동안 100만원을 가지..
Math.round 방식 double a = 12.3456789; System.out.println(a*100); 1234.56789 System.out.println((double)Math.round(a*100)); 1235.0 System.out.println((double)Math.round(a*100)/100); 12.35 자바의 대표적인 수학모듈인 Math는 다양한 소수점을 처리하는 기능도 제공한다. Math.round를 쓰게 되면, 소수점 위치에 반올림하게 되는데 원하는 위치를 반올림을 하기 위해서는 별도의 인자값을 넣는 것이 아니라 위 소스처럼 그만큼의 소수점을 Shift해야 한다. 즉 2자리까지 보여주고 반올림을 하고 싶을 경우 우선 현재 값에 100을 곱하고, Math.round를 쓰면 ..
일명 패가망신을 하는 사람들 중에 주식을 하는 사람에 대한 말이 있다. 실제 사람들이 원하는 이성관으로 "주식을 안하는 사람이었으면 한다"라는 것이 많을 정도로 우리나라에서 주식에 대한 인식은 참 안타깝기만 하다. 나는 예전부터 우리나라의 몇몇 서비스는 해외보다 훌륭하다고 생각을 했던 적이 많았는데 결과적으로 망하며, 수많은 중소기업들이 숨을 제대로 쉬지 못한채 대기업에게 잡아먹히는 것을 봤었고 다들 공무원이 꿈일 정도로 현재 대한민국의 사회의 미래가 밝지만은 못한것 같다. 일명 한국이 헬조선이 되는 이유가 여러가지 있겠지만 나는 다음과 같이 크게 3가지로 보고 있는데 부동산에 너무 빠져 사는 것 (집 값 상승으로 이어지는 악순환) 사교육비에 너무 많은 돈을 지출하는 것 (자식 사랑 좀 적당히 합시다) ..
인터넷에 아직도 4차 산업을 유령 취급하는 사람들이 있어서 놀라울 뿐이다. 4차 산업 혁명이 일어나면 마치 새마을 운동이라도 하는 것마냥 온 국민들이 4차 산업을 향해서 달려가는 것이라 착각하는 것 같다. 4차 산업혁명의 가장 큰 트렌드는 누가 뭐라고 해도 인공지능(Artificial Intelligence)이다. 그러나 4차 산업혁명이 도래하기 이전부터 인공지능은 이미 예전부터 존재하기는 했었다. 최초의 컴퓨터가 탄생하기 이전부터 인간은 기계를 자동화하기를 원했었고, 꼼수를 써서 몇몇개는 마치 지능이 있는것마냥 행동을 했다. 대표적인 꼼수 인공지능, 전문가 시스템(Expert System) 우리가 일반적으로 인정하는 진정한 최초의 인공지능인 퍼셉트론(Perceptron)도 1950년대에 나온 기술이니,..
R은 데이터분석을 위해서 태어난 언어이다보니 다양한 통계 함수들이 별도의 라이브러리를 호출하지 않아도 기본적으로 내장이 되어 있다. 통계 함수가 잘 돌아가는지 쉽게 이해하기 위해서, 아이리스같은 분석용 데이터셋을 사용하지 않고 별도의 데이터셋을 생성하여 진행해보고자 한다. 실험 데이터 > korean sum(korean) [1] 1530 모든 벡터를 더한다. 평균(mean) > mean(korean) [1] 153 모든 벡터를 더한 수 벡터 수로 나눈 값이다. 중앙값, 중위수(median) > median(korean) [1] 67.5 중앙값과 평균의 차이를 설명하기 위해서 1000이라는 값을 넣어봤는데 중앙값은 평균이 아니라 값을 정렬했을 때 중앙에 위치하는 값이 어딘지를 뜻한다. > sort(kore..
데이터 정렬을 위해 아이리스(Iris) 데이터를 이용하여 정렬을 해보고자 한다. 아이리스는 이제는 매우 잘 알겠지만 > head(iris) Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.1 3.5 1.4 0.2 setosa 2 4.9 3.0 1.4 0.2 setosa 3 4.7 3.2 1.3 0.2 setosa 4 4.6 3.1 1.5 0.2 setosa 5 5.0 3.6 1.4 0.2 setosa 6 5.4 3.9 1.7 0.4 setosa 이와같이 꽃받침(Sepal)과 꽃잎(Petal)의 넓이, 길이로 구성이 되어 있다. 정렬 실습을 위해서 "Sepal.Length" 즉, 꽃받침 길이만 가지고 정렬을 해보고자 한다. 오름차순하기 오름차순..
케라스(Keras)와 텐서플로우(Tensorflow)로 구현한 시퀀스투시퀀스(Seq2Seq) 모델로 챗봇을 구현하고 있는데 예전 tensorflow에서는 Java에서 tensorflow를 지원해서 호출하였지만 현재 tensorflow 2.0은 Java에서 호출이 지원되지 않는다. 이를 해결하기 위해 자바에서 모델을 호출하는 방식이 아닌 python에서 자체적으로 웹서버를 띄우기로 하였고, Flask 라이브러리를 사용하였다. 라이브러리설치와 선언 > pip install flask-restful (python) E:\Project\universe\source-python>pip install flask-restful Collecting flask-restful Downloading Flask_RESTful..
일반적으로 채팅을 개발하기 위해서 가장 많이 사용하는 방식이 바로 웹소켓(Web Socket)일 것이다. 그러나 사이트에서 프로젝트를 하거나 혹은 취미로 프로젝트를 할 때 인터넷에 떠돌아 다니는 웹소켓 채팅 솔루션을 적용하다보면 난관에 부딪힐때가 있다. 대부분 채팅 + 웹소켓에 관해서 포스팅한 내용들은 완성된 프로젝트 형태가 아니라 PoC 기반의 컨셉을 구현한 경우만 많기 때문에 실제 프로젝트 코드랑 괴리감이 존재한다. 그럼 웹소켓의 차이점이 무엇인지 단점이 무엇인지 알아봐야 할 것이다. 웹소켓과 HTTP Polling 방법 일반적으로 HTTP 4 이하 기반의 웹 형태로 채팅 시스템을 구현하려면, 윗방법과 같이 폴링(Polling)하는 방법을 사용할 것이다. 주기적으로 채팅서버에 새로운 대화가 있는지 찾..
다중채팅 솔루션은 우리가 흔히 아는 채팅방을 만들고 여러명이 대화를 하는 구조를 말한다. 이러한 기술은 사실 크게 어려운 방법이 아니다. 인터넷을 조금만 뒤져봐도 HTML 5.0 기술의 웹소켓(Web Socket)을 이용하여 구현한 사례는 얼마든지 있으며, 필자 역시 개인적으로 웹소켓을 구현해서 다중채팅을 만든적이 있다. 그러나 이 채팅 시스템이 상담사와 사용자가 대화를 한다고 가정을 해보자, 그러면 한가지 문제가 되는 것이 웹소켓의 세션 처리 방식이다. 웹소켓은 서로간에 대화를 쉽게 하게 만들지만 상담 시스템은 상담사 한명당 여러명의 사용자와 대화를 해야 한다. 여기에 한가지를 더 포함해서 챗봇과 공유하는 시스템은 어떻게 만들면 될 것인가? 즉 카카오톡처럼 한명당 여러개의 채팅방이 존재할 수 있고, 방..
한 때 월드비전 등을 통해서 아프리카 사람들에게 꾸준히 기부를 했었지만 어느샌가 국내 후원으로 눈을 돌리고 해외 기부를 멀리하게 되었다. 그러다가 유튜브에서 보게 된 에티오피아(ethiopia) 정확히 말해서 "에피오피아의 전쟁 참전용사인 강뉴부대"를 위해 101번째 방문한 커피 사장을 알게 되어 감명 받아서 앞으로 이쪽 커피만 마실 계획이다. 대다수의 아프리카 국가들이 한국에 호의적이지만 에티오피아는 좀 더 특별한 것 같다. 침략은 안된다는 당시 에티오피아의 셀라시에 황제는 오로지 신념만으로 황제 직속부대 3518명을 대한민국에 파병했고, 이 부대는 강뉴부대라는 이름으로 참전해 중공군과 실전을 치뤘으며, 253번의 전투동안 한번도 패배하지 않았다. 에티오피아의 셀라시에 황제 그러나 문제는 그 이후이다...
R의 버전을 업데이트하기 위해서 사이트에서 R을 다운로드하여 인스톨을 하는 등의 작업을 할 필요 없이 R 명령어를 몇개 입력하여 최신 버전으로 Install 할 수 있다. Step 1. install.packages("installr")> install.packages("installr") WARNING: Rtools is required to build R packages but is not currently installed. Please download and install the appropriate version of Rtools before proceeding: https://cran.rstudio.com/bin/windows/Rtools/ Installing package into ‘C:/U..