neverlish's blog
aboutgithub

임백준의 대살개문 - 대한민국을 살리는 개발자 문화

'임백준의 대살개문 - 대한민국을 살리는 개발자 문화'의 요약

'대살개문 - 대한민국을 살리는 개발자 문화'는 임백준님이 그동안 쓴 칼럼들을 모아 엮은 책이다. 오랜 만에 가슴이 뜨거워지는 느낌을 받게 한 책이다. 이 책은 현실, 문화, 기술, 개발자의 마음가짐, 미래의 순으로 우리나라 개발자 문화에 관한 이야기를 펼쳐나간다. 왜 개발을 해야 하는가, 이 회사에서 내가 잘하고 있는 걸까, 나는 어떤 개발자가 되어야 할까 와 같은 고민을 하는 요즘, 많은 영감을 받을 수 있었다.

  • 개발자 문화가 뭐냐고 묻는 사람을 위해서 LESS라는 공식도 준비해두었다. Learn(배우고), Enjoy(즐기고), Solve(해결하고), Share(공유하라). 이렇게 네 가지 속성을 모으면 그게 개발자 문화다. - 6

진리를 집요하게 노려 정답을 도출하고, 이를 통해 얻은 지식을 다른 사람들과 공유할 수 있다는 것이 개발이 가진 멋진 매력 중 하나라 생각한다.

  • 세상에는 세 가지 종류의 지식이 있다. 우선 알려진 삶이 있다. 우리는 우리가 그들에 대해서 알고 있음을 안다. 알려진 모름도 있다. 우리는 우리가 그들에 대해서 모르고 있음을 안다. 하지만 알려지지 않은 모름도 있다. 우리는 우리가 그들에 대해서 모르고 있다는 사실을 알지 못한다. - 24

알지 못해서 오는 두려움이 막막하게 느껴질 때도 있지만, 이는 당연한 것이다. 내가 모른다는 것을 인정하고, 그 영역을 밝혀나가면 해결할 수 있는 두려움이다.

  • 실패할 권리를 위한 두 번째 요소로 지적한 '개발자 중심의 문화'는 기업이나 회사 내부의 권력구조와 관련이 있다. 핵심은 소프트웨어를 개발하는 사람, 즉 프로그래머가 소프트웨어 개발과 관련된 일체의 의사결정 과정에서 주체가 되어야 한다는 것이다. 소프트웨어의 속성을 이해하지 못하는 사람이 개발자를 종처럼 부리는 기이한 현상은 중단되어야 한다. - 43

우리 회사는 개발자 중심의 문화가 조성된 회사일까. 아직 작은 회사라 문화라고 할 수 있는 것이 없는 회사라는 생각이 든다. 앞으로 나는 계속해서 개발자 중심의 문화가 조성된 회사에서 일하고 싶다. 그리고 가능하다면, 내가 그러한 문화를 만드는 데에 일조하고 싶다.

  • 반응형이란 응답속도 responsiveness, 확장성 scalability, 이벤트 주도 event-driven, 그리고 유연성resilient이라는 네 가지 개념을 하나로 아우르는 새로운 패러다임이다. - 80

내가 짜는 코드에는 다른 사람들도 쉽게 이해할 수 있는 확장성과, 미래의 여러 상황에 쉽게 대처할 수 있는 유연성이 필요하다. 코드 뿐만 아니라 하루하루 만들어나가는 나의 삶에도 필요한 태도라 생각한다.

  • 프로그래밍하는 그대, 책상에만 앉아 있지 말고 거리로 나가라. 친구들을 만나고, 마시고, 토론하라. 그런 만남과 토론 자체가 프로그래밍이라는 행위의 일부다. - 82

내가 항상 놓치고 있는 것. 결국 '더 나은 나'라는 하나의 Product를 향해 하루하루를 만들어나가는 나의 인생에서 가장 중요한 것은 내가 살고 있는 세상을 즐길 수 있는 마음가짐과, 내가 좋아하는 사람들과 나누는 즐거운 경험이다. 일과 공부에 파묻히지 말고, 더 밖으로 나가자.

  • 컴퓨터 프로그래밍은 수학처럼 순수한 논리의 전개가 아니라 피와 살을 가진 사람의 구체적인 개입을 전제로 하기 때문이다. - 92
  • 소프트웨어를 다루는 사람이라면 누구나 자신이 저지른 실수를 깨닫고 심장이 멎을 것 같은 충격을 받아본 경험이 있을 것이다... 버그는 자신을 탄생시킨 사람을 충격과 공포의 도가니로 몰아넣는 잔인하고 배은망덕한 존재지만, 동시에 사람을 단단하고 강하게 만드는 채찍의 역할도 감당한다. - 93
  • NoSQL은 관계형이라는 패러다임을 극복하기 위한 노력, 클라우드 컴퓨팅으로 대표되는 클러스터 환경에 맞는 데이터베이스를 만들려는 노력, 엄청난 분량과 속도로 생산되는 빅데이터를 처리하기 위한 노력, 미리 정의된 스키마를 사용하지 않으면서 데이터를 처리하고자 하는 노력 등을 하나로 묶어서 지칭하는 포괄적인 표현이다. - 163
  • 원인을 알 수 없는 불안의 뿌리는 대개 스트레스에 있다고 한다. 스트레스를 받는다고 해서 곧바로 불안을 느끼는 것은 아니지만 자기도 모르는 사이에 스트레스가 길게는 6개월 뒤에 심리적 불안의 형태로 다가오기도 하는 것이다. - 220
프로 아마추어
지키는 원칙과 원리가 있다 주어진 일을 아무거나 한다
일을 올바르게 처리하는 데 관심을 둔다 일을 끝내는 데 관심을 둔다
잘못된 일을 지적하거나 스스로 모른다는 사실을 인정하는 데 망설임이 없다 알지 못하는 사실을 아는 척 한다
일관성이 있고 안정감이 있다 예측하기 어렵고 안정감이 없다
책임을 진다 책임을 회피한다 - 249
  • 크리스 웨넘은 '그대가 엉터리 개발자라는 신호들'이라는 제목의 글에서 여섯 가지 신호를 이야기했다.

    • 코드를 머리로 돌릴 수 있는 능력의 부재
    • 자기가 사용하는 언어의 프로그래밍 모델을 제대로 이해하지 못하는 것
    • 학습 능력의 부재
    • 재귀 알고리즘을 이해하는 능력이 없는 것
    • 코드에 대산 불신.. 엉터리 개발자들은 정작 믿지 않아야 하는 코드를 신뢰하고, 믿어도 좋은 코드를 불신한다. - 233
  • 인문학은 인간의 본성에 대해서 탐구하는 학문이다. 그래서 인문학의 본령은 모든 것에 대한 가차 없는 비판, 성역 없는 상상, 인간에 대한 애정, 그리고 실천에 놓여 있다. - 239

  • 사실 '왜'에서 출발하라는 원리는 프로그래밍 언어에 국한되는 이야기가 아니다. 우리 인생의 모든 것이 사실은 '어떻게'를 고민하는 것이 아니라 '왜'를 생각하는 데에서 출발할 때 해답을 얻게 되는 경우가 많다. 전공, 직장, 결혼, 유학, 이민 등을 고민할 때 '어떻게'에 집착하지 말고, 뒤로 물러서서 '왜'를 고민하면 정말로 해야 하는 일이 더 선명하게 드러난다. - 256

  • 자기가 이미 하고 있는 분야, 혹은 잘 알고 있는 분야에 집중해서 우물을 파듯 최대한 깊이 들어가라. 들어가서 물이 아니라 원리를 퍼올려라. 그렇게 퍼올린 원리를 조금씩 다른 분야에 적용해보라. 하수는 자잘한 구현에 집중하고 고수는 언제나 원리에 집중한다는 사실을 기억하라. - 270

  • "얄팍한 사람은 운이나 환경을 탓하고, 강한 사람은 오직 원인과 결과만 생각한다" - 282

  • "앞으로는 프로그래머가 어떤 언어에 대해서 얼마나 많이 알고 있는가 하는 것이 아니라 어떤 언어를 얼마나 빠르게 학습할 수 있는가 하는 것이 더 중요하다는 점을 기억하기 바란다." - 304

개발자의 평생공부

실력과 지식의 총량은 희미한 상관관계가 있기는 하지만 사실상 무관하다. 진짜 실력은 임기응변이기 때문이다. 실력은 주변상황에 휘둘리지 않는 집중력이다. 해결해야 하는 문제가 무엇인지 알아채는 감각이다. 처음 본 문제를 해결하는 능력이다. 이러한 임기응변, 집중력, 감각, 그리고 능력은 이미 알고있는 지식으로부터 나오는 것이 아니다. 그것은 본질에 다가가기 위해서 감내해온 고통, 불면의 밤, 좌절, 환희, 이런 것으로 점철된 뜨거운 경험에서 나오는 것이다. 그래서 실력은 지식의 총합이 아니다. 고통의 총합이다.