# TL;DR git remote add upstream ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git git fetch upstream git merge upstream/master # 들어가며GitHub 에서 좋은 프로젝트를 발견했고 유용하게 사용을 하다보면 Contribution 하고 싶은 상황이 생깁니다. 개발자라면 보통 그래요. 이제 Contribution 을 마음먹었으니 프로젝트를 fork 하고 열심히 수정을 합니다. 그리고 Pull Request 를 날리겠죠. 며칠 후에 기분 좋은 메일이 왔습니다. Merged 되었다는 내용이죠 :-)여기까지는 좋습니다. 그리고 시간이 흘러 같은 프로젝트에 또 Contribution 하고 싶은게 생기게 됩니다. 여기서 문제가 생기게 되..
한빛미디어에서 번역된 머신러닝 도서가 출간되었다. 제목부터 심상치 않은데 파이썬으로 배우는 머신러닝의 교과서란다. 춘추전국시대 같은 머신러닝 시장에 당당히 교과서 타이틀을 쟁취할만한지 한빛미디어 나는리뷰어다를 통해 책을 지원 받고 살펴보았다. 책은 보통의 머신러닝 입문서 정도의 두께이고 안에 내용은 쥬피터 노트북의 설치부터 파이썬의 기본적인 활용으로 이어진다. 그리고 4장은 언제든 필요할 때 펼쳐서 볼 수 있도록 머신러닝에 필요한 수학 지식을 차곡차곡 담아놨다. 또한 아래처럼 노트북상에 그래프 표기를 위해 사용하는 matplotlib 설명이 잘 되어 있어서 많은 도움을 받았다. 4장에서는 다양한 수학을 다뤘지만 그렇다고 쉽다는 이야기는 아니다. 미분, 편미분, 편차 등 다양한 개념을 소개하고 공식을 대..
https://conda.io/en/master/ python 을 가상환경으로 사용할 수 있도록 지원하는 프로젝트중 하나인 conda 를 실무에서 빠르게 사용 할 수 있도록 살펴보도록 합니다. ( 또 다른 가상환경 프로젝트인 virtualenv 는 이쪽을 참고하세요 ) 우선 우리가 사용하는 OS 에 맞게 다음 링크에서 아나콘다를 다운로드 받도록 합니다 https://www.anaconda.com/download/ 설치가 끝나면 터미널에서 conda 명령어를 통해서 모든 조작이 가능한데 필수적인 옵션을 하나씩 살펴보도록 합시다. ( 실행 화면 등이 포함되어 있기 때문에 PC 버전에서 최적화 되어 있습니다 ) # 버전 확인 : 사용하고 있는 conda 패키지의 버전을 확인한다.$ conda --version..
http://kaldi-asr.org/ 이번 글에는 Kaldi 에서 제공하는 샘플 스크립트를 통해 기본적인 테스트를 진행하는 과정을 살펴봅니다. 테스트를 진행하기 전에 잠깐 Kaldi 의 디렉터리 구조를 살펴볼 필요가 있는데요, 소스코드를 내려받고 살펴보면 아래와 같은 구조를 확인할 수 있습니다. $ tree -L 1 . ├── COPYING ├── INSTALL ├── README.md ├── egs/ ├── misc/ ├── scripts/ ├── src/ ├── tools/ └── windows/ 6 directories, 3 files 6개의 디렉터리와 3개의 파일로 구성되어 있군요. 파일은 설치 과정이 메모되어 있는 INSTALL 과 프로젝트 소개가 있는 README.md, 그리고 카피라이트인 ..
http://kaldi-asr.org/Kaldi Speech Recognition Toolkit 의 동작에 대한 기본 테스트를 MacOS 에서 진행한 경험을 기록 합니다. 보통의 오픈소스를 살펴보면 READMD.md 와 같은 파일을 두고 그 안에서 설치 가이드를 제공하고 있는데 Kaldi 는 README 에서 그런 언급을 하지 않고 대신 INSTALL ( plain-text ) 파일을 제공합니다. 그럼 이제 INSTALL 파일을 확인하고 설치를 진행해보도록 합니다.우선 GitHub 을 통해 공개되어 있는 Kaldi 소스코드를 내려 받습니다. git clone https://github.com/kaldi-asr/kaldi.git 소스 디렉터리 홈에 있는 INSTALL 파일을 열어보면 다음과 같은 내용이 쓰..
2019년 1월 21일부터 티스토리에 HTTPS 가 일괄 강제적용 된다는 소식을 들었는데 뒤늦게 관리하는 블로그의 설정을 바꾸게 됐다. ( 관련공지 : 더 안전한 티스토리를 위해 - SSL 적용 완료 ) 그리고 블로그에 별로 신경을 못쓰고 있었는데 어느날 예전글을 검색해야 할 일이 있어서 카테고리 버튼을 누르는순간 해당 메뉴가 먹통이라는 것을 깨달았다. 그 외에 관리자 페이지도 먹통. 혹시나해서 개발자 도구를 열어보니 아래와 같은 에러가 잔뜩 확인되었다.해당 내용은 블로그 도메인은 HTTPS 를 사용하고 있는데 내부적으로 HTTP 를 사용하는 곳이 있고, 보안상 취약하여 해당 메뉴가 블럭되고 있다는 것. 해결 방법은 어렵지 않다. 스킨의 HTML 에서 사용하는 HTTP -> HTTPS 로만 변경해주면 된..
한빛미디어 리뷰어에 선정되어 읽어보게 된 "나의 첫 안드로이드", 딱 내 수준에 맞는 책이다. 그동안 서버 자체를 개발해왔으며 서비스 개발쪽으로 입문한 이후에는 백엔드 개발을 업으로 삼았는데 이 책은 클라이언트(앱) 개발자를 이해할 수 있는 좋은 기회이자, 스스로 앱을 만들어 보고 싶은 의욕이 충만해지는 계기가 되었다. 일단 그동안의 커리어답게 자바와는 담을 쌓고 살아왔다. 1장에 있는 그림부터 자바를 먼저 공부하라고... 불행중에 다행인것은 근래에 Scala 로 개발을 조금 해서인지 자바에 대한 부담은 그렇게 크지 않다. 모바일도 iOS 만 사용을 해왔던터라 안드로이드의 버전 이야기에는 항상 꿀먹은 벙어리로 있었는데 간지러운 부분을 잘 긁어준다. 안드로이드는 알파벳의 첫 글자에 매칭되는 디저트의 이..
2018년을 한 마디로 표현하면 "커리어 전환" 이라고 할 수 있겠다. 임베디드에서 C 를 주력으로 사용하던 2017년 뒤로하고 Node.js 를 거쳐 Scala 로. 클라우드는 GCP 를 시작으로 AWS 에 입문할 수 있었다. 1분기. 안녕 여기어때?작년 2017년에 이런저런 이유로 몇 개월 일을 쉬고 올해 1월 10일, 위드이노베이션에 입사하게됐다. 사람들에게는 “여기어때”라는 종합숙박을 서비스하는 앱으로 더 많이 알려져 있는 곳. 혹은 신동엽. 아무튼, 이 회사를 입사하면서 개발 인생에 큰 변화를 맞게된다. 웹 개발은 다른 세상 이야기던 내가 vue.js 를 만지작거릴 수 있는 기회를 얻었으며 메인 언어라고는 C밖에 모르던 임베디드쟁이가 node.js 를 만났다. 그리고 IDC 세상에 갇혀 마냥 클..
slack 에는 다양한 투표 기능이 있는데 대표적으로 simple-poll, polly 등이 있다. 하지만 이런 투표기능이 있는 명령어가 무조건적으로 무료는 아니다. polly 같은 경우에는 한달간 베타 버전처럼 사용할 수 있고 그 이후에는 비용을 지불해야 하며, simple-poll 은 일정 횟수 이상을 초과해서 사용하게 되면 비지니스로 업그레이드 해서 사용할 것을 권고한다.아래는 simple-poll 로부터 발생되는 비지니스 업그레이드 권고 메시지.warning: Remember to upgrade to Simple Poll Business before December 11thAs one of Simple Poll's most active workspaces, we were delighted to g..
개인 프로젝트를 고민하다가 예전부터 미루어 왔던 AI 스피커 만들기를 시작합니다. 프로젝트의 요구사항은 간단합니다. 사용자의 음성을 인식하고 의도를 파악한 후에 상황에 맞는 답변을 스피커로 출력합니다. 가벼운 요구사항이지만 내부적으로는 아래와 같은 기술을 필요로 합니다.- 사용자의 음성을 인식 ( Speech to Text ) - 변환된 Text 를 구문 분석 ( Natural Language Processing ) - 분석된 내용을 토대로 답변을 음성 출력 ( Text to Speech )일단 당장은 머신러닝에 대한 배경지식이 부족하기 때문에 세 가지 모두 쉬운 과제는 아닙니다. 그래서 고민끝에 우선 Speech to Text( STT), Text to Speech( TTS) 는 Google Cloud..
리액트와 함께 인기를 더해가는 vue.js 사용을 위한 기본 설치 과정을 설명하도록 한다. 우선 기본이 되는 vue 설치를 위해서는 아래와 같이 npm 명령어를 사용하도록 한다. $ npm install vue npm WARN saveError ENOENT: no such file or directory, open '/Users/caley/package.json' npm notice created a lockfile as package-lock.json. You should commit this file. npm WARN enoent ENOENT: no such file or directory, open '/Users/caley/package.json' npm WARN caley No descriptio..
남들 다 사용하는 CI/CD 대세 jenkins 를 docker 버전으로 설치해보자. docker 버전으로 설치하는 것에 별 다른건 없다. 서버에서 docker 를 사용할 수 있다는 가정하에 아래 명령어 두 줄이면 끝이다. $ docker pull jenkins/jenkins $ docker run -p 8080:8080 jenkins/jenkins:ltsjenkins 가 최초에 올라오면서 여러가지를 초기화 하고 아래처럼 초기 비밀번호를 콘솔에 출력해준다. 이 비밀번호를 복사하고 GUI 를 실행하도록 하자. ( localhost:8080 ) 아래와 같은 화면에서 비밀번호를 입력할 수 있다. 혹시 콘솔로그를 확인하지 못했다면 /var/jenkins_home/secrets/initialAdminPasswor..
한빛미디어에서 엑셀 관련해서 현업에서 사용되는 많은 스킬을 한방에 익힐 수 있는 좋은 책이 발간되었다. 기본적으로 책 내용 전체가 칼라인 것이 책을 수월하게 읽을 수 있도록 돕는다. 우리가 마주칠 수 있는 여러가지 상황에 대한 예제가 이 책의 핵심이 될 수 있다. 책의 저자는 엑셀 강의 경험이 풍부하고 지식이 깊은데 그런 많은 지식이 이 책에 그대로 녹아있어서 읽는내내 감탄을 하게된다. 이전에도 엑셀에 대한 강의나 책은 많았지만 다양한 버전중에 어떤 버전에 사용 가능한 스킬인지 모두 명시가 되어있다는 점이 이 책의 독보적인 장점이겠다. 내 경우에는 이것저것 엑셀로 정리해야 할 게 많은데 제대로 다루지 못해 아쉬운 점이 많았었다. 하지만 이 책을 만나고 한계를 살짝 극복한 느낌을 받게되었다. 사실 ..
오랜만에 큰 기대 없이 기술서적이 아닌 책 중에 골랐는데 목차부터 홀딱 반하게 만드는 책. 모던 스타트업. 책의 내용은 표지에 있는 것처럼 “팀 생산성을 높여주는 21가지 도구와 서비스”를 소개한다. 예를들면 슬랙, 지라, 깃헙, G스위트, 포스트맨, 제플린, 엔서블, 클라우드 등등. 현대의 스타트업이 기본으로 깔고가는 기술(도구)스택이라는 것을 알 수 있다. 아마 이 글을 보는 대부분의 지인들은 이미 대부분 알고 있는 내용일테지만 그걸 누군가 또 잘 정리해줬다면 어찌 읽어보지 않을 수 있겠나. 이 책이 바로 그렇게 잘 정리된 책이다. 한편 요즘 스타트업이 사용하는 생산성 도구 트렌드가 궁금하신 엔지니어에게도 분명 큰 도움이 될 수 있겠다. 트렌드를 알고 싶으시다면 레츠기릿. 😎 😎 책 부록으로 4 분의..
logrotate 는 특정 파일을 일정 시점, 크기 등 지정된 조건에 따라서 백업해주는 명령어이다. 주로 시간이 지남에 따라 한 없이 커질 수 있는 로그파일을 logrotate 를 통해 주기적으로 백업하는데 이용된다. 예를들어 system.log 라는 파일이 매일 1 GB 씩 내용이 누적된다고 하면 한달이면 벌써 30 GB 가 되버리고 그 파일 자체를 핸들링하는게 매우 어렵게 된다 ( 파일 안에서 특정 단어를 검색한다던지 ). 이럴 때 logrotate 를 통해 매일 지정된 시간에 system.log.1.gz, system.log.2.gz, system.log.3.gz... 으로 자동 백업하거나 파일 크기가 일정 사이즈 이상 되었을 때 분할 할 수 있다.우선 logrotate 는 심플한 소개가 달려있다...
쿼리를 날리고 설정된 타임아웃에 의해 Lost connection to MySQL server during query 에러가 출력되는 경우 워크벤치에 아래 설정을 통해 쉽게 해결 할 수 있다. Edit → Preferences → SQL Editor → DBMS connection read time out (in seconds): 600 괜히 DB 타임아웃 설정 값을 바꾸려고 애쓰지 말자. 사실 어차피 내부적으로는 로컬 타임아웃을 건드리고 있겠지만. :-)
데브옵스를 위한 교과서적인 책을 소개한다. 이 책은 누군가에게는 굉장히 수준 낮은 책일 수도 있고 또 누군가에게는 굉장히 유익한 책일 수 있다. 그래서 교과서라는 표현을 사용해봤다. 이전에 DevOps와 SE를 위한 리눅스 커널 이야기에 대한 리뷰를 작성했었는데 그 책이 Dev 쪽에 조금 더 무게를 둔 책이라면 이번 DevOps Troubleshooting 은 Ops 쪽에 무게가 실린다. 책의 내용은 서버를 운영하면서 겪을 수 있는 다양한 문제를 소개하고 이에대한 대처방안이나 트래킹 하는 과정을 이야기한다. 책의 큰 목차를 살펴보면 다음과 같다.01장 문제 해결 우수사례 02장 왜 서버가 이렇게 느리지? CPU, RAM 그리고 디스크 I/O의 자원 고갈 03장 왜 시스템이 부팅되지 않을까? 부팅 문제 해..
vim 에서 개발을 하다보면 여러줄에 걸쳐 동일한 메시지를 입력해야 하는 경우가 한번씩 있다. 그게 주석처리 문자( // )일 수도 있고, 혹은 메시지 추가일 수도 있는에 아래에서 그 방법을 살펴보도록 하자.우선 기본적으로 블럭 지정을 할 수 있어야 한다. 멀티라인에 커맨드를 날리기 위해서는 Ctrl + v 로 멀티라인 커맨드를 적용할 블럭을 지정하고, Shift + i 로 vim 을 편집모드로 만든다. 그리고 수정 하려는 문구를 추가하고 ESC 를 두 번 눌러주시면 된다. 필요하면 아래 영상도 참고해보도록 하자. 참 쉽다. :-) 멀티라인에 탭 같은 공백을 넣을 때는 아래 방법이 더 편하다.- { ... } 블록 시작이나 끝에서 >% - 숫자 + '>>'
신입/경력 구분없이 치열한 경쟁을 뚫고 입사하는 것은 박수받아 마땅하지만 나는 회사에 수습기간 제도를 찬성한다. 수습제도를 찬성하는데 특별히 대단하거나 그럴듯한 이유는 없다. 단지 우리 면접관들이 걸러내지 못한 부분을 함께 일하는 동료들이 평가 해야한다는 의견이다. 여기서 동료평가는 인성이나 조직의 적합성을 체크하는 부분과 철저하게 능력을 평가하는 부분으로 나눠져야겠다. 그리고 이 두가지 평가를 적절하게(6:4 라던가)조합해서 최종 합류 여부를 결정하면 된다. 어쩌면 누군가에게는 잔인한 방식일지 모르지만 한편으로는 기존 재직자를 지켜 줄 수도 있을거다.
지난번 구글 클라우드 스터디잼의 두번째 코스인 심화반 코스를 통해 스터디를 이어나갔다. 1 차 스터디잼때 인원에 비해 많이 줄었지만 학구열 만큼은 여전했던 스터디. 어느덧 종강이 앞으로 다가왔다. ( ※ 스터디잼은 구글 클라우드에서 2018년에 지원하는 5개의 코스로 제공되는 클라우드 교육 프로그램이다. ) 1 차는 퀵랩을 지원받아 Google Cloud Platform 의 많은 것들을 실습할 수 있었고, 2차 심화반은 코세라 강의를 통해 학습할 수 있었는데 강의 하나당 가격이 대략 $50 정도 된다. 이 강의가 모든 스터디 구성원들에게 제공된다니 입이 쩍 벌어진다. ( 아직 3차 ~ 5차는 미공개 ) 한편 코세라 강의는 총 세 개의 코스를 제공 받았는데, GCP 의 기본적인 인프라를 배우는 Google..
- Total
- Today
- Yesterday