2017 데이터 그랜드 컨퍼런스에 참석하며…

키노트와 비즈니스 키노트, 일련의 발표들을 들었다. 그리고 점심시간엔 부스에 전시된 제품들이나 연구결과들을 공유하는 자리에 가서 궁금한 것들을 물어보고 답변도 듣는 시간을 가졌다. 부스에서는 나도 모르게 “그러면 이 솔루션은 어디에 활용하는 건가요? 사용대상은 누구인가요?” 등의 질문이 툭 튀어나왔다. 산업 및 조직심리를 공부할 때 지도교수님께 지겹도록 들었던 질문을 내가 하고 있다니 세상에나! 연구결과는 실용성이나 시사점 또는 공익성이 있어야 … Read more

JetBrains Night 서울

JetBrains에서 필자가 관심갖고 있는 영역을 모두 행사에서 다룬다고 한다. 첫째는 IDE Tips & Tricks 파트다. Webstorm에 이어 PhpStorm과 PyCharm까지 사용하다가 Android Studio를 사용해야 하는 상황까지 되어서, IDE를 여러개 쓸 수 없다는 생각에 IntelliJ IDEA까지 구매를 했음에도, 사실 아직도 많은 단축키를 제대로 활용하고 있지 못한 점이 영 마음에 걸린다. 과거에 한글97 워드프로세서의 단축키 80-90%를 암기해서 쓸 … Read more

docker –link 옵션 대신 docker network 사용(도커 컨테이너 연결)

docker 컨테이너끼리 연결하는 방법이 궁금하신가요? 예전에는 컨테이너 간의 연결을 위해 docker –link 옵션을 이용했습니다. 하지만 이제는 docker network를 이용하셔야 합니다. 왜 그런지 그 이유를 살펴보고 docker network 사용방법을 알아보도록 하겠습니다. 개요 Docker는 컨테이너를 구동할 때 내부 IP 주소를 사용하는데, 내부 아이피를 지정해서 사용하지 않으면 계속 변동되기 때문에, 컨테이너 간에 접근할 때 IP 주소를 사용하면, 해당 … Read more

Vultr 서비스 사용기

국내 호스팅으로 CAFE24를 아주 작게 사용해왔었다. 월 500원의 비용으로 매우 저렴하게 이용했었다. 워드프레스로 블로그를 시작하면서부터 SSL 인증서가 적용되지 않는 점이 마음에 걸렸다. Letsencrypt를 사용하여 발급받은 인증서는 CAFE24에 자동으로 업로드가 되지 않아서 고객센터를 통해서 요청해야 했고, CAFE24의 응대는 깔끔한 느낌이 아니었다. 그리고 결정적으로 SSL을 443 포트로 서비스 받을 수 없었다. “클라우드 서비스 중에 좀 저렴하고 쓸만한 … Read more

phinx 실행시 timezone 문제 발생하는 경우

사실 phinx의 문제라기보다는 php 환경변수로 timezone이 설정되지 않아서 발생하는 경고 메시지이다. 필자는 phinx를 사용하여 마이그레이션하려할 때 아래와 같은 경고 메시지를 받았다. Warning: date(): It is not safe to rely on the system’s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and … Read more

phinx db migration tool setting

phinx.yml 에서 host를 localhost로 할 때엔 unix_socket을 정해줘야 한다. host가 localhost인데 unix_socket이 설정되어 있지 않으면, 다음과 같은 에러를 보게 된다. [InvalidArgumentException] There was a problem connecting to the database: SQLSTATE[HY000] [2002] No such file or directory unix_socket을 사용하지 않으려면 host를 127.0.0.1로 하면 된다. 참고자료: https://stackoverflow.com/questions/22188026/sqlstatehy000-2002-no-such-file-or-directory/25782795#25782795

Database migration with alembic or phinx

어떤 언어로 개발하든 데이터베이스를 수정할 일이 생기는 경우가 발생한다. 개발자의 개발 머신과 테스트 서버 그리고 상용 서버에 이르기까지 모두 적용해 주어야 한다. 때로는 어떤 상황으로 되돌아가야 하는 경우도 생긴다. 이와 같은 DB 변경 사항 적용을 마이그레이션이라 부르며, CodeIgniter나 Laravel 그리고 Django에서는 마이그레이션 기능을 내장하고 있다. 프레임워크와 별도로 작동하는 패키지가 있는지 찾아보다가 두 가지를 발견하였다. alembic은 … Read more

Android build setting

Andriod 앱을 빌드하기 위해서는 당연히 android sdk가 있어야 한다. 예전엔 android sdk를 다운받을 수 있었는데, 지금은 sdk tools를 별도로 제공하고 있다. 사용하려면 명령줄에서 실행해야 한다. 필자는 jenkins를 docker로 띄워 놓은 상태였고 git repository로부터 webhook이 걸리면 gradlew명령어를 사용해서 apk를 자동으로 빌드하려는 상황이었다. jenkins 컨테이너 내에 jenkins 사용자의 홈디렉토리는 기본으로 /var/jenkins_home에 세팅된 것을 기준으로 정리하였다. 이후에 tools/bin에 … Read more

Gitlab with docker and setup ssl using letsencrypt on macOS

Docker image를 생성하고 실행한다. 컨테이너의 443, 80, 22 포트는 각각 Mac의 8443, 8080, 8022로 매핑해준다. 동일한 포트로 사용하기 원하면 443:443과 같이 써주면 된다. sudo docker run –detach \ –hostname gitlab.example.com \ –publish 8443:443 –publish 8080:80 –publish 8022:22 \ –name gitlab \ –restart always \ –volume /Users/[username]/apps/gitlab/config:/etc/gitlab \ –volume /Users/[username]/apps/gitlab/logs:/var/log/gitlab \ –volume /Users/[username]/apps/gitlab/data:/var/opt/gitlab \  gitlab/gitlab-ce:latest Letsencrypt 인증서 … Read more

Bitbucket 저장소와 Jenkins Webhook 연동하기

Jenkins의 소스코드 관리에서 Bitbucket 저장소와 연동하여 사용할 수가 있다. 그런데, Webhook을 걸면 브랜치를 가리지 않고 항상 실행된다. 필자는 저장소에서 Webhook을 걸 때마다 개발용 앱과 상용 앱을 모두 빌드하게 하고 싶지 않았다. pull request가 개발 브랜치로 머지될 때에는 테스트 서버에 붙는 테스트용 앱을 빌드하고, 상용 브랜치로 머지될 때에는 실 서버에 붙는 상용 앱을 빌드하고 싶었다. 하지만 … Read more