얼마 전에 okky에 웹 개발자도 개발자라고 할 수 있나요라는 글이 올라왔었다. 원문을 보기 전에 수많은 분들의 반응을 먼저 봐서 그랬는지 몰라도 가볍게 읽고 지나갔다. 이직으로 인한 인수인계에, 책 마무리 작업에, 이상한모임까지 겹쳐 자는 시간 외에는 정말 정신이 없었던 탓이다. 사실 코더랑 프로그래머를 분리해서 이야기하는 사람도 종종 봐왔기 때문에 이런 글은 그렇게 특별하지 않았지만 바쁜 와중에도 이 글이 계속 생각이 났다.

의외로 복사 붙여넣기 코드가 저평가 받는다. 붙여 넣어도 돌아갈 만큼 발달하기까지 얼마나 많은 과정이 수반되었는지 생각해야 한다. 3분 카레를 데워 먹는다고 그게 음식이 아니라고 할 수 없다. 음식이 상하지 않도록 하는 포장 기술도, 가열 도구의 발전도 저변에 깔려 있다. 그리고 공개된 조리법을 사용한다고 요리사가 아니라고 할 수 있을까? 파인 다이닝에서 요리하는 셰프가 스스로 레시피를 개발해서 요리한다 한들 그 사실을 동네 중국집 요리사를 요리사가 아니라고 말할 근거로 사용해서도 안된다. 솔직히 이런 부분은 언급할 필요도 없을 정도로 구차하게 느껴진다.

불편하게 느꼈던 부분은 억대 연봉자, 부당 대우에 관한 이야기다. 이 부분은 개인의 능력과는 별개로 산업 전반에서 필요한, 필수적인 논의다. 그 분야에서 대가가 되어야만 발언권을 갖을 수 있다고 생각하는 것 자체가 시장을 저해하는 요소다. 억대 연봉자가 늘어나면 지금 시작하는 사람들도 더 좋은 연봉을 받을 수 있지 않을까? 설령 잘 못하는 사람이 좋은 대우를 받는다면 잘하는 사람은 지금보다도 더 좋은 대우를 받을 수 있지 않을까? 하나는 낙수효과고 다른 하나는 분수효과에 대한 이야기로 어느 쪽이든 오늘의 환경을 개선하는데 일조한다고 생각한다. 그리고 부당한건 이야기하고 논의하고 연대해야 한다. 게임개발자연대와 같은 활동이 더 많아져야 한다. 적어도 엉뚱한 전제로 사다리를 걷어차지 말아야 한다.

오늘 점심은 풀스택 음식점 김밥천국에서 먹고 싶다.

얼마 전 트위터에서 사람마다 집중할 수 있는 환경이 다른데 한 공간에 몰아넣으면 얼마나 효율이 좋을까 하는 트윗을 읽었다. 그 중 유기용님의 트윗이 기억에 남는다.

이 트윗을 읽고 반성했다. 일하는 입장에서 프로답게 생각한다는 말에 너무 공감했다. 그래서 내게 있어서 대화가 방해로 느껴지는 경우를 곰곰히 생각해봤다. 대부분 아래 두 가지 경우였다.

  • 대화로 인해 내 작업 순위에 지속적인 영향을 주는 경우
  • 긴 호흡이 필요한 개발에 집중을 깨는 경우

회사(이제는 전 회사)에서 특히 전자가 심했고 개선해보려고 노력했지만 내 스스로 너무 스트레스를 많이 받았다. 대부분 이렇게 갑작스런 대화로 추가된, 짧은 호흡의 개발이 반복되면 내 자신을 갉아먹는 기분이 든다. 회사에서 이런 작업을 제대로 인지하면 다행인데 원래 해야 했던 일을 못하게 된다는 사실을 알지 못하는 경우가 많다. 다른 작업으로 진행하지 못한 일인데 계획대로 진행하지 못했다고 낮은 평가를 받게 된다면 고스란히 대화 자체에 압박을 받게 된다. 왜 커뮤니케이션의 비용을 작업자가 고스란히 떠맡게 되는 것일까? 이런 탓에 결국 업무 시간이 늘고 야근으로 이어지는 경우도 봐왔다.

나에게 집중은 등산처럼 느껴진다. 일을 하지 않더라도 내일, 이번 주, 이번 달 무슨 일을 할 지 계획에 맞춰 내 뇌는 일하지 않는 시간에도 준비를 한다. 그렇게 일의 순서를 생각하고 출근했는데 아침부터 치고 들어오는 수많은, 다른 일이 있다면 오후가 되어도 쉬이 집중이 되질 않는다. 산을 올라가려고 준비한 집중력을 다른데 다 써버렸으니 어쩌면 당연한 일이지만 스스로 계획하고 생각했던 만큼 올라가지 못해서 또 괴롭게 느껴진다. 오늘 할 일을 예측할 수 없게 될 때, 아침에 일어나면 출근이 두려워진다.

대화를 하지 않으면 당연히 일이 되지 않는다. 하지만 누군가의 우선순위를 바꾸는 대화는 좀 더 조심할 필요가 있다고 생각한다. 급한 일 카드를 남용하면 더 급한 일, 더 더 급한 일 카드도 금방 생겨나기 때문이다. 일의 순서가 바뀌는 상황을 잘 보고 그 일로 다른 업무가 밀리는 상황을 잘 봐야한다. 일을 주는 입장에서는 이 부분을 간과하기 쉽다. 작은 일이라도 이슈 트래커 등 모두가 작업 순서의 변화를 인지할 수 있는 경로를 통해 전달되어야 한다. 급한 일을 대비한 버퍼도 있어야 한다. 끼어드는 일거리의 중요도가 낮다는 이야기가 아니다. 대신 이런 일감을 어떻게 주고 관리하느냐는 회사의 역량이 들어나는 부분이라 생각한다.

대화가 방해가 된다고 느껴진다면 그냥 지나칠 것이 아니라 업무환경 적신호로 느껴야 한다. “대화탈출버튼”을 만들어서 나눠주지 않는다면 누군가는 그 짐을 고스란히 얹고 지내다가 “회사탈출버튼”을 눌러버릴 것이다. 더 빨리 눌렀어야 했다는 생각과 함께 말이다.

급한 작업이 끝난 이후로 먼지 수집기 역할을 하던 Dell XPS 13을 어제 중고 거래로 정리했다. 검트리에 올렸더니 온갖 사람들이 700불 800불을 깎으려 들어서 한동안 스트레스였는데 한 달 만에 올린 가격에 산다는 사람이 나타났다.

XPS 13도 좋은 노트북이다. 16GB 램도 올릴 수 있고 리눅스를 설치해도 전혀 문제 없이 구동할 수 있었다. 그래서 정을 붙여보려고 애썼는데 몇 가지 거슬리는 부분이 있어서 영 적응을 못했다.

  • 키보드가 좀 이상하다. 키감이 얇은 것 이상으로 뭔가 이상하다. 처음 받았을 때는 몇몇 키가 눌리는 느낌이 없어서 키보드 교체를 받았었다. 눌리지 않은 증상은 개선되었지만 여전히 어색했다.
  • 터치패드. 마우스 연결하기 위해 블루투스 켜는 용으로 달아놓은 수준. 물론 마우스를 들고 다니면 되겠지만…
  • 고주파음이 상당히 거슬렸다. 이전 글에서도 썼지만 조용한 곳에서는 너무 잘 들린다. 노트북은 자기 전에 가장 많이 사용하는데 일정한 고주파음도 아니고 스크롤 할 때마다 노래하듯 나는 소리는 참기 힘들었다.
  • 발열이 상당히 거슬린다. 게다가 펜이 돌기 시작하면 컴퓨터 끄기 전까지는 펜이 멈추지 않는다. 겨울에는 덕분에 따뜻했다.
  • 베터리 인디케이터가 지나치게 들쑥날쑥하다. 이건 하드웨어 문제인지 윈도 문제인지 모르겠는데 남은 퍼센트나 시간 표시만 믿었다가는 들고 나가서 켜자마자 죽는 것을 볼 수 있다.
  • 노트북 무게중심이 잘못된 것인지 한 손으로 뚜껑을 들어올릴 수가 없다.
  • 충전하면 어뎁터에 빛이 들어오는데 상당히 거슬릴 정도로 빛이 밝다. 불 끄면 거의 무드등 수준.

적고 보니 엄청 까탈스러운 사람이 된 기분이다. 물론 좋은 부분도 있었다. 디스플레이도 엄청 좋았고, 화면 터치도 가능했고(거의 쓰진 않았지만), 무엇보다 가격대비 스펙은 상당히 높다. 애써 친해지려고 노력했던 그간의 노력 때문인지 물건 건내주고 돌아오는 동안 쓸쓸한 기분이 들었다. 속도 시원하긴 하지만.

한동안은 크게 노트북 쓸 일이 없으니 이직한 후에 교직원 할인 받아서 애플 제품을 사던지 할 생각이다. 맥북 에어를 사용할 때 단 한번도 생각해보지도 불편하다고 느껴보지도 못한 부분에서 너무 시달린 터라 그냥 맥북을 사게 될 것 같다.

tmux는 입력하는 내용을 현재 열린 모든 pane에 전달하는 기능을 제공한다. 여러 위치에 있는 내용에 대해서 동일한 작업을 수행해야 하는 경우에 유용하게 사용할 수 있다. 이전부터 기능이 있다는 점은 알고 있었는데 딱히 사용할 일이 없다가 최근 장애 대응 중에 유용하게 사용해서 기록 해둔다.

tmux 창에서 pane을 열고 다음과 같이 입력한다. on이나 off를 지정하지 않으면 현재 설정과 반대로 토글한다.

<Ctrl-B>, :
setw synchronize-panes on

설정을 켠 다음에 입력하면 현재 창에 열린 모든 pane에 동시에 입력되는 것을 확인할 수 있다.

자주 사용한다면 단축키로 저장해둘 수 있다. .tmux.conf에 다음처럼 설정을 추가한다.

bind-key y set-window-option synchronize-panes

이제 <Ctrl-B>, y로 간편하게 사용할 수 있다.

최근에 화웨이 P9 Plus를 구입해서 오랜만에 안드로이드 환경을 사용하기 시작했다. 롬을 변경하거나 하지 않고 기본 EMUI를 사용하고 있는데 기본 한국어 폰트가 너무 안이뻐서 폰트를 변경하게 되었다. 혹시나 싶어 기록삼아 포스팅을 남기게 되었다.

그냥 ttf 넣는다고 바로 변경되지 않아서 한참 검색했는데 이전 버전은 간단하게 가능한 반면 4 버전 이상에서는 쉽게 되질 않아 결국 편법으로 변경했다. 폰트를 변경하는 앱이 있나 찾아보니 있긴 한데 평이 전부 더이상 되지 않는다는 얘기라서 설치해보지 않았다.

  • 먼저 Themes > Fonts 에서 무료 폰트를 아무거나 받는다.
    • 이 과정에서 화웨이 ID가 필요한데 폰에서 가입이 진행이 안되길래 화웨이 웹페이지에서 가입했다. (찾아보면 가입 주소가 상당히 다양하다.)
  • 새 폰트를 받으면 HWThemes/HWFonts 디렉토리가 생기고 새 폰트가 ttf 파일로 들어있다.
  • 사용하려고 하는 폰트를 위에서 받은 폰트 이름과 동일하게 변경해서 넣는다. (otf나 ttc 파일의 경우에도 이름만 ttf로 설정해서 넣어도 문제 없다.)
  • Themes > Fonts 에서 해당 폰트로 설정한다.
    • 미리보기는 그냥 이미지라서 무료 폰트 모양이지만 폰트는 변경한 ttf로 적용된다.

분명 메타데이터를 같이 넣는 방법이 있을 것 같은데 인터넷서 찾은 방법으로는 적용이 되질 않았다. 폰트와 xml 메타 데이터를 생성해서 <fontname>.hwt 폴더나 zip으로 압축해서 해당 이름으로 변경해서 넣으면 된다고 하는데 버전 차이인지 인식이 안된다. 서체는 Noto Sans Demi-Light가 가장 깔끔했다.

이전까지는 lubuntu에 있던 xterm을 비트맵이 정겨워서 그냥 사용했는데 특수 기호를 표시하는데 불편함이 있어서 터미널을 변경하며 손 본 기록을 남긴다. 지금 사용하는 환경은 별 특별한 내용 없이 기본 lubuntu 설치 상태다.

gnome-terminal 설치

다른 터미널 다 살펴봤는데 우분투 기본 터미널인 gnome-terminal 쓰기로 했다. lubuntu에서 제공하는 lxterminal은 별로 안이쁘다.

$ sudo apt-get install gnome-terminal

시작할 때 터미널 기본 시작

전체화면을 위한 플래그 셋, 그리고 시작 후에 터미널에서 tmux를 실행하도록 작성했다. 동일한 내용으로 /usr/local/binterminal 스크립트를 추가했다.

#!/bin/bash
gnome-terminal --window --hide-menubar --full-screen -e tmux

시작 -> 기본 설정 -> Default Applications for LXSession 들어가서 autostart에 terminal을 추가했다.

기본 IM와 연동되도록 플러그인 설치 fcitx.vim

Lubuntu에는 Fcitx-IM가 기본 IME다. Vim에서 모드를 전환하는 경우에 영문 자판이 아니면 매번 한영전환을 해야 하는 번거로움이 있는데 이 fcitx.vim 플러그인이 그 해결책이다. 이 플러그인은 Vim에서 모드를 전환하면 영문으로 전환하고 다시 끼워 넣기 모드로 돌아올 때, 이전 언어로 자판을 변경한다.

fcitx.vim 받아서 ~/.vim/plugin에 해제하면 끝난다.


그 외 터미널 시작 시에 메시지를 넣었는데 별 내용 없이 .zshrcecho로 넣었다. 분실 연락처 정도 넣었다. 아직 Vim을 사용해야 해서 아직 neovim으로 넘어가지 않았는데 얼른 하는 일 마무리하고 넘어가고 싶다. 이상하게 nvm이 터미널 시작을 느리게 만들어서 일단 주석 처리 해뒀다. 조만간 다시 확인해봐야겠다.

오랜만에 깔끔한 폰트로 터미널을 사용하니 또 새롭다. 바쁜 일을 좀 정리한 후에는 환경을 좀 더 꾸며보고 싶다.

작업을 하다 보면 작은 코드 스니핏을 공유해야 하는 경우가 있다. 간단하게 텍스트 파일을 작성해서 메일이나 메신저를 통해서 공유할 수도 있고 GitHub의 gist 서비스를 이용해서 공유할 수 있다. 이 gist에 코드를 올리는 작업을 브라우저 없이 터미널에서도 가능하다. 서비스 이름과 동일하게 명령도 gist다.

OS X에서는 Homebrew로 바로 설치할 수 있으며 루비로 작성한 도구라서 gem으로도 설치 가능하다. apt-get에도 올라와 있는데 우분투에서 설치하고 나서 제대로 동작하지 않아 gem으로 설치했다.

$ brew install gist # OS X에서 homebrew를 사용하는 경우
$ gem install gist # gem이 설치되어 있는 경우

설치를 한 다음, gist 명령을 입력하면 프롬프트가 출력되서 바로 코드를 작성할 수 있다.

$ gist
(type a gist. <ctrl-c> to cancel, <ctrl-d> when done)
// 코드를 바로 입력. cat과 같이 동작함.
console.log("Hello World");
// <ctrl-d>를 입력해 저장.
# https://gist.github.com/bc7c51a5d5bef0465c67b38c39f29b7e
$

아직 로그인을 하지 않았기 때문에 입력한 내용이 익명 계정으로 등록된다. 로그인은 --login 플래그를 사용해서 할 수 있다.

$ gist --login
Obtaining OAuth2 access_token from github.
Github username: haruair
Github password:
Success! https://github.com/settings/applications
$

간단하게 이미 작성한 파일을 올리는 것도 가능하다.

$ gist hello.js
$ gist index.js index.jade style.css # 여러 파일을 올릴 때

파일명은 -f 또는 --filename으로 지정 가능하다. 파일명을 지정한 경우에는 STDIN으로 올리려는 파일을 지정할 수 있다. 그리고 업로드한 주소를 바로 사용할 수 있도록 복사하는 -c, --copy 플래그도 존재한다.

다음 명령에서는 hello.js 파일을 index.js로 gist에 업로드하고 그 주소를 바로 복사한다.

$ gist -c -f index.js < hello.js
# https://gist.github.com/69872a365b9b073eb94ac14e87eb469e

이외에도 기존에 올린 코드를 수정하거나 private 모드로 올리기, embed 코드를 반환하는 등 다양한 플래그가 있다. 이 도구에서 제공하는 모든 기능은 --help로 확인할 수 있다. ruby로 작성되어 있어서 만약 ruby로 개발한다면 코드에서 사용할 수 있는 라이브러리 형태로도 제공한다. 엔터프라이즈 사용자를 위한 설정도 존재하는데 상세한 내용은 defunkt/gist 문서에서 확인하자.

터미널에서 작업을 하다보면 메모리 사용량이나 스토리지 사용량을 확인하기 위해 free -m 또는 df -h를 사용해본 경험이 있을 것이다. 명령을 입력하고 엔터를 누르는 순간에 명령을 처리하고 그 결과를 반환하기 때문에 지속적으로 변하는 결과를 살펴보기엔 불편하게 느껴질지도 모른다. 그런 상황에서 사용할 수 있는 명령이 바로 watch다. 이 명령으로 간격을 두고 반복적으로 결과를 확인하고 싶은 명령을 손쉽게 사용할 수 있다.

대부분의 리눅스 환경에는 이미 설치되어 있을 것이다. OS X의 경우에는 homebrew로 설치할 수 있다.

$ brew install watch

간단하게 사용해보자. date를 입력하면 현재 시각을 확인할 수 있다. watch date를 입력하면 매 2초 간격으로 date의 결과를 화면에 표시한다.

$ date
Thu 14 Apr 2016 22:02:59 AEST
$ watch date
Every 2.0s: date        Thu Apr 14 22:03:26 2016
Thu 14 Apr 2016 22:03:26 AEST

화면에서 빠져나오기 위해서 Ctrl + C를 입력한다. 기본적으로 2초의 주기로 설정되어 있는데 2초가 조금 길다면 -n, --interval을 이용해서 그 주기를 조정할 수 있다. -d, --differences를 추가하면 어느 문자가 변하고 있는지 강조된다. 스토리지의 용량을 확인하는 df 명령과 함께 사용하면 다음과 같다.

$ watch -d -n 0.5 df -h
Every 0.5s: df -h           Thu Apr 14 22:03:26 2016
Filesystem      Size   Used  Avail Capacity   iused      ifree %iused  Mounted on
/dev/disk1     931Gi  643Gi  287Gi    70% 168658707   75329829   69%   /
devfs          186Ki  186Ki    0Bi   100%       644          0  100%   /dev
map -hosts       0Bi    0Bi    0Bi   100%         0          0  100%   /net
map auto_home    0Bi    0Bi    0Bi   100%         0          0  100%   /home
/dev/disk2s1   1.8Ti  900Gi  963Gi    49%      2253 1009481363    0%   /Volumes/My Passport

만약 두 가지 이상의 명령을 동시에 모니터링하고 싶다면 간단하게 ;로 구분해서 호출할 수 있다. 다음은 현재 디렉토리를 확인하는 ls와 앞에서 본 df를 같이 사용하는 예시다.

$ watch -n 0.5 "ls -al ; df -h"
Every 0.5s: ls -al ; df -h          Thu Apr 14 22:03:26 2016
total 152
drwxr-xr-x@ 10 edward  staff    340 14 Apr 22:15 .
drwxr-xr-x@ 24 edward  staff    816 30 Mar 18:32 ..
-rw-r--r--@  1 edward  staff   2639 29 Mar 02:13 cowsay.md
-rw-r--r--@  1 edward  staff   2163  8 Apr 23:22 figlet.md
-rw-r--r--@  1 edward  staff   2541 14 Apr 21:43 gist.md
-rw-r--r--@  1 edward  staff    179  8 Apr 23:44 slurm.md
-rw-r--r--@  1 edward  staff  48201  8 Apr 23:26 slurm.png
-rw-r--r--@  1 edward  staff   1390  8 Apr 08:31 todo.md
-rw-r--r--@  1 edward  staff   2559 14 Apr 22:15 watch.md
-rw-r--r--@  1 edward  staff   2260  3 Apr 00:02 zsh-bash.md
Filesystem      Size   Used  Avail Capacity   iused      ifree %iused  Mounted on
/dev/disk1     931Gi  643Gi  287Gi    70% 168659745   75328791   69%   /
devfs          186Ki  186Ki    0Bi   100%       644          0  100%   /dev
map -hosts       0Bi    0Bi    0Bi   100%         0          0  100%   /net
map auto_home    0Bi    0Bi    0Bi   100%         0          0  100%   /home
/dev/disk2s1   1.8Ti  900Gi  963Gi    49%      2253 1009481363    0%   /Volumes/My Passport

명령을 쌍따옴표로 감싸서 실행했다. ;는 명령행에서 특별한 의미를 갖는 문자이기 때문에 watch 내에서만 실행하도록 전달하기 위해 쌍따옴표를 사용했다. 따옴표 없이 사용하려 한다면 \;와 같이 역슬래시로 탈출문자 처리를 하면 쌍따옴표 없이 동일한 결과를 모니터링 할 수 있다.

이처럼 watch는 아주 간단한 용도로 사용할 수 있는 모니터링 도구다. 즉 메모리나 프로세스를 모니터링 할 때는 htop과 같이 각 필요에 따라서 더 정밀하고 자세한 정보를 제공하는 도구가 많으니 자주 사용한다면 꼭 관련 모니터링 도구를 살펴보자.

터미널을 사용하다보면 영문자를 아스키 아트로 출력해서 프로그램명이나 제작 크레딧을 멋지게 꾸민 경우를 종종 볼 수 있다. FIGlet은 영문자를 입력하면 아스키 아트로 출력해주는 간단한 도구다. 앞서 살펴본 cowsay도 있지만 이 도구는 문자를 직접 아스키 아트로 출력한다는 점이 다르다.

이 도구도 상당히 오래 전에 개발되었기에 어느 플랫폼이든 손쉽게 설치할 수 있다.

$ brew install figlet
$ apt-get install figlet

사용 방법도 간단하다. figlet 명령과 출력하려는 텍스트를 입력하면 된다.

$ figlet HelloWorld
 _   _      _ _    __        __         _     _ 
| | | | ___| | | __\ \      / /__  _ __| | __| |
| |_| |/ _ \ | |/ _ \ \ /\ / / _ \| '__| |/ _` |
|  _  |  __/ | | (_) \ V  V / (_) | |  | | (_| |
|_| |_|\___|_|_|\___/ \_/\_/ \___/|_|  |_|\__,_|

-f 플래그로 다른 폰트도 사용 가능하다. 다른 폰트는 FIGlet 사이트에서 폰트를 받아 추가할 수 있다.

$ figlet -f isometric1 jeju

       ___         ___            ___         ___     
      /\  \       /\  \          /\  \       /\__\    
      \:\  \     /::\  \         \:\  \     /:/  /    
  ___ /::\__\   /:/\:\  \    ___ /::\__\   /:/  /     
 /\  /:/\/__/  /::\~\:\  \  /\  /:/\/__/  /:/  /  ___ 
 \:\/:/  /    /:/\:\ \:\__\ \:\/:/  /    /:/__/  /\__\
  \::/  /     \:\~\:\ \/__/  \::/  /     \:\  \ /:/  /
   \/__/       \:\ \:\__\     \/__/       \:\  /:/  / 
                \:\ \/__/                  \:\/:/  /  
                 \:\__\                     \::/  /   
                  \/__/                      \/__/    

사실 이 도구는 cli 외에도 각 프로그래밍 언어마다 이미 구현이 있을 정도다.

이제 터미널로 접속할 때마다 뜨는 메시지, 밋밋한 콘솔의 서비스명을 더 힙하게 표시해보자!

REST API를 테스트하는데 curl과 wget을 사용할 수 있겠지만 좀 더 읽기 쉽고 사용하기 좋은 도구가 있다. HTTPie는 cURL-like tool for humans라는 멋진 태그라인을 갖고 있는 강력한 CLI 도구다. 따지고 보면 curl에서도 모두 가능한 기능이지만 플래그를 주렁주렁 입력할 필요가 없이 간편하게 사용할 수 있고 컬러 스킴이 있어 훨씬 읽기 편하다.

이 도구는 온갖 패키지 관리자에 다 들어있기 때문에 있는 패키지 관리자로 설치하면 된다. 파이썬으로 작성된 도구라서 pip로도 설치 가능하다.

# 하나만.. 다음 중 하나만 설치
$ brew install httpie
$ port install httpie
$ apt-get install httpie
$ yum install httpie
$ pip install httpie

사용 방법은 아주 단순하다.

$ http httpie.org

http [flags] [METHOD] URL [ITEM [ITEM]] 형태로 보낼 수 있다.

# HTTP 메소드와 해더, JSON 데이터 전송
$ http PUT example.org X-API-Token:123 name=John
# 폼 전송
$ http -f POST example.org hello=World
# request 출력
$ http -v example.org
<figure style="width: 722px" class="wp-caption alignnone">
cURL보다 간단하게 사용할 수 있다. 별 내용 아니지만 색깔 이쁘면 보기 좋지 않습니까.

이외에도 세션과 같은 다양한 기능을 제공한다. auth는 auth 플러그인으로 제공하고 있고 외부 json 파일이나 바이너리 파일을 전송하는 기능도 있다. curl만큼 방대한 기능을 제공하고 있으니 HTTPie 리포지터리를 확인해서 어떤 유용한 기능이 있는지 살펴보는 것도 좋겠다.

요즘은 REST API 테스트하는 도구가 워낙 잘 나와서 curl도 잘 안쓰게 되는 편이긴 하다. 그래도 간단한 테스트는 HTTPie로 더 쉽고 간단하게 수행할 수 있어서 요긴하게 사용하고 있어 만족스럽다.

색상을 바꿔요

눈에 편한 색상을 골라보세요 :)

Darkreader 플러그인으로 선택한 색상이 제대로 표시되지 않을 수 있습니다.