반응형

tutorial 54

Python 계의 npm, Pipenv 첫 사용 후기

virtualenv + virtualenvwrapper를 통해 Python 가상 환경을 사용해왔었다. 사용하면서 딱히 불편한 점은 없었지만 가끔은 npm과 같이 기본적으로 고립된 환경과 비교하게 되는 때도 있었다. 일일이 가상 환경을 만든 것을 기억하고 관리하기가 조금 귀찮은 순간도 있는 것이다. 이렇게 npm, cargo 등의 여러 모듈 관리자의 좋은 점들을 모아서 더 나은 개발 환경을 제공하기 위해 Pipenv가 탄생했다고 한다. Requests 모듈의 창시자이자, flask 등의 유명한 Python 도구 개발에 참여하고, "The Hitchhiker's Guide to Python" 이라는 제목으로 책도 낸 Kenneth Reitz의 프로젝트 중 하나인 Pipenv를 눈 여겨 보고 있었다. 언젠가 ..

Programming/Python 2017.12.21

Vim 사용자가 되기 위한 첫 걸음 (.feat tmux)

추석을 낀 긴 연휴를 맞아 나의 개발 허세를 채우기 위해 Vim을 공부했다. Sublime Text, Atom 등의 슈퍼 메모장 시리즈를 쓰다가 업무 상 Python IDE인 PyCharm을 써오던 상황이었는데, 양 쪽의 장단점은 모두가 잘 알고 있으리라고 생각된다. 개인적으로 싫어하는 점을 꼽자면 슈퍼 메모장: 플러그인을 통해서 IDE 기능을 탑재해서 강력해질 수 있다고 하지만 오히려 Text Editor의 본질에서 벗어나는 것 같달까. 나도 Atom에 터미널 플러그인을 연결해서 편리하게 쓴 적이 있지만, 딱 그 정도였다. 플러그인은 또 다른 공부 거리이다. 플러그인 설치해서 파악하고 쓸려면 차라리 Vim을 공부해서 쓰는 것이 낫지 않을까?PyCharm은 너무 무겁더라. Docker 끼고 django ..

GNU-Linux 2017.10.06

Linux 초보의 tmux (terminal multiplexer) 입문

tmux는 많은 pseudoterminal을 window와 session 단위로 관리하는 도구이다. 하나의 tmux 서버가 세션을 관리하고, tmux 클라이언트는 tmux 서버와 소켓으로 통신하며 그 세션의 pseudoterminal들을 사용자가 원하는 방식대로 보여준다고 한다. 지식의 한계로 더 자세하게 설명할 수 없기 때문에, man tmux와 man pty를 남겨두고 본론으로 넘어가겠다.긴 추석 연휴를 맞이하야 Vim 스터디를 하다보니 Vim 플러그인을 이것 저것 둘러보다 보니 vim-dispatch 플러그인을 보다 보니 tmux 환경 하에서 비동기적으로 수행된다는 말을 보다 보니 이러다 저러다 보니 tmux에 첫 발걸음을 내밀게 되었다. 그래서 이번 포스트를 통해 첫 걸음을 걸은 과정을 기록하려 ..

GNU-Linux 2017.10.05

Vim의 화면 분할: window, tab 활용

vimtutor에서 다루지 않은 화면 분할에 대해 간단하게 정리한다. vim에서 화면을 관리하는 두 가지 방법으로 window와 tab이 있다. window는 화면을 쪼개는 개념이고, tab은 window를 추가하는 개념이다. vim은 여러 탭을 관리할 수 있고 (기본값으로 최대 10개의 탭을 열 수 있다), 각각의 탭에서 화면을 쪼개서 여러 파일을 다룰 수 있는 식이다. 이 글에서는 window와 tab 관련한 핵심 명령어 몇 가지만 정리한다. 여기에 나열된 것 보다는 직접 :help를 통해 도움말을 읽는 것을 추천한다. 화면 분할 :help windows :split: 화면을 가로로 쪼갠다.:vsplit: 화면을 세로로 쪼갠다.ctrl+w [hjkl]: 원하는 방향으로 화면을 이동ctrl+w ctrl..

GNU-Linux 2017.10.05

Ubuntu Desktop iBus 한글 설치 및 설정

Ubuntu Desktop을 새로 설치한 뒤, 한글 타자를 치기 위해 항상 한참 구글링을 해야한다. 그리곤 고새 까먹은 뒤 몇 개월 혹은 몇 년 뒤 또 같은 과정을 반복한다. 이를 방지하기 위해 오늘 iBus Hangul 설치 방법을 확실하게 정리한다. Ubuntu 16.04 LTS 기준. 언어 패키지 업데이트 Ubuntu 설치 후 처음으로 Language Support를 실행시키면 자동으로 업데이트할 것인지 물어본다. 이 업데이트를 해주자. 업데이트 후 위 그림처럼 Language for menus and windows 리스트에서 Korean이 있는지 확인한다. 없으면 그 아래 Install / Remove Languages... 버튼을 눌러서 Korean을 추가해준다. 그리고 재부팅을 한다. Text..

GNU-Linux 2017.08.24

Elasticsearch 초보의 mapping 관리

Elasticsearch는 분산 시스템을 기본적으로 지원하는 전문 검색(full-text search) 오픈 소스 프로젝트로, "검색"을 쉽게 접근할 수 있게 해주는 강력한 도구이다. 나중에 전반적으로 설명할 기회가 있다면 더 이야기하기로 하고, 이 글에서는 간단히 Elasticsearch의 index 및 type의 mapping 관리에 대해 내가 경험한 것들을 정리한다. mapping이란? Elasticsearch를 처음 접하고 공식 getting started 가이드를 따라 하나씩 해보는 사람이라면, 이 mapping이라는 개념을 쉽게 지나치게 된다. 왜냐하면 getting started 가이드에서는 샘플 데이터를 바로 index해버리고 검색해서 "짠 하고 검색이 된다"로 끝나기 때문이다. 다행히도 ..

etc 2017.05.07

NVM, Node Version Manager 소개

ubuntu에는 기본적으로 JDK, Python, Node.js 등의 프로그래밍 언어 및 도구들이 함께 설치되어 있다. Node.js가 설치되어있는 것을 확인해보려면 바로 쉘에서 아래와 같이 버전을 체크해보면 된다. ~$ node --version v4.8.3 ~$ npm --version 2.15.11 시스템에 기본으로 v4.8.3 버전의 Node.js가 설치되어있는 것을 확인할 수 있다. 하지만 Node.js 공식 사이트가 알려주는 최신 버전은 아래 스크린샷을 통해서 보듯이 v7.10.0, v6.10.3(LTS)이다. 최신 버전과 시스템 버전은 큰 괴리가 있음을 깨닫는다. 그럼 여기서 고민이 생긴다. 그냥 시스템에 깔려있는 Node.js를 쓸 것인가,아니면 최신 LTS 버전 (혹은 원하는 버전)을 설..

vim tutorial (vimtutor 요약 정리)

익숙해지면 강력한 텍스트 에디터 vim의 가장 기본적인 사용법을 정리한다. 기본 작동 논리vim에 들어오면, 기본(normal) 모드로 시작하는데, 이는 명령어 대기 모드이다. 입력 모드가 아닌 상태에서는 키보드 입력이 바로 글자 입력으로 인식 되지 않는다. 간단히 i를 눌러서 입력 모드로 들어가보자. 그리고 키보드 입력을 열심히 하면, vim 창에 글자 입력이 된다. 그리고 ESC키를 누르면 입력 모드에서 빠져나와 기본 모드로 들어온다. 이제 기본 모드에서 dd를 입력해보자. dd라고 입력되지 않고 명령어 dd가 실행되며, 이 뜻은 커서가 위치한 줄 삭제이다. 자신이 쓴 내용이 지워짐을 확인할 수 있다.방향키에 자유로워 지고 기본 모드, 입력 모드, 수정 모드 등의 간략한 모드들만 이해하면 vim은 매..

GNU-Linux 2017.01.27

filebeat과 logstash에서 여러 다양한 input 다루기

오늘은 elastic stack(과거 ELK stack)과 관련한, 그 중에서도 filebeat와 logstash에 대한 사항을 얘기하려고 한다. filebeat와 logstash는 ELK의 컴포넌트 중 raw data를 퍼다 날라주는 shipping layer 역할을 한다. 아래 그림이 logstash의 역할을 잘 설명하고 있다. elastic 회사의 공식 문서를 통해서 filebeat - logstash - elasticsearch - kibana로 이어지는 거의 실시간 로그 분석 시스템인 elastic stack을 체험해 볼 수 있을 것이다. 개인적으로 이 공식 문서 때문에 열 받은 적이 꽤 있기 때문에... 나중에 시간이 된다면 꼭 한 번 직접 정리를 하고 싶지만, 오늘은 간단히 filebeat와..

etc 2017.01.11

ubuntu 환경 변수 vs. 지역 변수

linux (ubuntu) 시스템에서 환경 변수와 지역 변수를 다루고 관리하는 법을 정리하겠다.환경 변수, 지역 변수란?프로그래밍 언어를 이용해 코딩을 할 때 가장 많이 사용하는 것은 아마도 assignment 일 것이다. 다음과 같이 변수에 값을 할당하는 것이다. a = 1 환경 변수와 지역 변수 역시 위 코딩에서 a와 같은 변수이다. 다만 운영 체제 내에서 쓰일 뿐이다. 환경 변수와 지역 변수의 차이는 사실 그 이름에서도 나타난다.환경 변수는 시스템 전체에 적용되고 있는 변수지역 변수는 현재 터미널에서만 적용되는 변수 환경 변수 다루기이미 내 컴퓨터는 많은 환경 변수를 갖고 있다. 기본적으로 시스템이 저장해두고 있거나 프로그램 설치 시 자동으로 추가되어있기 때문이다. 현재 정의되어 있는 환경 변수 리..

GNU-Linux 2016.12.19