Yosemite의 Terminal에서 HOME, END키 사용하기.

Yosemite의 Terminal에는 기본적으로 HOME, END키가 bind가 안되어있네요.
(기존에 설정되어 있으셨던 분들은 큰 문제 없을것 같은데.. 확인은 못했습니다.)

예전처럼 Terminal의 Preferences로 들어가신 후 Profiles탭을 선택.
그리고 Keyboard로 들어가신 후 + 버튼을 눌러서 새로운 키 바인드를 추가합니다.

Terminal -> Preferences -> Profiles -> Keyboard

Terminal Preferences에서 Profiles를 선택 그리고 Keyboard 선택하면 바인드된 키 목록을 볼 수 있음. 여기서 추가/삭제 수정이 가능

그리고 난 후
HOME키 설정.
Key: Home,
Modifier: None,
Action: Send Text
Value: 33[H
를 입력해주세요. 워드프레스가 Value를 이스케이프해버려서 제대로 안나오네요.
아래 첨부한 이미지의 글자를 넣으시면 됩니다.

Screen Shot 2014-10-20 at 1.43.11 PM

END키 설정
Key: End,
Modifier: None,
Action: Send Text
Value: 33[F

Screen Shot 2014-10-20 at 1.43.16 PM

끝.

Screen Shot 2014-10-20 at 1.51.14 PM

Elasticsearch dynamic scripting

Elasticsearch 1.2.x 미만 버전에서는 dynamic scripting이 기본으로 활성화(able)되어있다.
이건 보안 이슈를 가지고 있는데 자세한 정보는 아래 첨부해드린 링크를 참고하시면 되고
http://bouk.co/blog/elasticsearch-rce/
http://www.elasticsearch.org/community/security/
http://www.elasticsearch.org/blog/scripting-security/

해결책은 간단하다. elasticsearch.yml에서

script.disable_dynamic: true

를 추가해주고 재시작하면 된다.

신입들에게 당부 – 질문시 유의사항

신입들이 작업을 하다보면 사수나 상사에게 질문을 하게된다.
근데 여기서 주의할점은 쉽게 질문을 하면 안 된다는 것이다.

1. 사수의 시간은 소중하다고!!

우선 알아야 할 것은 사수도 작업중이다는 사실이다.
내 질문으로 인해 사수의 몰입이 깨지게 될 수 있다는걸 항상 유의해라.
입장을 바꿔놓고 생각해보라.
내가 한참 열심히 몰입해서 코딩하고 있는데 누군가 와서 훼방을 놓는다면 어떻겠는가?
고로 아무때나 질문하지 말고, 적당이 눈치를 보며 질문할 타이밍에 질문을 하라.
여기에 감사한 마음도 함께 표한다면 더 좋을 것이다.

2. 검색하면 1초만에 답이 나올 질문은 하지 마라.

신입이던 디자이너건 기획자건, 모르는게 있으면 그냥 다 개발자한테 질문을 한다 ㅋ
검색하면 1초만에 답이 나오는걸 그냥 막 질문한다.
이건 문제를 해결하려는 최소한의 노력도 안 했다는 의미이다.
난 이런 사람들 도저히 이해를 할 수가 없다. 솔직히 이런 질문 받으면 짜증난다.
이 짜증으로 인해 나의 몰입은 당연히 깨지게 된다. 다시 몰입하기까지 걸리는 비용과 노력을 보상받을수 있는것도 아니다.

3. 리소스 차이

무엇보다 신입과 경력직의 리소스는 차원이 다르다.
신입이 밤새면서 낑낑거려도 못하는걸, 경력직은 10분만에 해결하는 경우가 비일비재하다.
신입의 질문으로 인해 사수는 업무에 방해를 받는것뿐만 아니라, 본인 업무에 사용해야할 리소스를 신입에게 사용할 수밖에 없다.
근데 질문이 허무맹랑하거나 검색하면 바로 나오는 것이면 얼마나 빡치겠는가?
자신의 몰입은 이미 깨졌는데 말이다.

4. 선생님!

회사는 학교도 학원도 아니다.
고로 사수는 선생이 아니라는 뜻이다.
가만이 앉아있으면 사수가 알아서 가르켜줄거라 생각치도, 바라지도 마라.
냉정히 말하면 사수는 신입의 질문에 답변을 해야할 의무 또한 없다.
(사수는 부사수가 성장하든 안 하든 무관심해도 된다는 의미가 아니다.)
어미새가 새끼한테 모이주는 모습을 기대하지 마라.
공격적인 자세로 공부하고 시도하고 삽질하고 질문하라.

5. 쉽게 얻으려 하지 마라.

사수에게 질문을 하면 쉽게 답을 얻을 수가 있다.
하지만 이것이 습관이 되지 않도록 주의해라.
쉽게 얻은 건 쉽게 잊어먹는다.
스스로 노력하는 것이 중요하다.

6. 좋지 않은 질문수만큼 나쁜 평가(평판)을 받는다.

질문의 퀄리티에 따라 달라지겠지만. 보편적으로 신입이 하는 질문의 퀄리티는 거기서 거기다.
이러한 질문의 수가 많다는것은
스스로 문제를 해결하려 노력하지 않았다는 걸 뜻하며,
사수를 배려하지 않고,
그저 지식인으로만 이용했다는 뜻이다.
이러한 인재는 성장하지 않는다
아울러, 사수 시간 빼앗아서 일 못하게 하고, 멘탈 뽀개서 일 못하게 하는데
그 어떤 사수가 좋은 평가를 내리겠는가?

7. 질문은 최후에

질문하기 전에 거쳐야 할 프로세스를 알려주겠다.
이 프로세스는 개인적으로 만든 방침이라 사람에 따라 다를 수 있다는걸 참고해주길 바라며. (개인적으로 30분 법칙이라 부르고 있다.)
작업을하다가 막혔을때 바로 질문 하기보다는

  1. 차분한 마음으로 침착하게 로그를 분석해라. 99.999999999%의 경우 로그에 힌트가 있다.
  2. 힌트에 근거하여 코드를 보고 원인 파악 및 수정을 해라.
  3. 해결이 안된다면 검색을 해라.
  4. 검색 결과에서 힌트를 얻어 수정해보고, 안되면 다시 검색, 수정, 검색, 수정..
  5. 30분이 지났는데 해결이 안되었나? 그럼 그때 질문을 해라 그리고 이때까지 한 삽질을 보고해라

30분으로 정한 이유는 간단하다.
30분이 지나도 해결 못하는 문제는 1시간이 지나도 해결 못하는 문제일 확률이 높기 때문이다.

사수를 봉으로 여기지 말고 존경하도록 노력해라.
부사수가 날 봉으로 보는지, 존경하는지 사수는 다 알고있다.

하드탭 예찬론

1. 탭 사이즈가 너무 넓어요? 하드탭 구려요?

내가 인터뷰 심사관이라면 이런 질문하는 개발자 절대 안뽑는다.
개발 툴에서 탭간격 수정할 수 있다.
본인 입맛에 맞게 수정해서 쓰면 되는 일이다.
그리고 엄밀히 말해 탭 사이즈는 하트탭에 대한 불만이 아니다.

2. 소프트탭은 내가 사용하는 탭사이즈와 상관없이 인덴트가 고정됨

나는 인덴트 2Spaces가 좋다. 근데 4Spaces이면 살짝 짜증이 난다. 그리고 눈에 익숙치 않아서 가독성 자체도 떨어지게 된다.
그래서  공백 4칸을 2칸으로 수정하거나, 탭으로 수정하는건 엄청난 재앙을 초래한다.
그 이유는
1. diff하면 모든 라인이 다 빨간색, 녹색떠서 깜짝 놀라게 될것이다. 한마디로 diff한 후 수정된 내용을 확인하기가 어렵다는 뜻.
2. 더 심각한건 만약 하드탭(혹은 소프트탭 2Spaces)로 수정했다 하더라도, 다른 사람이 다시 4Spaces으로 수정해서 푸쉬하게 될거라는 사실.
이러한 과정은 무한반복이고, 서로 감정만 상하게 될 뿐이다.
앞서 말했지만 탭으로 코딩하면 소스 코드 변경없이 에디터에서 Spaces를 변경 가능하므로 스트레스 받지 않고 내게 익숙한 환경에서 코딩을 할 수 있는것이다.

3. 협업시 다른 사람 탭사이즈 신경 안쓰고 코딩이 가능

다른 사람이 탭사이즈를 2를 쓰든 4를 쓰든 변태라서 8을 쓰든 상관없다.
그냥 에디터에서 본인이 선호하는 사이즈로 지정하면 끝~!

a = { name: "ASSA", id: "a-1" }
b = { name: "B"   , id: "b-1" }

이런식으로 코딩을 한다고 한다면.. 저기선 탭을 쓰면 안되고 스페이스를 사용해야 한다.
그럼 코드 보여지는 것도 별 문제 없다.
하지만 이런식으로 코딩하는건 좋지 못한 습관이다.

var a = "에이",
    c = "씨";

이런식으로 코딩하는 경우도 있다. 이 경우 하드탭은 문제가 된다.
하드탭을 하면 c가 이상한 인덴트를 가진걸로 보이기 때문에 이럴땐 소프트탭이 확실히 유리하다.
하지만 개인적으로 이러한 컨벤션 또한 선호하지 않는다.

var a = "에이", c = "씨";

이렇게 할 수도 있고

var a = "에이";
var c = "씨";

이 컨벤션을 더 선호한다.
중요한건 코딩 컨벤션에 스페이스로 코드 레이아웃을 짜지 않도록 약속하면 이 문제는 해결이 된다.

4. 소스코드용량이 늘어난다.

탭과 스페이스 모두 1byte다.
만약 소프트탭 4spaces로 사용하면 4bytes를 사용하게 되는 것이다.
하지만 탭을 사용하면 1byte면 끝난다.
컴파일이 된다면, 사실 코드 용량은 무시할 수도 있다. 하지만 웹에선 조금 다르다.
2002년? 3년즘에 테스트를 해봤던 거라, 10년전 이야기라 지금은 어떨지 모르겠지만
하드탭이랑 소프트탭 4spaces로 IE 7, FF(당시 최신 버전)에서 테스트했었다. (그땐 크롬은 있지도 않았다)
정확한 숫자가 기억나지는 않지만 30배정도 차이가 났다는건 기억이 난다.
IE, FF 두 브라우져 모드 소프트탭이 현저히 느렸다는것도 기억한다.
뭐 지금은 워낙 렌더링 기술이 좋아져서 상관없을것 같기도 하다.
내가 확인하자니 귀찮고, 누군가 해주면 참 고마울 텐데 말이지 ㅋㅋ

5. 인덴트 체크가 힘들어.

하드탭의 경우 보편적으로 에디터에서 가시적으로 확인을 할 수 있다.
하지만 스페이스는 지원을 안 하는 경우가 더러있다.
이렇게 되면 손으로 커서 한칸 한칸 움직이면서 인덴트가 제대로 되었는지 확인해야 한다.
물런 이렇게 인덴트를 확인해야 하는 불상사가 안생기는게 바람직하다.
텍스트메이트에서 노출되는 tab

6. vi에서 수정

개발을 하다보면 서버에 직접 접속해서 코드를 수정해야될때가 가끔 있다.
뭐 vi를 잘 쓰는 사람이라면 바로 첫 번째 스트링으로 캐릭터를 이동시키겠지(^)
그런데 그 방법을 모르는 사람은 커서로 이동을 할것이다.
자. if안에 for있고 막 그래서 인덴트가 4개정도 들어갔다고 해보자.
소프트탭으로 4spaces일경우 4 * 4 = 16번 키보드 커서를 눌러야한다.
근데 탭으로 하면 4번만 움직이면 된다.
사실 이건 vi숙련도에 따라 달라지는 얘기이긴 하지만..

근데..
왜 상당수의 오픈소스들은 소프트탭일까?
내가 Ruby쪽 진영쪽만 자주 봐서 그런가?
무엇이 소프트탭의 매력일까?

신입들에게 당부 – 인성

근 몇 년간 느낀 대대수의 사회 초년생들에게 나타나는 공통적인 특징이 있다.

  1. 예의가 없다.
  2. 이타심이 없다.
  3. 상대방 입장을 헤아릴 줄 모른다. (이타心이 마음가짐이라면, 이 항목은 행하는걸 말함)
  4. 감정적이고
  5. 자기 할말만 한다.
  6. 남을 배려할 줄 모른다.
  7. 금방 싫증낸다.

사실 열거한 항목들이 두 가지 키워드로 귀결되는것 같다.
“이기주의, 자기애”

사회 초년생들에게 전반적으로 나타나는 이기주의, 강한 자기애의 원인은 미숙한 사회성에 있다고 생각한다.
뭐 내가 사회학자도, 심리학자도, 더욱이 사회 심리학자도 아니니깐 자세한 얘기는 넘어가고

사회는 혼자 살아가는 것이 아니다. 여러 사람과 함께 어울리면 살아가는곳이다
그렇다면 내가 소중한 만큼 타인도 소중한 것이다.
더군다나 신입(막내)라면 더욱더 관계에 주의하며 예의를 지켜야한다.

절대 교만하거나 자만하지 마라.
“난 능력이 뛰어나”라고 생각하겠지만 능력과 인성은 별개이다.
이러한 생각은 자기애에 의한 착각일 뿐이다.
신입이 아무리 날고 기어도 신입은 신입이다.

회사가 신입에게 바라는 것은 현재 능력이 아니다. 바로 성장 가능성(Potential)이다.
현재 능력이 뛰어나며 성장 가능성까지 높은가?
그렇다고? 부럽군..;;
하지만 성장 가능성이 전부는 아니다.
아무리 성장 가능성이 높다 하더라도 인성이 안되어 있으면 결국 퇴사를 하게된다.
왜냐면 주변 사람들이 “이 사람과 같이 일 못하겠어요”라며 아우성인데
회사에서 그 사람을 계속 채용하고 있을까?
본인 또한 이러한 상황과 주변의 눈치를 견딜 수 있을까?
한가지 더 말해주자면 경력직 채용에서도 인성은 여전히 중요하다.

여기서 말하는 ‘인성’을 정확하게 콕 집어 설명하는건 어렵지만 한가지 명확한 건 ‘착하다’라는걸 의미하는 것은 아니다.
인성 좋은 사람의 특징은 사람들과 원만한 관계를 유지한다는 것이다.
사람들과 원만한 관계를 유지한다는 것은 의사소통이 원할하다는 걸 의미하고
이것은 협업시 의사소통에 리스크가 없을 가능성이 크다는걸 의미한다.
잘 알고 있겠지만 의사소통에 문제가 있는 사람과 함께 일하는건 고역이다.

전문가가 되려는 노력도 중요하다.
하지만 그 이전에 인성을 갖추려 노력하라. 인성이 먼저다.
생각해보라. 자기 잘났다고 뻐대는 목이 굳은 신입을 누가 좋아하겠는가.
인성을 갖추고 노력하는 모습을 보여라. 그러면 사수를 비롯한 많은 선배들이 훌륭한 가르침을 줄 것이다.
이것이 빠른 성장으로 가는 지름길이라는걸 잊지마라.

신입들에게 당부 – 조언(훈계)의 반응.

해본적 없는, 잘 모르는 문제에다가 일정도 급하다.
시국이 시국인 만큼 어쨋든 돌아가게만 만든다.
자신이 하고 있는것이 무엇을 위한 것인지, 무엇이 변경되는지 모른다.

몇일이 지났다.
그때 작업한 내역(코드)에 대해 물어보면 그런거 하나하나 분석하면서 작업할 시간이 없었다며 승질을 낸다.
코드가 이상해서 ‘문서 읽었어? 정독했어? 10번 읽었어?’라고 물어보면 100번은 읽었다! 라며 되려 승질을 낸다.

작업 당시 일정이 급박했다면, 그 당시에 물어봐도 답변못하는건 이해할 수 있다.
그리고 이때 답변못한 걸 가지고 뭐라할 사람도 없다.
‘신입이 이 정도면 잘한거지’라며 되려 칭찬을 받을 수도 있겠지.
하지만 시간이 지나서 물어봤다면 자신이 한 세팅, 코드들은 다 이해하고 설명할 수 있어야 하는것 아닌가?
자신의 코드를 스페이스 하나하나까지도 꼼꼼하게 리뷰하면서 ‘왜?‘ 라는 질문을 계속 되물으며, 코드를 파악해야 스스로가 발전하게 되는 것이다.
이걸 왜 쓰는지도 모르면서 계속 쓰는데 무슨 발전이 있겠는가.

문서 10번 읽으라는건 그냥 10번만 읽으라는 의미로 얘기한 것일까?
횟수가 중요한 것이 아니다.
집중해서 꼼꼼하게, 그야말로 ‘정독’으로 10번 읽은 것이 허투루 100번 읽은 것과 비교가 된다고 생각하나?

조언(훈계)를 듣는것이 억울한가?
언제까지 억울해할 것인가? 평생? 그렇게 소중한 다시 돌아오지 않을 시간을 허비할 것인가?

순간적으로 억울한 감정이 드는건 당연지사. 이걸 나무라는것이 아니다.
억울함이 들때마다 자신의 감정을 피력한다면
주변에 좋은 상사, 선배, 멘토, 동료등 그 어느 누구도 결국에는 안 남게될 것이다.
이뿐만 아니라 회사에서도, 사회에서도 환영받지 못하는 이가 될 뿐이다.

당신이 듣고 싶지 않은 말을 누군가가 한다면
제발 감정을 내세우지 말고, 침착하게 내가 뭘 잘못했는지, 내가 무엇이 부족한지를, 상대가 무엇을 얘기하고 있는지 파악하려 노력해라.
그리고 진심으로 상대에게 감사해라.
설사 그 사람이 흠이 있거나, 조언을 하는 방식이 맘에 들지 않더라도 말이다.
상대의 조언을 통해 발견하지 못한 나의 문제점을 발견한 것이다.
아주 값비싼 은혜를 입었다는 사실을 잊지 마라

이 세상을 살아가면서 감정적이어서 좋을때도 있지만, 대다수의 경우는 항상 안 좋은 결말을 가져온다.
감정적인 사람은 즉흥적이기 때문이다.
침착하게 마음을 가다듬고, 3자의 입장으로 사건을 바라보고, 문제의 원인을 차분이 분석하는
그런 자세와 습관이 필요하다.

미래를 위한 재능 기부

바빠서 외부 소식 뜸하다, 오늘 짬내서 페북 타임라인들을 쭈욱봤다.
가슴이 먹먹하다. 하..

안산이라는 키워드, 학생이라는 키워드
모두 나에겐 가까운 키워드라 그런지..
많은것들이 내 가슴을 억누른다.

성수대교, 삼풍백화점, 씨랜드, 대구 지하철..
우린 이렇게나 많은 사건을 격었는데도.. 그대로다.

노력하지 않으면, 바꾸지 않으면.. 앞으로도 끔찍한 비극은 계속될 것이다.
과거에도 남의 일이고, 미래의 일은 모르는거라 하며 흘려버릴 수 도 있겠지만
앞으로도 비극은 계속될 것이고 언젠가는 결국 우리가 피해자가 될 것이다.
피해자가 우리라서가 아니다.
이런 비극은 피해자가 누구든 다시 일어나선 안된다.

모니터만 보면서 개탄하고 끝내서는 안된다는 (너무나도 슬프지만 학습에 의한)생각..
가만이 있어서는 안된다는 생각이
내가 할 수 있는 뭔가를 해야겠다는 사명감을 만들어 내고 있다.

Keywon Chung님 및 수재분들이 만드신 응답하라 국회의원처럼..
뭔가를 할 수 있을 것 같은데..
뭔가를 해야 하는데..

제가 도움이 될 수 있을 것 같다거나, 아이디어가 있으시거나, 동참하고 싶으신 분 있으시면..
연락 주세요.