목록분류 전체보기 (592)
KorSA
# JAVA 객체 -> gRPC Proto 객체 JAVA 객체를 gRPC proto 객체로 컨버팅을 할 때 ObjectMapper 클래스를 사용할 수 있다. 이 ObjectMapper로 JAVA 객체를 Serialize하여 JSON String을 만들고 다시 이 JSON String을 gRPC proto 객체로 해석하는 것이다. MyJavaObj javaObj = new MyJavaObj(); ObjectMapper mapper = new ObjectMapper(); # JAVA 객체 -> JSON String json = mapper.writer().writeValueAsString(javaObj); # gRPC proto 객체의 builder를 얻어옴 Builder builder = MyGrpcPro..
Spring-Web-Application 개발을 진행하면서 회사 공통으로 쓰고 있는 JAR 파일을 첨부하게 되었다. 이 JAR 파일에는 우리 개발팀이 공통으로 쓰는 모듈들이 들어가있는데 주로 DB, gRPC, Util 등의 기능들이 포함되어 있다. 공통된 기능을 내가 따로 개발할 필요없이 이미 만들어진 것을 가져다 씀으로써 편리함과 DRY(Don't Repeat Yourself) 를 얻었지만 예상 못한 문제가 있었다. 바로 MyBatis를 포함한 프로젝트는 어딘가에 Mapper 클래스가 존재해야 한다는 것이었다. 헐? 지금 개발하고 있는 Spring-Web-Application은 DB 기능을 사용하지 않는데? 이 Application은 사용자에게 REST API 인터페이스를 제공하고 요청이 들어오면 다른..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/eaeemh/btrx5z3OwsZ/IPMp8likTceIJAJ4HORxa0/img.gif)
이 글은 "RANDOM FOREST TUTORIAL: PREDICTING GOALS IN SOCCER"를 읽고 작성한 글입니다. 축구에서 골이 나올 확률을 계산하고자 할때, 유용한 방법으로 Random Forest가 있다. Random Forest를 말하기 전에, 주어지는 데이터를 살펴보면 다음과 같다. 1. 슈팅한 위치와 골대와의 거리 2. 슈팅한 위치와 골대와의 각도 3. 공격팀의 수준 4. 수비팀의 수준 5. 슈팅하는 선수의 포지션(미드필더, 수비수, 공격수, 골키퍼 등..) 우리의 예측 모델은 위의 정보가 주어졌을 때 슈팅이 골로 연결되는지 안되는지 예측한다. Random Forest는 위에서 주어진 정보와 실제 골 여부를 바탕으로 여러 개의 Decision Tree를 실행한다. 각 Decisio..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bmN4BY/btrxzh3qSpc/082eKqTsJl6PMRKjrmZVr1/img.webp)
이 글은 "MAPPING GLOBAL CUISINE WITH WORD EMBEDDINGS"를 읽고 작성한 글입니다. 단어에 사칙 연산을 사용할 수 있다면 어떨까? 만약 번화가에서 팔고 있는 타르타르(Tartare)와 비슷한 일본 음식을 찾고 싶다면 우리는 아래와 같은 사칙 연산을 적용해 볼 수 있다. "Tartare" - "America" + "Japan" = ? 잘 훈련된 Word Embedding 모델을 사용하면 위의 결과로 "Sashimi"가 출력된다. 미국의 타르타르와 비슷한 일본 음식은 사시미인 것이다..! Word Embedding 모델은 단어들 사이의 추상적인 관계를 도출하는 도구로 사용될 수 있다. 내부 동작은 3단계로 이루어진다. Step 0. Window Size라고 불리는 목표 단어(..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bsstpq/btrxHxqVxkg/PRhLKkSkJkAVnHRrxCxK71/img.png)
혹시 Vue 3 Snippet 이 안깔려 있다면 Vue의 자동완성(Emmet)을 지원해주는 Vue 3 Snippet Extension을 깔아주고.. *.Vue 파일에서 "vueinit + [Enter]" 를 하면 아래와 같이 Vue template이 뙇하고 나온다.
회사에서 Kubernetes 대신 Docker Swarm으로 Orchestration을 하기로 결정되었다. 상대적으로 시간이 여유로운 내가 Docker Swarm을 담당하게 되었다. 여러개의 프로젝트를 Docker Swarm 환경에 띄우면서 겪은 삽질을 기록겸 공유겸 남겨둔다.. #00. 순서 1. docker-compose.yaml 파일로 Docker Image를 BUILD 2. Docker Swarm Manager, Worker 등록 3. Docker Swarm Manager Node에서 Private Repository 구동 4. docker stack deploy 명령을 통해 Docker Swarm 상에 Docker Image들을 구동 #01. docker-compose.yaml 파일로 Docke..
이 글은 IBM의 Docker Swarm vs. Kubernetes: A Comparison을 읽고 정리한 글입니다. Container Orchestration을 하려면 Docker Swarm과 Kubernetes 중 어느 것을 사용하는 게 좋을까? 우선 Container가 뭔지, Container Orchestration이 무엇인지 정리하고 넘어가자. Container는 우리가 배포하고자 하는 서비스 프로그램(app)과 이 프로그램이 의존하고 있는 모든 의존 프로그램들(dependencies)을 패키지 형태로 묶는 방법을 말한다. 이렇게 프로그램에 필요한 모든 것을 하나의 패키지로 만들면 언제 어디서든 그리고 docker를 지원하는 어떤 Runtime 환경에서든 프로그램을 실행시킬 수 있다. Conta..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bENMTK/btrvBl8sQ5y/P8ZMKi7kvHCJzx8XeS4ji1/img.png)
이 글은 DECISION TREES TUTORIAL을 읽고 작성한 글입니다. 타이타닉과 같은 재앙이 우리를 덮쳤을 때 살아남을 확률은 얼마나 될까? 우리가 만일 어린 아이이거나 여성일 경우 사회적인 통념 상 구원의 손길을 받아 살아남을 확률이 더 높을 것이다. 위급 상황에서는 여성과 아이들의 보호가 우선적으로 중요하기 때문이다. 우리가 살아남을 확률을 알아볼 때 Decision Tree를 사용하는 것이 좋은 선택이 될 수 있다. Decision Tree는 Yes, No와 같이 이분법적으로 대답할 수 있는 질문들로 구성된다. 당신은 남성인가? 여성인가? 당신은 성인인가? 미성년자인가? 와 같이 질문을 하고 그 대답에 따라 전체 데이터 집합을 여러개의 작은 집합들로 나눈다. 그리고 이 질문들을 하면 할수록 ..
이 글은 "TIME SERIES ANALYSIS WITH GENERALIZED ADDITIVE MODELS"를 읽고 작성한 글입니다. 시간의 흐름에 따라 나타나는 현상을 보고자 한다면 시계열(Time Series) 분석을 활용해보면 좋다. 단, 이 기법을 사용하려면 시간에 따라 일정한 경향이 있어야 한다. 어떤 우연한 사건들이 많으면 많을수록 시계열 기법은 그 효과가 감소하기 때문이다. 시계열 기법을 사용할 때 유용한 도구는 FaceBook에서 만든 Prophet이라는 라이브러리이다. 예언자라는 이름답게 이 라이브러리는 기존 데이터의 시계열을 분석해 미래에 어떤 경향이 나타날지 알려준다. 물론 완벽한 예측이란 있을 수 없고 더 먼 미래를 예측할수록 오차 범위도 더 커지지만 아무 정보도 없이 의사결정을 하..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bdc85r/btrviHRu0q3/KwWfX2VQWvA8A9248TusCK/img.png)
※ 이 글은 "WHERE WILL YOUR COUNTRY STAND IN WORLD WAR III?" 을 참고하였습니다. 만일 3차 세계대전이 발발한다면 각 나라들의 경쟁 구도는 어떻게 형성될까? AlgoBeans에서는 2006년 ~ 2015년 기간의 무기 수출입 데이터를 참고하여 주요 나라들의 정치적 역학 관계를 시각화하였다. 데이터는 SIPRI(Stockholm international Peace Research Institute)의 무기 교역 데이터를 활용하였다. 각각의 데이터를 그래프로 표현하고 그래프의 점(Node)은 각 국가, 점들의 연결 선(Edge)은 무기 교역 금액을 나타낸다. 선이 굵을수록 더 높은 가격의 무기 교역이 오갔으므로 더 가까운 관계로 본다. Gephi를 사용한 이 그래프는 ..