새 랩탑 도착

지난 달 초에 주문한 맥북이 어제 도착.
원래 쓰던 랩탑 (2012년 맥북에어)에서 이전 작업을 한 기록을 여기에 남긴다.

  1. Migration Assistant 시도 (1차): 실패하고 두 대 모두 제어 불가능한 상태가 되서 리붓.
  2. 2차 시도: 새 맥북에서 맥북에어는 보이는데 반대가 안되어서 똥망 -_-
  3. 3차 시도: 이전이랑 같음.

여기서 GG치고 수동 복사 시작(…).

대략 다음과 같은 애들을 수동으로 옮겼다:

  1. 작업 디렉터리 및 문서 디렉터리. 작업물 디렉터리에서 현재 손 안댄 것은 과감히 제외 (그래도 복사한 용량 10기가 수준). 문서 디렉터리에 vmware vm들이 있어서 복사가 천 년. 맥북에어 배터리 절반과 energy impact 120을 찍어준 rsync에 감사(…). 더불어 google chrome 설치 및 설정 동기화.
  2. 맥북에 app-store 기반 프로그램들 설치. 근데 이거랑 복사랑, 기존 구입한 프로그램들 + 맥북 새로사면서 갱신된 iwork동시에 깔았더니 프리즈. ㅠㅠ 리붓.
  3.  iTerm 설치. 기존 설정을 디렉터리로 저장해서 옮김. 새 맥북엔 bash 새로 빌드 안해서 굉장히 특이한 에러를 냈다(…). 폰트 파일이 없어서 inconsolata 와 나눔고딕 코딩을 가져다가 설치. bash 설정을 옮겼더니 git 없다고 (…) xcode command line tool을 설치하기 시작 (…).
  4. homebrew 설치. 그대로 python, vim, git 새로 설치.
  5. VPN 키 복사 및 설정
  6. Moom 설정 (창 크키 조정용)
  7. X Server 설치 (xquartz)

(잠)

출근하고 나서 구글 계정이랑 동기화 시작 (주소록 + 캘린더) 두 셋트. 이러고나니 대략 쓸 수 있는 상태가 된 듯. 밤에도 (상대적으로) 잘 보이니 기쁜데 그거 말고는 딱히 차이는 없다. 출근할 때 좀 더 가벼운건 좋긴함. 아마 외근 나갈 때 뼈저리게 느끼겠지 -_-.

(추가: 2015-06-05)

중요한 걸 빠뜨렸다. 한국 정부 혹은 준정부 기관에 해당하는 Root CA들을 제거하지 않았음. 다음 Root CA를 삭제:

  • KISA Root CA1

여기서 서명해준 intermediate CA는 이 이후 신뢰하지 않는다.

2014 년, 내 프로그래밍 언어는 …

블로그 옮길까 말까 / 정리할까 말까 고민하다가 이전 글 보고 기록 남기기.

2012년 말에 쓴 글 참고.

2014년에 주로 썼던 언어는 대략,

  • Python
  • C++
  • Shell script (bash)
  • HTML / JavaScript

인 듯.

2012 년 NCsoft 퇴사 이래로 (일부러) 회사 코드에는 C++ 안 쓰고 있던게 대략 2년 지나니 별 문제 없겠지 싶어서 C++ 코드도 작성 시작 / 이쪽 일이 많아져서 분량이 늘어난듯.

회사에서 만드는 프로덕트가 대략,

  • C++ 기반의 게임 서버 엔진 (C++)
  • 엔진을 띄우기 위한 기타 플랫폼 코드  (C++, python, shell script)
  • 엔진과 같이 도는 웹 서비스 코드들 (Python, HTML / JavaScript)

라서 실제로 저렇게 된 것 같다.

대략 작년 하반기 추세로라면 올해는 C++ 로 작성한 코드가 (시간 적인 면에서) 더 많을 것 같은 느낌
(C++ 1x가 되면서 C++ 코드가 이전 수준으로 verbose하지 않아서 코드 줄수는 크게 늘지는 않을듯함)

 

사무실 이사

회사 사무실이 선릉에서 판교로 이전. 오늘이 이전 후 출근 삼주차.

판교의 좋은 점…은 근처에 지인들이 많고 (이전 직장 2개가 이전했거나 이전 중이거나) 그럭저럭 조용한 동네.

나쁜 점은 참 많아서 뭐라고 해야할까.

1. 멀어. 너무 멀다. 서울에서 출퇴근하기에 강남구 아니면 너무 오래 걸림. 천호역 근처에서 출발하는데 집에서 나와서 사무실에 앉을 때까지 50분~ 한시간 20분. (최악의 경우는 중간에 사고차가 막아서 생긴거라쳐도)

버스+광역버스 / 지하철 + 경기버스 조합을 다 써보고 있는데 그다지 편한 조합이 없다 Orz.

회사에 애착이 없다면 서울에 있는 회사 (네오플 부럽)로 도망갔을 듯.

출근 시간이 두 배가 되니 책은 좀 더 읽지만 아이들이랑 저녁 같이 먹으려면 정말 기를 쓰고 환승하면서 가야하니.

2. 근처에 서점도 없다. 삼성역/선릉역 근방에서 일할 때는 반디앤루니스가 근처에 있어서 좋았는데. 아참 근처에 KFC나 버거킹도 없다 (…)

3. 강남권이랑 별 차이 없는 밥 값. 그렇다고 맛있는 편이냐고 물어보면 (….)

4. 그럭저럭 조용하다고 적어놨는데 여기가 굉장히 외곽지역인데도 조용하다고만 적은게 아닌 까닭.
서울공항에서 비행기나 헬기가 계속 뜨고 내리니 (아마 남쪽 방향으로 오면 이 옆을 지나서?) 노이즈캔슬된 헤드폰 너머로도 잘 ㅠㅠ 들린다.

5. 아직 입주가 진행 중인 — 반넘게 비어있는 느낌 — 건물이라서 공사장 소음과 냄-_-새가.

1은 내년에 이사(죽전? 이매?)하면 좀 나아진다치고, 5는 시간이 약이라 쳐도 2,3,4는 어흑.

Moving on

4월을 마지막으로 넥슨에서 퇴사. 옮겨갈 곳은 아직 미확정이지만 구직 의사는 없음.

작년에 엔씨소프트에서 넥슨으로 옮겼을 때처럼 몇 가지 장/단점을 애기해보자면:

장점:

  • 장비는 잘 사준다. 2년마다 칼 같이 갈아 주는 걸 몇 번 봤음. 감가상각이 4년이라 4년 단위로 교체해준다던 (물론 난 그 기간에 교체 못 받았다) 곳과는 좀 비교되더라; 프로젝트 특성 때문에 머신이 좀 많이 필요했는데 거의 원하는 댓수만큼 신청해서 잘 썼다.
  • 개발 머신에서 인터넷 접근이 잘 되니 정말 좋았음; 근데 이건 부서마다 다르다. 이전 회사처럼 망 분리 된 곳도 많다.
  • 모니터/키보드 사다 놓았다고 태클 걸지 않아서 다행 (…)
  • 연봉을 1/12 분할해서 주니 1/14 분할하고 설/추석 더 주는 것보다 한 해 계획을 세우기가 좋더라.

단점:

  • 사내에 뭐가 있는지 알기 너무 힘들다; 뭔가 다른 조직에 요청할 게 있으면 “누구한테 요청해야 하는지” 알아내는 부분이 좀 짜증났다; 일단 조직도도 볼 수 없다 (적어도 팀장 직책까지는…)
  • 여기도 동종업계 이직 금지 조항이 달려 있다
  • 책상/의자는 그냥 저냥 평범하다. 그리고 책상은 약간 좁은 듯 함. (이건 근무하는 건물마다 다르다는데 누가 확인 좀; NHN이나 엔씨소프트보단 의자는 확실히 나쁨…)

 

보상 체계나 프로그래머에 대한 지원 같은 걸 생각하면 한국에서 소프트웨어 엔지니어가 일하기엔 나름 좋은 회사인 것 같지만, 경영진이 취하는 태도로 볼 때 돌아올 일은 없을 듯.

Linux 데스크탑에 ssd + hdd 구성이면 파티션은 어떻게?

내일 입사하시는 분이 사용할 용도로 데스크탑 머신 + 모니터(U2412M) 두 대가 왔다.

포장 풀고, 등록된 MAC 주소가지고 도메인 주소 설정하고, PXE 로 OS 설치 시작.

현재 설정된 preseed가 작년에 지급되던 데스크탑(i7-2600, hdd 구성) 기준이라, 이번에 지급되기 시작한 데스크탑(i5-3750, ssd + hdd 구성) 이랑 좀 안 맞아서 수동 설치를 해봤다.

좀 고민하다가 결국엔

  • / 와 swap 용으로 hdd를 (boot flag 걸고)
  • /home 용으로 ssd를

설정했다.

빌드를 하거나 뭘 하거나 대부분은 ssd에서 할테고, 프로그램 류는 한 번 page cache에 올라가선 아마 안 내려올테니 (…) 그냥 잘 돌거라고 믿기로 했다.

(먼산)

 

혹시 경험적으로, 혹은 측정치로 추천하는 구성이 있으시면 좀 알려주십시오 (…).

2012년 git 통계 (@work)

현재 일하고 있는 곳에서는 소스 저장소로 git을 이용하고 있다. 오늘 오후에 심심풀이로 (???) 적당한 스크립트를 돌려서 내가 commit 한 것에 대한 통계를 내봤다. (gitstats 를 이용해서 통계를 냈다.) 예전 회사에서 SVN stats 던가 하는 걸로 통계 낼 때는 천년 쯤 걸렸던 것 같은데, 로컬에 데이터가 다 있으니 금방 되더라. (상대적으로 history도 적고)

월 별 통계:

4월에 입사한 이후의 통계.

work2012_month_of_year_

올해는 여러 가지로 다사다난했던 것 같다. 중간중간 움푹 들어간 커밋 량을 보니 Orz.

내년엔 12월의 페이스로 진행할 수 있게 되길(…)

 

요일/시간대 별 통계 (heat map):

work2012_hours

목, 금이 평소보다 커밋을 더 많이 하는 듯. 그리고 주로 점심 먹고 온 후에 커밋을 하게 되는 것 같은데 … (점심 시간이 오후 1~2 사이)

커밋 로그에 따르면 주말 출근은 1회 (…).

 

스크립트:

git filter-branch 의 man page에 나오는 commit-filter 예제 – 특정 사용자의 커밋을 지우는 걸 조건을 바꿔서 – 를 수정해서 사용했다.

#!/bin/bash -ex
skip_commit()
{
  shift;
  while [ -n "$1" ];
  do
    shift;
    map "$1";
    shift;
  done;
}

git filter-branch --commit-filter '
  if [ "$GIT_AUTHOR_NAME" = "Jinuk Kim" ];
  then
    git commit-tree "$@";
  else
    skip_commit "$@";
  fi' HEAD

신입 SW 엔지니어 / 프로그래머의 이력서에 바라는 점

아침부터 꼰대질 좀 해보자 (…).

최근 이력서 읽으면서 느낀 점 정리.

미리 요약:

  • 첨부 파일은 os/locale에 구애 받지 않는 문서/압축 포맷을 쓰자
  • 지원하는 부서에 대해선 제대로 확인해라
  • 프로그래머라면 프로그래밍을 몰라선 안되고 기본기가 너무 부족해도 곤란. 반대로 만들어본게 있다면 적극 어필하자
  • 빈칸은 남겨두어도 괜찮다
  • 채점자에 따라선 메일주소나 링크한 블로그나 홈페이지도 다 읽어본다

이력서의 첨부 문서가 . hwp면 열어 볼 방법이 없다. 다른 사항이 어지간히 좋지 않고서야 더 이상 읽지 않는다. .pdf나 .xps, 하다못해 그나마 de facto standard인 .docx라도.[1] 생각같아선 LaTeX+pdf 이면 좋겠지만 그런 사례는 지금까지 세 번 밖에 못 봄.

한글 이름의 파일을 포함해서 .zip 파일을 만들지 말자. 다른 대안 (.rar, .7z) 을 쓰거나 아니면 ascii 영역만 쓰거나. 서류 평가하는 사람이 맥을 쓸지 리눅스를 쓸 지 어찌아냐. 프로그래머라면 자신이 다국어 환경 / 다중 인코딩 환경에 대한 최소한의 개념이 있어야 한다.

자기가 가고 싶은 부서가 정말 그 회사에 있는지는 좀 확인하자. 관계사에 있는 부서를 쓰는 건 양반. 써드파티의 부서명이 나오면 뭔가 할 말이 없다.

프로그래머 뽑는데 “들어가서 열심히 배우겠습니다”만 있는 건 곤란하다. 수상안전 요원을 찾는데 물에 뜨지도 못하는 사람을 고려할 순 없다. 스스로 쓰려고 작성한 프로그램이나 서비스가 있다면 그 지원자는 합격할 가능성이 정말 높다.

자기가 작성한 소스코드의 인코딩이 뭔지는 좀 신경 써 주자. 이건 C++ 표준 소스 인코딩 문제이기도 한데, 시대(?)를 생각해서라도 utf-8 같은 걸 좀 쓰자.

그리고 빈 칸을 다 채우고 싶은 욕구는 좀 자제하자. 신입인 경우엔 특히. 이력/수상경력에 교내 뭐시기나 관계 없는 업종의 파트타임 경력, 운전면허나 MOS 적어넣는 것 보면 짜증난다.

그리고 메일 주소나 홈페이지/블로그 주소를 적으면 주소 자체가 평가 대상이 될 수도 있다. 메일 주소가 serial.killer@example.com이라거나 하면 좀 곤란하다. 입력해 놓은 블로그에 불법 게임 서버 운영법을 써놓으면 (…).

  1. 곧 구글 문서의 .doc 지원이 끊기는 거류생각하면 장기적으론 .doc는 좀 곤란하다. []

프로그래머의 일상: 적응하기

짧은 방학이 끝나고 다시 출근하기 시작한지도 벌써 3주. 그 간에 있었던 일을 간략히 정리하는 의미에서 글 하나.

새 팀에 들어가서 개발 환경에 적응하기 모드

다행히 OS는 익숙한 ubuntu desktop이라 편하다. 키보드도 내 realforce (101 key; ps/2) 들고갔고.
외부 인터넷 연결이 있는 linux desktop은 정말 개발하는데 편하다. 반쯤은 apt 와 pip (PyPI?) 덕분인듯…
Windows에서 binutils 포팅된 것 설치하고 삽질한 거나 폐쇄망에 물린 linux 머신에 패키지 설치하는 삽질에 비하면 ㅠㅠㅠㅠ

(DELL U2412M + intel i7-2600  + RAM 8GiB) 조합으로두 대 받았는데, 데스크 탑 환경으로 고른 녀석이 내장 사운드 카드 출력에 잡음이 낀다 ㅠㅠ.
다른 녀석에 꽂으면 잡음이 안남… 같이 일하는 분들 머신 스펙이 다 같다시피한데, 왜 그 머신만 잡음이 Orz.
SATA 케이블 위치, USB 케이블 위치도 바꿔보고 했는데 해결이 안된다. 월급 나오면 외장 USB DAC 하나 사야지 -_-

집에서도 회사에서도 ubuntu unity만 보다보니 간만에 사용한 Windows 7 화면이 매우 낯설다 -_-; 커서를 계속 화면 좌측 (unity 메뉴 위치) 에 가져가게 됨;;;

작업 환경이 (그 간에는) 집에서만 쓰던 bash shell + vim + git + … 이 되었다. linux 위에서  작업하는거라 character encoding 으로 삽질했던 기억들은 안녕. 근데 Windows 쪽에서도msysgit 쪽에 패치가 올라갔다 (참고: http://code.google.com/p/msysgit/issues/detail?id=80#c81). 왜 내가 Windows 개발 환경을 떠나고 나서야 Orz.

 

python + bash 코드 읽기

새 코드는 거의 추가하지 못하고, 기존 코드 읽고, 사용하는 라이브러리 읽고 실로 “Read the source” 하는 상황.
할만하다고 생각하고 있었는데, 잘 연동되지 않는 부분 때문에 20+만 줄 짜리 python 코드와 이를 위한 bash script를 보려니 좀 괴롭다 흑흑.

게다가 실제로 내가 짠 코드는 아직까지는 전부 bash script. 다음 주 부터는 일이 궤도에 안착해서 python 코드를 추가하게 되면 좋겠다(…).

 

주변 환경

교통은 약간 편해졌다. 2호선 삼성역에서 좀 걸어가야하는 (7~10분) 상황에서, 역에서 계단 나가면 바로인 상황으로 바뀌었음. 그래서 출근 시간은 약간 줄어들었다. 출근 기준 시간도 +30분이 되어 오전에 아들 어린이집 데려간 후 출근하긴 편해졌음.

하지만 2호선 선릉역 근방엔 서점이 없다. 삼성역 근처에는 반디앤루니스가 거대하게 자리 잡고 있어서 무척 좋았는데 이건 굉장히 아쉬움. 에반 레코드도 종종 들렀는데 이젠 음반 한 장 사려면 온라인 쇼핑몰을 기웃거리게 됨. 어흑.