Life/Software Engineer
-
구루 개발자의 개발 방법Life/Software Engineer 2021. 11. 29. 08:52
나는 실무를 제대로 안해본 사람들이 실무이야기를 하는 것에 대한 거부감을 가지고 있다. 실무는 그냥 천방지축 얼렁뚱땅 빙글빙글 돌아가는 전문가들의 일상인데 조은, John Cho 조은, John Cho(@euncho__) 님 | 트위터 @euncho__ 님 언뮤트하기 @euncho__ 님 뮤트하기 팔로우 @euncho__ 님 팔로우하기 팔로잉 @euncho__ 님 팔로우 중 언팔로우 @euncho__ 님 언팔로우하기 차단됨 @euncho__ 님이 차단됨 차단 해제 @euncho__님 차단 해 twitter.com 조은님의 트윗을 읽고, 구루 개발자에 대한 환상을 가졌던 내가 떠올랐다. 그런 개발자라고 생각되는 분을 만나고 바뀐 내 생각을 적었다. 이 트윗의 반응이 꽤 좋았다. 그리하여 블로그에 옮겨 적는..
-
오픈 소스는 공짜가 아니다.Life/Software Engineer 2019. 2. 22. 12:57
부제 : 오픈 소스의 숨은 비용. 누구에게나 공짜는 매력적인 단어다. 손해 볼 것 없다는 느낌을 준다. 비용이 '0'이기 때문에 이익이 개미 눈꼽 이상만 있으면 무한의 가성비로 생각한다. 그러나, 표면적으로 드러난 금전적인 비용만을 계산한 오류이다. 숨은 비용까지 따저봐야 정확한 가성비를 알 수 있다. 학습과 유지 보수, 사용 비용은 직접적으로 드러나지 않는 숨은 비용이다. 배움의 비용은 빈약한 문서와 교육에서 기인한다. 많은 상용 제품은 문서와 교육을 포함한다. 반면, 오픈 소스에는 교육과 문서의 의무가 없다. 코드를 보고 파악하거나 블로그의 조각 글을 통해서 배워야 한다. 상대적으로 많은 시간과 노력이라는 학습 비용이 들어간다. 오픈소스에는 유지 보수의 책임이 없다. 누군가 해결할 때까지 문제를 안고..
-
힙스터의 문제 해결 방법 오류Life/Software Engineer 2019. 2. 1. 18:28
여기서 언급하는 "힙스터"란 힙한 기술만을 "맹목적으로 추종"하는 사람을 뜻한다. 기술 허세, 설레발 주도 개발(Hype Driven Development)과도 맥락이 맞닿아 있다. 웹 힙스터, TDD 힙스터, 데이터과학 힙스터, 머신러닝 힙스터, MSA 힙스터, 등 무수히 많다. 기술과 마케팅 용어의 콜라보가 잘 이루어지는 지점에서 힙스터가 발생한다. 기술 마케팅(이라고 쓰고 "약팔이"라고 읽는)이 성공하는 곳마다 힙스터가 존재한다고 여기면 된다. 힙스터의 접근 방법은 좀 특이하다. 문제 해결에 힙한 기술만 주장한다. 지금 해야할 과제 중에 없으면, 그 기술을 적용하기 위한 문제를 만든다. 힙한 기술은 특정 난제 해결을 위해 나왔다. 모든 회사에서 그런 방식의 풀이가 필요한 것은 아니다. 가장 중요하거..
-
James Long "나는 어떻게 더 나은 프로그래머가 되었는가"의 인상 깊은 문장들Life/Software Engineer 2018. 9. 27. 11:48
엄청나 보이는 사람도 실제로 일하는 모습을 보면 우리가 일하는 모습과 그리 다르지 않습니다. 모든 수단과 방법을 가리지 않고 작동하는 코드를 쓰려 합니다(Hacks everywhere). 매일 등장하는 대부분의 새로운 라이브러리 등은 그저 기존에 있던 같은 아이디어의 재탕입니다. 진정 혁명적인 물건은 몇 년에 한번씩 나타납니다. 해결하고자 하는 문제 및 추상화 계층에 많은 시간과 노력을 들이는게 더 낫습니다. 모든 문제가 정리되었다면 약간의 시간을 들여서 코드를 정리하는 작업을 하면 됩니다. 특정 주제를 며칠 정도 조사해보는 버릇은 언제나 문제를 해결하는 방법을 송두리째 바꿔줍니다. 논문을 읽는 방법을 배우는 것도 좋습니다. [번역] 나는 어떻게 더 나은 프로그래머가 되었는가
-
'T'자형 폴리글랏 프로그래밍Life/Software Engineer 2017. 12. 29. 17:37
초보 기능인과 장인 개발자는 기능인이다. 초보 기능인에서 장인으로 거듭나기 위해서 끊임없는 공부와 훈련으로 기술을 갈고 닦아야 한다. 초보 기능인이 "할 줄 안다." 정도의 수준이라면 장인은 "훌륭히 잘 해낸다."라고 말할 수 있다. 장인은 작업 효율도 뛰어나지만, 무엇보다도 완성도가 매우 높다. 'T'자형 인간 예전에는 하나만 잘해도 괜찮은 시대였다. 요즘엔 하나만 잘해서는 힘들다. 자기 전공 이외에도 다방면으로 두루두루 알아야 한다. 이런 사람들을 소위 'T'자형 인간이라고 부른다. 다만, 'T'자의 머리처럼 넓고 얕은 지식만 중요한 것이 아니라, 수직의 몸통처럼 깊이도 필요하다는 것을 잊으면 안된다. 자신의 전문 분야에 대해서 깊은 경지에 도달해야 하는 것은 예나 지금이나 마찮가지이다. 'T'자형 ..
-
민주주의 서비스 아키텍쳐Life/Software Engineer 2017. 3. 14. 15:48
민주주의는 그냥 표를 많이 얻는 이가 권력을 가지는 제도이다. 표를 많이 얻은 사람이 훌륭하다는 보장이 없다. 따라서, 민주주의는 훌륭한 사람 능력있는 사람을 뽑는데 적합한 제도가 아니다. 다만, 이상한 사람이 권력을 잡아도 나쁜 짓을 아주 많이 못하게 한다. 민주주의의 핵심은 평화적이고 합법적으로 권력을 교체할 수 있다는 것에 있다. - 차이나는 클래스에서 유시민 비슷한 원리를 서비스 아키텍쳐에 도입하면 어떨까? 이를 "민주주의 서비스 아키텍쳐"라고 이름을 붙이자. 이 아키텍쳐는 최고의 시스템을 만드는 것을 목표로 하고 있지 않다. 문제가 있더라도 극복할 수 있는 탄력적인 시스템을 만드는 것이 핵심이다.
-
기술 허세Life/Software Engineer 2017. 2. 16. 10:34
자신의 지식이나 기술을 보여줄 목적으로 과도한 기술을 언급하거나 도입하여 것을 나는 '기술 허세'라고 부른다. 최신 유행하는 기술을 마구 늘어놓는 것이 전형적인 형태이다. 기술과는 관련이 없지만, 주변에서 '허세'라는 것을 종종 접한다. 뒷동산에 올라가도 너나 할 것 없이 전문 등산 장비를 몸에 두른다. 최소한 수십만원 때때로 그 이상의 가격이 붙은 등반의 명품을 차려입는다. 장비에 비해서 산이 초라하게 느껴질 정도이다. 자전거 동호외에 참여해도 다르지 않다. 가벼운 라이딩을 즐기는 사람이 장비는 프로들의 그것에 견주어 볼 만 하다. 그들은 비록 닭을 잡지만 소잡는 칼이 있음을 자랑하고 싶다. 수단은 목적에 이르게 하는 도구이다. 목적에 맞게 과하지도 부족하지도 않은 것을 택하는 것이 합리적이다. 합리적..
-
기반 기술을 어디까지 알아야 할까?Life/Software Engineer 2016. 1. 5. 11:42
"기반 기술"을 알아야 좋은 개발자이다. 대략 맞는 말이지만 알아야 하는 기반 기술의 깊이를 논의할 필요가 있다. 개발자의 시간 자원이 유한하기 때문이다. 전산학이나 소프트웨어 엔지니어링의 진보는, 다른 분야와 마찮가지로, 이전 세대가 완성했던 토대 위에 새로운 것을 더하는 과정이다. 어떤 기술이 기반 기술이 될 정도로 널리 인정받으면 그것 위에 다음 계층이 놓인다. 이렇게 기술은 블럭처럼 하나씩 쌓여나간다. 각 계층은 추상화로 구분한다. 새로이 추가된 층위는 하위 단계를 추상화한다. 만약, 하부 영역의 세부 구현에 의존한다면-즉, 추상화를 하지 않았다면- 아래 부분을 확장한 것이지 새로운 계층을 추가한 것이 아니다. 하위 영역를 추상화하면 문제의 범위가 현저하게 낮아진다. HTTP 프로토콜을 논할 때 ..