Posts by Category

Blog

Apply sidebar at blog using Jekyll’s Minimal Mistakes


Categories: Blog
Tags: #Jekyll

Jekyll 블로그에서 카테고리 별로 이동할 수 있는 왼쪽 사이드바를 추가하고 싶었음. Minimal mistake을 사용하고 있기 때문에 아래 링크를 통해 사이드바를 추가하고, Custom sidebar navigation menu

How to run jekyll in webstorm


Categories: Blog
Tags: #Jekyll #Webstorm

이전까지는 webstorm 내 terminal 에서 명령어를 사용하여 local에서 테스트함. jekyll을 webstorm 에서 Run button으로 돌리는 방법 조사.

Apply google analytics at jekyll blog


Categories: Blog
Tags: #Jekyll #Google Analytics

Overview jekyll blog에 google analytics를 추가. 다른 블로그들에서 첨부하는 google analytics script 내용과 google analytics 페이지에서 첨부하라고 한 script 내용과 달랐음. 결국 두 방법 다 가능한 것이어서, go...

Move hosting service from Github pages to netlify


Categories: Blog
Tags: #Jekyll #netlify

Overview 지금까지 Github pages에서 블로그를 호스팅하였음. 하지만, Github pages는 jekyll theme와 plugin들에 대한 제한이 존재하여, custom plugin이나 theme 적용시, 배포 실패가 되는 경우가 빈번해짐. 그래서, 호스팅 서비스...

DB

Docker

Using bash cmd on dockerfile


Categories: Docker
Tags: #Docker #Dockerfile

Dockerfile 에서 CMD bash 명령어 사용하기 DOCKERFILE 내 container 를 docker run할 때 서비스 시작하기 위해서 CMD 키워드를 사용. 하지만, CMD service elasticsearch start로 하였을 때 서비스가 시작하지 않았음. ...

How to build docker image from dockerfile


Categories: Docker
Tags: #Docker #Dockerfile #Setup

Overview Docker는 Dockerfile로부터 명령어들을 읽어 image들을 자동적으로 빌드할 수 있다. Play framework v2.5.18 for scala 프로젝트의 배포된 bin파일이 JRE 8u151이 설치된 Oracle linux v7.2 docker im...

How to setup docker on macOS


Categories: Docker
Tags: #Docker #Setup

Overview Docker를 brew로 macOS에 설치하는 방법에 관한 포스트. Docker 공식 홈페이지에서는 Docker for Mac이라는 dmg 파일을 다운로드 받아 설치하는 방법을 소개함.

Elasticsearch

Migrate elasticsearch data using elasticdump


Categories: Elasticsearch
Tags: #Elasticsearch

elasticdump 이용해서 Elasticsearch 데이터 옮기기 기존 Elasticsearch 데이터를 테스트나 백업을 위해서 다른 곳으로 옮겨야함. Data migration tool이 있는지 찾아보다가 Elasticdump 을 발견.

Only anonymous user can read elasticsearch data by x-pack


Categories: Elasticsearch
Tags: #Elasticsearch #Setup

x-pack으로 임의의 유저만 elasticsearch 데이터 read가 가능하고, 인증 받은 관리자만 데이터 수정 가능하게 만들기 Setup Elasticsearch 글을 따라 설치한 Elasticsearch는 인증 받지 못한 사용자가 REST API 를 통해 데이터 조작이 가능...

Elasticsearch using docker build


Categories: Elasticsearch
Tags: #Elasticsearch #Docker #Setup

Docker build 로 Elasticsearch docker image 만들기 특정 이미지를 기반으로 하여 새로운 이미지를 만들 수 있는 Docker build에 대해 공부와 함께 이전에 ubuntu 14.04 위에 서비스로 elasticsearch 를 설치했던 내용들을 정리하...

Git

How to clone submodule on git project


Categories: Git
Tags: #Git #Programming

인계 받은 프로젝트 내 git submodule이 포함되어 있었음. 일단 $ git clone 후, submodule을 실행하려니, submodule의 repository 주소가 인계자 아이디가 포함된 절대 주소 값으로 표현되어 있었음. (ex. https://{다른 사람 id}...

IDE

Java

Linux

Check an expiration date of PEM file on ubuntu


Categories: Linux
Tags: #SSL #Ubuntu

Ubuntu에서 PEM 파일 만료 기간 알아보기 Ubuntu에서 특정 PEM 파일에 대한 만료 기간을 알아보고 싶을 때, openssl을 사용. $ openssl x509 -enddate -noout -in {file path/file.pem} notAfter=Dec 28 23:...

Office

Playframework

Programming

Compare Scala trait to java interface


Categories: Programming
Tags: #Java #Scala

Scala trait과 Java interface 비교 Java의 interface와 scala trait 둘 다 Class가 가지고 있는 특성을 추상화를 함. 그래서, 그에 대한 실제적 구현물은 interface 나 trait을 받는 쪽(implements, with)으로 맡길 ...

Thinking of software development process for small team


Categories: Programming
Tags: #Development process

Overview Atlassian의 jira와 bitbucket를 사용하였지만, 두 서비스를 별도로 사용하는 것과 별반 다를게 없어 좀 더 유기적으로 사용하여 이슈, 코드 관리를 하려함. 그러한 노력의 일환으로 각 jira 이슈 별로 bitbucket의 feature branch를...

Scala

Kakao blind recruitment comments


Categories: Scala
Tags: #Scala #Code Test

개요 카카오톡 블라인드 채용 과정 중 진행한 온라인 코딩 테스트 문제를 스칼라를 이용해서 풀어봄. 실제 코딩 테스트는 9월 16일(토) 오후 2시 ~ 7시 5시간 동안 진행되었으며, 자바, C++, 파이썬, 자바스크립트, 스위프트의 언어를 선택할 수 있었음(통계 및 문제 해설 관...

Web scraping with scala-#4


Categories: Scala
Tags: #Scala #Web crawler

Continued Web Scraping with Scala-#3 Requirements Wiki 페이지 안에 항목 페이지로 연결되는 Path 출력 모든 항목 페이지는 id가 bodyContent 인 html element 안에 존재함 항목 페이...

Web Scraping with Scala-#2


Categories: Scala
Tags: #Scala #Web crawler

Continued Web Scraping with Scala-#1 Requirement Scala scraper(A Scala library for scraping content from HTML pages) 사용 Get URL에 대한 Exception Case 처리

Web Scraping with Scala-#1


Categories: Scala
Tags: #Scala #Web crawler

Requirement 파이썬으로 웹 크롤러 만들기(Web Scraping with Python) 에서 파이썬 기본 라이브러리로만 웹 데이터를 string으로 받아오는 것에 대응하는 스칼라 스크립트 만들어보기

Functional Programming in scala


Categories: Scala
Tags: #Scala #Functional programming

함수형 프로그래밍이란 무엇인가? Pure function 으로 프로그램을 구축. Pure function은 Side Effect(부수효과: 정해진 결과를 돌려주는 것 이외의 어떤 일)가 없는 함수이며, Side effect의 예는 다음과 같다. 변수를 수정한다. 자료구조...

Service

Debug a web app using Simulator & Safari on Mac


Categories: Service
Tags: #iOS #Safari

Mac에서 iOS Simulator와 Safari를 사용한 웹앱 디버깅 모바일 웹앱 개발을 하면 모바일 사파리에서 디버깅을 해야할 때가 있다. 모바일 사파리는 다른 브라우저는 물론 맥 사파리와도 다른 동작을 보여줄 경우가 있기 때문이다.

Heroku에서 MariaDB를 무료로 사용해보자


Categories: Service
Tags: #Heroku #MariaDB

Heroku에서 MariaDB를 무료로 사용해보자 Heroku에 SpringBoot App을 무료로 배포해보자에 이어서 DB도 무료로 사용해보기로 하였다. DB를 사용하기 위해서는 heroku addon이 필요하다. 그리고 addon을 사용하기 위해서 신용카드 등록이 필요하다. 등...

Heroku에 SpringBoot App을 무료로 배포해보자


Categories: Service
Tags: #Spring Boot #Heroku

Heroku에 SpringBoot App을 무료로 배포해보자 개인적으로 공부한 내용이나 하드웨어 리소스가 많이 필요하지 않은 간단한 백엔드 서비스를 개발하고 배포해보고 싶었음. 개인 서버나 클라우드 서버스를 사용하면 되지만 비용이 발생함. 초기에 무료로 사용할 수 있는 서비스가 있...

ngrok - Tool for Public URLs


Categories: Service
Tags: #ngrok

ngrok 로 localhost 를 Public url 로 접근 https를 사용해서 접근해야하는 프로젝트에서 로컬 개발 환경해서는 https를 따로 설정하기 힘듬. 그런데 ngrok 를 활용하면 localhost를 Public URL로 http, https 둘 다 접근 가능함. ...

Start jenkins with Bitbucket


Categories: Service
Tags: #Jenkins #Continuous Integration #Setup

Jenkins 와 Bitbucket 연동으로 CI 시작하기 기존 작업 방식은 다음과 같음. 개인 컴퓨터(Local)에서 작업 진행 → 개발 서버 git bare repository 에 Commit & Push → git hooks shell script 으로 push 발생...

Set Java version manager (jenv)


Categories: Service
Tags: #Setup #jenv

자바 버전 관리자(jenv) 설치 다양한 버전의 자바를 사용하기 위해서 버전 관리 패키지(jenv)를 설치. ```sh $ brew install jenv

Spring

Introduction Spring Cloud Gateway


Categories: Spring
Tags: #Spring Cloud Gateway

Spring Cloud Gateway 소개 마이크로 서비스 아키텍처에서는 여러 마이크로 서비스 어플리케이션들로 구성되어 있으므로 각각 서비스 어플리케이션에서 공통 기능(하나의 서버 어플리케이션에서 Filter로 처리하던 기능들)을 구현해야하는 힘든 점이 있다. 그러한 공통 기능을 ...

Monitoring HikariCP Log on Spring Boot


Categories: Spring
Tags: #Spring Boot #Java #ErrorHandling

문제 상황 배포 이후, 지속적으로 DB Connection이 증가하여 DB와의 연결이 끊어지는 문제가 발생하였다. 특정 API에서 DB Connection이 정상적으로 종료되지 않고, sleep 상태로 가기 때문이었는데, 이를 확인하기 위해서 Connection Pool을 log로...

Setting Spring boot project on IntelliJ


Categories: Spring
Tags: #Spring Boot #IntelliJ #Setup

Spring boot 프로젝트 IntelliJ 에 세팅하기 Play framework in Scala 를 사용하다 아래와 같은 이유로 Spring boot 프로젝트를 시작. 커뮤니티나 레퍼런스의 양이 많음 개발자를 구할 경우 Scala + Play 보다는 Java + Sp...

Test

Web

Event Function on HTML Element & Vue


Categories: Web
Tags: #JavaScript #Vue

HTML Element와 Vue에서 Event function 바인딩 테스트 테스트 이유: Vue 에서 click event를 선언하는데, method 이름만 선언된 경우와 method 실행을 선언할 때 다른 파라미터 값을 넘겨주었다.

Test RxJs’s zip method


Categories: Web
Tags: #JavaScript #RxJS

테스트 이유 RxJS Observable.zip 으로 여러 비동기를 묶을 때, 그 개별 비동기 안에 있는 비동기도 기다리는가를 실험해보았다. 결론은 zip은 zip으로 묶은 비동기들만 기다리고, 그 내부에서 호출한 비동기는 zip과 상관없이 실행된다.

Refactoring Vue Global Mixin Component


Categories: Web
Tags: #Vue #JavaScript

배경 프로젝트가 시간에 지남에 따라 Vue Global mixin 컴포넌트가 방대해졌고, 특정 도메인 컴포넌트에서만 쓸 것 같은 기능들이 들어간 것을 발견하였다. 이를 분리하면서 생각했던 내용들을 정리하였다.

Unusual point of cookie on ios web browser


Categories: Web
Tags: #Mobile #ErrorHandling

왜 나는 눈앞의 버그를 보지 못했는가? - iOS 웹 브라우저에서 쿠키 설정 시 특이사항 보이지 않는 고릴라 실험을 아시나요? iOS 웹 브라우저 쿠키 설정에 대한 버그를 찾아나서는 과정 중에 유사한 상황을 겪어서 공유하고자 합니다.

Smart Banner to announce app on mobile web


Categories: Web
Tags: #Mobile

모바일 웹에서 앱을 알리는 방법 어떠한 서비스에서 모바일 웹과 동일한 기능이거나 더 나은 기능을 제공해줄 수 있는 모바일 앱이 있을 수 있다. 그러한 경우 사용자가 그 앱을 다운로드 받을 수 있도록 안내를 해줄 필요가 있다. iOS라면 App Store, 안드로이드라면 구글 플레이...

Cross-Origin Resource Sharing (CORS) 문제 해결 및 개념


Categories: Web
Tags: #JavaScript #CORS

문제 상황 공통 컴포넌트를 라이브러리 형태로 배포해서 여러 다른 서비스(도메인)에서 임포트하여 사용 공통 컴포넌트에서는 데이터를 가져오기 위해서 공통 컴포넌트 관리 서버의 API를 호출 ex. https://service-a.jungbin.kim/ind...

Behavior of JavaScript addEventListener


Categories: Web
Tags: #JavaScript #Vue

개요 특정 Vue component의 mounted에서 component 내부 특정 DOM 들에 addEventListener로 이벤트 함수를 걸어줌. 이 component는 사용자가 다른 페이지로 넘어가면서 destroyed 됨. 이 때 component 내부 DOM들에 걸려있는...

Decrease webpack bunlding file size


Categories: Web
Tags: #JavaScript #Webpack #Bundling

Webpack bundling 파일 사이즈 줄이기(Tree Shaking) 이 글은 개인적으로 시간 계산이 필요한 크롬 확장 프로그램 앱을 개발하다가 빌드 파일 크기 문제가 발생하면서 작성하게 되었습니다. (사용환경: Webpack v4.29.3)

VueJS mixin 과 extends 차이


Categories: Web
Tags: #JavaScript #Vue

VueJS mixin 과 extends 차이 동일 이벤트훅이 지정되었을 때의 호출 순서 mixins 와 extends 가 어떻게 다른 건가요? 질문 글에 대한 답변으로 Composing Vue.js Components 글이 언급됨. 내용은 아래와 같았음. ...

Basic Concepts of Web Worker


Categories: Web
Tags: #WebWorker

Web Worker 기본 개념 Worker 는 생성자를 사용하여 생성하는 객체. ex) new Worker("worker.js") 위의 예의 worker.js 파일에는 Worker 스레드가 실행할 코드가 존재. 이는 현재 윈도우와 다른 전역 컨텍스트에서 실행됨. 그래서 W...

Building WebAssembly on MacOS


Categories: Web
Tags: #WebAssembly

C/C++ 코드를 WebAssembly로 빌드하기 위한 Mac OS X 환경 설정 Emscripten 설치 가이드를 참고하여 C와 C++을 WebAssembly로 컴파일하기 위한 도구 Emscripten 설치

iOS

Google Analytics on iOS


Categories: iOS
Tags: #iOS #Google Analytics

iOS App 에 Google Analytics 라이브러리 연동 (Swift 3.2 / Xcode 9 초반) 코코아팟으로만 라이브러리 임포트를 했을 경우, import가 안되는 현상이 있음. Google Analytics 라이브러리 임포트하는게 제일 어려움.

UIView extension for add/remove border


Categories: iOS
Tags: #iOS #Swift3 #UIView

iOS UIView 방향별 border 추가/삭제 iOS에서 Swift3로 UIView의 top, bottom, left, right 에 border 추가/삭제할 수 있는 코드. extension을 이용하여, UIView에서 해당 함수를 접근할 수 있음.

Controls motion detection sensitivity levels on iOS


Categories: iOS
Tags: #iOS #Swift3 #Sensor

iOS motion sensor 민감도 조절 방법 조사 디바이스 센서 데이터와 같이 지속적으로 업데이트되는 값은 들어오는 값 그대로(raw data)를 사용하는 것은 성능에 좋지 않을 수 있다. 데이터가 업데이트되는 주기가 빠를수록 그 데이터를 이용해야하는 함수 호출 또는 UI 렌...

iOS Ad-hoc deploy


Categories: iOS
Tags: #iOS #ad-hoc #Deploy

Archive App을 빌드하는 것을 archive 라고 함. xcode 최상단 top 메뉴바에서 Product > Archive Archive가 완료되면, 지금까지 빌드한 앱들의 히스토리를 볼 수 있는 창이 뜸. 이 창은 Window > Organizer 으로 이동 ...

nginx

Protecting from Clickjacking


Categories: nginx
Tags: #nginx #Security

클릭재킹(Clickjacking) 해킹 기법 중 하나. 관련 예방을 하지 않는다면, 웹 사이트에서 iframe 이라는 html 태그를 사용해서 주소가 다른 사이트를 불러올 수 있다.

Nginx logrotate


Categories: nginx
Tags: #nginx

Nginx logrotate 설정 배경: nginx log가 한 파일에 계속 남고 있어서 용량이 점점 커지고 있었다. -rw-r—r— 1 root root 211889676 2019-07-17 09:44 access.log -rw-r—r— 1 root root 1662663 2...

programming

Get HTML meta data by Ruby library


Categories: programming
Tags: #Ruby #Script

HTML meta 데이터 가져오는 Ruby 스크립트 만들기 URL으로 HTML meta 데이터를 가져와 보여주는 Jekyll Plugin을 만들고 싶어서, 해당 기능을 가지고 있는 Ruby 라이브러리들을 찾아봄. URL을 입력값으로 meta 데이터를 객체로 매핑해서 반환해주는 것...