tag: 개발 잡동사니

Dell Inspiron 11 3000 한 달 사용기

2016년 3월 27일

지난 달 노트북을 구입하고 매일 들고 다니면서 유용하게 사용하고 있어 간단하게 사용기를 남겨본다. 4월이면 애플이 새로운 맥북을 내놓을 거라는 이야기가 계속 있어서 노트북을 구입하지 말고 기다려야 하나 고민했었다. 하지만 당장에 해야 할 일이 워낙에 많았던 터라 노트북이 필요했었는데 그렇다고 큰 돈 안쓰고 저렴한 노트북으로 알아보다가 구입하게 된 것이 Dell Inspiron 11 3000이다.

장점

배터리가 엄청 오래간다. 들고 다니면서 하루 1시간 정도 사용하는데 일주일에 한 번 정도 충전한다. 사양이 낮은 것인지 배터리 효율이 좋은 것인지는 모르겠다.

소음이 없다. 이건 팬이 달려 있지도 않을 뿐더러 스토리지가 메모리타입이기 때문에 별도의 팬이 필요하지 않은 것 같다. 다만 좀 과하게 사용하면(= 파이어폭스 창 2개 켜고 터미널 열면) 발열이 좀 있는 편이다. 팜레스트나 키보드보다는 노트북의 하판이 뜨거워지는 편이라서 그렇게 뜨거운걸 느끼진 못하지만 아마 더 많은 연산을 하면 키보드쪽도 뜨거워질 것 같다.

키보드가 준수한 편이다. 키감도 괜찮은 편이고 실제 키보드보다 사이즈가 작아지면 의례 레이아웃을 이상하게 만들거나 키 배치를 어색하게 만들어서 불편하기 마련인데 작은 사이즈에도 불편함이 거의 없는 편이고 방향키 레이아웃도 여유가 있어서 편하다. 키감은 펜타그래프 치고는 좀 얕게 느껴지지만 질이 꽤 좋다. 이런 키보드에서는 메타키를 Fn 조합으로 많이 제공하는데 Delete나 Insert는 일반 키로 설정되어 있어서 특히 마음에 들었다.

단점

모니터 시야각이 좀 심하다. 이건 TN 패널의 고질적인 문제라고 하는데 충분히 밝은 곳이 아니면 이상하게 눈이 쉽게 피곤해지는 느낌이다. 이 노트북에서 하는 작업이 코드를 작성하거나 이미지를 봐야 하는 작업이 아니라 대부분 터미널에서 글쓰고 일기쓰는 정도 일만 하고 있기 때문에 크게 민감하게 생각하고 있진 않지만 만약 그런 작업이 필요하다면 별로 추천하고 싶지 않다. 아쉽게도 이 가격대의 노트북에서 TN 안쓰는 경우를 찾기가 힘들다.

흰지가 조금 불안한 편이다. 무릎에 놓고 사용하기에는 모니터 각도가 충분하게 젖혀지지 않는데다가 약간 힘을 주면 흰지와 모니터 사이가 벌어지는 것을 볼 수 있다. 출퇴근하면서 사용할 때 다른 사람이 내리다가 가방 같은 것으로 모니터를 치면 이게 부러지거나 할 것 같아 불안하다. 그렇다고 아주 헐렁하거나 톡 쳐도 부서질 것 같은 내구성인 것은 아니다.

저가형 노트북 답게 트랙패드가 좋지 않다. 염가 노트북에서 투 핑거 휠까지 지원한다는 것이 놀랍긴 하지만 작은 키보드를 사용해서 입력하다보면 손뼘에 닿아 커서가 이동해버릴 때가 있다. linux에서 키보드 입력 중에 트랙패드 입력 차단하는 설정이 있어서 설정을 해뒀었는데 막상 커서를 사용하게 될 때는 불편함이 있어서 그냥 익숙해지기로 했다. 필요할 때는 민감하게 반응 안하고 필요하지 않을 때는 너무 민감해서 참 친해지기 어렵다.

그 외에는

그 외 짧은 코멘트는 다음과 같다.

  • Windows 10은 생각보다 무거워서 lubuntu를 설치했는데 만족하고 있다.
  • 무게는 적당하다. 무겁다고 생각해본 적은 없다.
  • 플라스틱이라 모서리가 깨질까 걱정이 되긴 한다.
  • HDMI 포트가 있는데 쓸 일이 아직 없어서 잘 모르겠다.
  • 마이크로SD를 지원한다. dropbox가 안되는 상황에서 백업용으로 사용하고 있다.

추천한다면

  • 리눅스 설치해서 터미널만 써도 상관 없는 사람
  • 간단한 웹서핑, 글만 쓰면 되는 사람
  • 300불 예산 언저리에서 구입해야 하는 사람
  • 노트북 소음이 싫은 사람
  • 충전 자주 하는 귀찮음이 싫은 사람
  • 데스크탑이나 다른 중요한 일을 처리할 수 있는 컴퓨터가 있는 사람
  • 심심한 사람

추천 안한다면

  • 조금 사양 높은 게임 해야하는 사람 (에뮬 게임이라면 뭐…)
  • 메인 노트북으로 사용해야 하는 사람
  • 탭 3개 이상 켜고 인터넷 하는 사람
  • 윈도만 써야 하는 사람 (XP 같은거 설치하면 빠를지도)
  • 좋은 디스플레이가 필요한 사람
  • 예산을 늘릴 수 있는 사람

지금까지 사용한 경험으로는 충분히 본전을 뽑을 것 같은 기분이 든다. 터미널에도 점점 친해지고 있고 웹브라우저 없이도 사는 방법을 배우고 있다. (뭔가 이상하지만) 새 맥북이 나오더라도 당분간은 이 노트북으로 계속 지내게 될 것 같다.

Lubuntu에서 우측 Alt키를 한영 전환키로 설정하기

xkb로 우측 Alt키를 Hangul키로 바인딩해서 한영키 설정하는 방법

2016년 3월 23일

맥 환경을 사용할 때는 Ctrl + Space를 사용하고 있지만 지금 lubuntu를 설치해서 사용하는 노트북은 키보드 사이즈가 작은 문제인지 Ctrl + Space가 손에 잘 익지 않았다. 그래서 한영 전환키로 우측 Alt 키를 배정해서 사용하고 있었는데 작성하다보면 변경이 되었다 말았다 하는 문제가 있었다. 단순히 입력기 문제라고 생각하고 있었는데 Alt키의 기본 동작이 동시에 나타나는 문제였다.

lubuntu는 xkb를 통해 키보드 맵핑을 처리하고 있다. /usr/share/X11/xkb/symbols/altwin을 열어서 다음 부분을 확인한다.

$ sudo vim /usr/share/X11/xkb/symbols/altwin
// Meta is mapped to second level of Alt keys.
partial modifier_keys
xkb_symbols "meta_alt" {
    key <LALT> { [ Alt_L, Meta_L ] };
    key <RALT> { type[Group1] = "TWO_LEVEL",
                 symbols[Group1] = [ Alt_R, Meta_R ] };
    modifier_map Mod1 { Alt_L, Alt_R, Meta_L, Meta_R };
//  modifier_map Mod4 {};
};

RALT 즉, 우측 Alt키에 Alt_R, Meta_R이 배정된 것을 확인할 수 있다. 이 키의 키맵을 아래와 같이 Hangul로 변경한다.

// Meta is mapped to second level of Alt keys.
partial modifier_keys
xkb_symbols "meta_alt" {
    key <LALT> { [ Alt_L, Meta_L ] };
    key <RALT> { type[Group1] = "TWO_LEVEL",
                 symbols[Group1] = [ Hangul ] };
    modifier_map Mod1 { Alt_L, Alt_R, Meta_L, Meta_R };
//  modifier_map Mod4 {};
};

키맵 설정은 컴파일 과정을 거쳐 /var/lib/xkb 위치에 xkm 파일로 저장되어 있다. 해당 파일을 제거한다. 제거하면 위에서 변경한 설정을 반영한 새로운 파일을 생성할 준비가 끝난다.

$ sudo rm /var/lib/xkb/*.xkm

이제 로그아웃, 로그인을 다시 해서 위에서 제거한 파일을 다시 생성한다. 오른쪽 Alt키가 Hangul키로 변경 된다. 한글 입력기에서 한영 전환키를 다시 설정하면 RALT 대신 Hangul 키로 잡히고 이제 입력이 올바르게 잘 동작하는 것을 확인할 수 있다.

이모콘 2016 S/S 스피커 참여 후기

누구나 참여할 수 있는 컨퍼런스 이모콘! 스피커로 참여하고 느낀 점

2016년 3월 20일

이상한모임 주관으로 진행된, 장소에 구애받지 않고 어디서나 참여할 수 있는 컨퍼런스, 이모콘 2016 S/S에 발표자로 참여했다. 이모콘은 누구든 자신의 경험을 공유할 수 있는 기회를 제공하는 형식으로 진행되는 온라인 컨퍼런스다. 지난 1회에서는 스탭으로 참여했지만 2회에서는 스피커로 참여할 수 있었다.

주제 선정은 한참 고민했었지만 개인적인 일정에 생각보다 시간을 만들지 못해서 이전에 포스팅한 적이 있던 NodeJS의 제너레이터에 관한 내용을 선정했다. 더 미리 준비해서 시작했다면 다른 재미있는 내용을 했을텐데 좀 더 일찍 주제를 정했으면 하고 후회를 좀 했다. 그래도 이전에 작성한 포스트는 koa를 설명하기 보다는 generator와 spawn하는 함수를 작성하는데 너무 많은 분량을 할애해서 정작 koa 얘기가 너무 적었던 반면에 이번엔 koa를 더 설명해야지 하는 욕심이 있었다.

라이브로 진행을 하고 싶었지만 긴장해서 진행에도 방해되고 발표도 신경쓰면 너무 정신 없을 것 같았고, 30분에 맞추기 위해 여러 차례 연습을 하는 것보다 단 편집을 고려해서 한 번 촬영 후 편집으로 30분에 맞추는게 낫겠다 판단해서 녹화를 했다. 슬라이드 준비에 1시간 반 정도 걸렸고 촬영에 45분, 편집에 2시간 반 정도 걸려서 총 4시간 40분 정도 시간을 사용했다. 결과적으로는 연습해서 그냥 하는 시간과 별 차이 없는 느낌이 들었지만 중간에 불필요한 설명을 자른다거나, 미리 넘어가버린 슬라이드를 보정한다거나 하는 부분에 있어서는 많이 편했다. 아무래도 이모콘 특성 상 녹화로 대체할 수 있다는 것은 장점이겠지만 다음에는 라이브로 할 수 있도록 준비를 미리 해야겠다는 생각을 편집하는 내내 했다.

영상 편집은 Screenflow 라는 도구를 사용했다. 예전에 번들로 구입한 적이 있었는데 한번도 사용해보지 않다가 처음으로 제대로 사용했다. 스크린/사용자 녹화, 편집기까지 간단한 기능은 모두 제공한다. 영상을 자르고 편집하는 단축키가 마스터링 도구(어도비 프리미어나 애플 파이널컷 같은)에 비해서 좀 모자란 편이라서 마우스로 일일이 한 탓에 편집 시간이 더 들긴 했지만 그래도 편집하는 도중에 멈춘다거나 하는 일 없이 끝까지 무사히 편집할 수 있었다.

슬라이드는 이전 이상한모임 멜번 모임에서 사용했던 적이 있는 reveal.js를 사용했다. 사실 기본 테마나 설정도 있지만 영어에는 이뻐 보이는데 한글에서는 좀 다르게 느껴져서 인라인 스타일을 막 넣어 편집해서 사용했다. GIF 이미지는 Giphy라는 사이트에서 좋아하는 미드 장면들을 찾아서 넣었다. 슬라이드 작성에는 크게 어려움이 없었는데 최근에 koa로 토이 프로젝트를 진행하고 있었기도 했고, 이전에 작성한 적이 있던 내용이라서 크게 막히는 부분은 없었다. (매번 발표 때마다 그림만 기억나고 내용은 기억나지 않는다는 피드백을 자주 받아서 한편으론 기쁘면서도 슬프다. 다음엔 꼭 제대로 된 내용을…)

발표를 보면서 고쳤으면 하는 점을 적었다.

  • 아, 음 같이 횡설수설하는 말과 반복해서 사용하는 미사여구를 줄일 것
  • 말이 상당히 여유로운데 조금 더 밀도있게 진행하면 좋지 않을까
  • 침묵 속에서 라이브코딩을 할 거라면 미리 작성한 코드를 설명하는 쪽을 택할 것
  • 주제의 기승전결이 좀 더 체계적인 느낌이 들도록 내용을 작성할 것
  • 연습, 연습, 연습

특히 이번 이모콘에서 다르게 느꼈던 점은 스피커로 참여해서 느낄 수 있던 부분이였다. 각각 선정해서 발표한 내용도 너무 재미있었지만 그 외에 부수적인 부분도 많이 눈에 들어왔다. 다른 발표를 보면서 어떤 방식으로 내용을 풀어가는지, 어떻게 내용을 설명하고 끊기지 않고 자연스럽게 진행하는지, 슬라이드나 영상 자료를 어떻게 활용하는지, 그 내공을 엿보고 배울 수 있어서 좋았었다. (세상은 넓고 초고수는 많다!)

이모콘 이름으로 좋은 기회 제공해주고 함께 참여 및 준비한 모든 분들께 감사의 말씀을 전하고 싶다. 다음 이모콘에서도 스피커로 참여할 기회가 된다면 꼭 참여하고 싶고 그 시기를 위해 미리미리 준비해야겠다.

발표자료

터미널에서 타자연습하기 gtypist

힙터지는 타자연습이 필요하다면! 어느 터미널에서나 사용 가능한 타자연습 도구를 지금 당장 설치!

2016년 3월 19일

요즘 타이핑을 하는데 손가락의 움직임이 점점 둔해지는 기분이 들어서 하루 5분이라도 짧게 연습하자는 목표를 만들었다. 터미널에서 간단하게 예제 문장을 보여주고 타이핑 하는 정도만 생각했는데 이미 GNU 프로젝트로 gtypist라는 타자연습 패키지가 존재했다.

gtypist 화면

화면에서 벌써 힙력이 느껴진다!

“엄청 유명한데 나만 모르고 있었음” 패키지 같아서 따로 포스팅 안하려고 했는데 꾸준히 타자 연습하겠다는 목표를 적는 핑계와 함께 @justinchronicle님께 터미널이 힙하다는 얘기를 듣고 힙터지는 터미널 도구 연재를 해볼까 생각도 들어서 급 포스팅을 하고 있다.

설치는 간단하다. 대부분의 패키지 관리자를 통해서 간단하게 설치 가능하다.

$ brew install gtypist # in OS X
$ apt-get install gtypist # in Ubuntu

그리고 gtypist라고 입력하면 콘솔에서 타자연습 화면이 나온다. 한메타자교사 같이 화려한(지금 보면 뭐지 싶겠지만) 화면은 아니지만 그래도 타자 연습 예제를 제공하고 타수나 오타율을 확인할 수 있다.

타이핑이 느려진다거나 코드 읽는 눈이 느려진다거나 하는 기분이 들면 실제로 그런지 안그런지는 사실 잘 모르겠지만 의식적으로 연습을 하지 않는다면 현행 유지 내지는 더 둔해지는 것은 당연한 것 같다. 내가 다른 일을 하고 있다면 몰라도 내 일에 가장 많은 시간을 할애하고 있는 기술인데 그냥 사소하게만 여겨서는 안될 것 같다. 사소한 부분도 의식하고 작은 시간이라도 투자해서 꾸준히 연습해야겠다.

맥에서 키보드 맵핑 바꾸기, Karabiner

일반 키보드에서 다 HHKB 같은 기운이 오게 만드는 맵핑 프로그램, Karabiner와 설정

2015년 11월 15일

저번에 한참 HHKB를 구입하고 싶어서 구입창을 몇번이고 열었다 닫았다 했는데 이미 레오폴드서 구입한 키보드가 있었다. 회사에서 사용했는데 아무래도 MS 키보드 레이아웃이라서 자주 안쓰게 되서 집에 가져와서 먼지를 배양하고 있었다. 이 키보드도 맵핑만 바꾸면 나름 HHKB 분위기로 사용할 수 있다는 얘기를 듣고 솔깃해서 Karabiner를 받아서 키맵을 설정해서 사용하기 시작했다. 그러고서 계속 혼용해서 쓰다가 어느 순간부터 레오폴드 키보드를 메인으로 사용하게 되었다. (드디어!)

Karabiner

엄청나게 강력한 키맵을 제공하는데 오픈소스로 개발되고 있다. 제공되는 설정 목록을 보면 대부분 시나리오에 맞는 키맵 설정이 존재한다. 정말 방대한데다 직접 커스텀해서 만드는 것도 가능한데 옵션이 너무 많아서 한참 찾다가 찾지 못한 부분은 직접 확장을 만들었다. 아마 내장된 확장이나 누군가 만든, 더 좋은 확장도 분명 있을게 분명한데 찾아서 적용해서 확인할 시간 많은 분은 찾아보는게 좋겠다. (찾으면 알려주세요..)

내 확장은 gist에 올려놨다.

  • 애플 키보드는 키맵 적용 안함
  • 애플 마우스/트랙패드는 키맵 적용 안함 (필요한진 몰라도)
  • 좌측 Ctrl을 Alt/Option으로
  • 좌측 Alt를 Cmd로
  • 우측 Ctrl을 Fn으로
  • F1~12를 애플 키보드 기본 기능으로

나름 해피해킹스러운 맵도 넣었다.

  • Fn + {1~=} 조합을 F1~12로 (이건 내장된게 의도랑 다르게 동작해서 커스텀으로 추가)
  • Fn + ;[‘/ 조합을 방향키로

화면 끄는 키가 없어서 이 키도 추가했다. Eject로 모니터만 끈다거나 슬립모드로 간다거나 하는 단축키를 쓸 수 있다.

  • F13(Print Screen)을 Eject로

HHKB의 꽃인 CapsLock 위치 키에 맵핑 하려면 Seil이 필요하다. 정말 HHKB 스타일로 만들려면 필수적이겠지만 기본 동작을 변경해야 하는 부분이 있어서 설치하진 않았다.

일반 키보드로 HHKB를 체험(?)해보고 싶다면, 또는 필요한 키를 변경하고 싶다면 강력하게 추천하고 싶은 앱이다.

MelbJS 5월 모임 참석 후기

2015년 5월, 멜번 javascript 정기 모임 melbjs에 다녀온 이야기

2015년 6월 5일

5월은 여러가지 일이 있어 참 바빴던 달이라 이제서야 후기를 적는다. MelbJS은 매달 정기적으로 열리는 멜번 JavaScript 밋업이다. 멜번에서도 다양한 밋업이 정기적으로 열리고 있는데다 한결 같이 흥미로운 주제라 자주 가고 싶지만 끝나고 집에 가는 것이 애매해서 1년에 두어 번 정도 가지 못할 뿐더러 가더라도 막차를 타야해서 앞 세션만 듣고 나와야 하는 아쉬움이 늘 있다. 관심있는 주제도 있고 새로운 자극도 받을 겸 시간내서 참가했다.

Aconex 1

밋업은 매월 Aconex 오피스에서 진행하고 있다. 식당 공간을 다용도로 사용할 수 있도록 잘 만들어둬서 올 때마다 사무실이 생기면 꼭 이렇게 공간을 꾸며야겠다는 생각이 든다. 벽 한 켠은 칠판으로 만들어 둬 현재 이 회사에서 진행중인 프로젝트를 힐끔 살펴볼 수도 있다. (밋업을 가면 분위기라는게 있는데 Python 밋업은 학구적인 모임, JS 밋업은 힙스터 모임, .Net 밋업은 제2의 회사로 출근한 분위기다. 흐흐.) 스폰서가 많아 생맥주에, 피자에, 장소까지 풍성하다. 음식을 제공하는 행사마다 채식, 할랄 푸드를 먹는 사람을 위한 메뉴를 두는 모습이 참 보기 좋다.

Smarter CSS Builds with Webpack

envato의 개발자인 Ben Smithett의 세션이었는데 Webpack을 이용해서 CSS를 패키징하는 방법을 보여줬다. 패키징 자체는 크게 새로운 얘기가 아니었지만 컴포넌트 단위의 개발에서 CSS를 편리하게 적용할 수 있는 방법을 제시했다. 어플리케이션에서 실제로 필요하지 않은 CSS까지 전부 불러오는 것이 아니라 컴포넌트에서 필요한 CSS만 불러오는 형태로 작성해, 컴포넌트 단위 구성을 스타일까지 확장할 수 있게 된다.

물론 컴포넌트 단위로 사용하려고 하면 CSS도 컴포넌트 단위에 맞는 접근이 필요하다. CSS pre-compiler를 사용하게 되면 변수의 scope가 전역적으로 다뤄지기 마련이라 각 컴포넌트를 독립적인 css로 관리하는데 불편함이 있는데 각각 독립된 컴포넌트에서 필요한 변수셋을 불러오는 형태로 그 의존성을 분산할 수 있다.

컴포넌트를 더 컴포넌트답게 활용할 수 있게 하는 아이디어라서 더욱 마음에 들었던 세션이었다. react로 개발하고 있다면 살펴볼 만한 좋은 주제다. 전체 세션의 내용은 Ben Smithett의 블로그 포스트에서 확인할 수 있다.

React Native — One of these things is not like the other

Matt Delves의 세션으로 react native에 대한 전반적인 이야기를 다뤘다. 이전에 공식 문서 튜토리얼을 살펴봤을 때랑 많이 달라지지 않아 크게 새로운 이야기는 없었지만 flux 아키텍쳐에 대해 알게된 후 듣는 react native라서 기분이 새로웠다. 세션 중간에 Colin Eberhardt를 인용했는데 react에 대해 정확하게 표현하는 느낌이다.

“React는 사용자 인터페이스를 생성하는데 독창적이며 급진적인, 고수준의 함수형 접근을 도입했다. 간단히 말해, 어플리케이션의 UI는 단순히 현재 어플리케이션의 상태를 표현하는 함수 역할을 한다.”

“React introduces a novel, radical and highly functional approach to constructing user interfaces. In brief, the application UI is simply expressed as a function of the current application state.”

아직 구현되지 않은 view도 많고 부족한 부분이 있지만 계속 개선되고 있어서 더욱 더 기대되는 라이브러리다. 전체 발표 내용은 GitHub Repo.에 올려져 있다.

Aconex 2

요즘 쏟아지는 수많은 라이브러리를 다 써보지 못해서 늘 아쉬운 기분이 든다. 실무에서 사용하지 않고 있다면 개인 프로젝트로라도 진행해서 써봐야 이해도 되고 손에도 익는데 무언가 만들고 싶은 욕구가 덜해서 고민이 많다. 아무리 바쁘더라도 한 발자국 물러나면 별 일도 아닌 일인 경우가 너무나도 많은데 쉽지 않다. 여유를 다시 찾고 다시 재미있게 코드를 만들 수 있었으면 좋겠다.