코딩 스타일에 대해 논쟁하는 이유
코딩 스타일은 개인적으로 따르게 하긴 쉬워도 스타일이란 의제를 가지고 합의해가는 과정은 정말로 어려운 문제라고 생각합니다. 왜 스타일이 필요한지, 의견 충돌을 왜 일어나는지, 어떻게 합의에 도달하는지 등에 대한 전반적인 내용이 잘 정리되어 있는 글이 있어 원 저자의 허락하에 본 블로그에서 번역해 공유합니다. 원 글은 "Why We Argue: Style"이란...
View Article역사속의 소스 코드들
옛 영광을 뒤로하고 사라져간 소스들을 찾아보았습니다. 아폴로 11호의 사령선(콜롬비아)과 달 착륙선(이글) 자동 제어 프로그램(1969년 아폴로 유도 컴퓨터의 소프트웨어 책임자는 마가렛 해밀턴, NASA의 인턴 Chrisl Garry가 이미 공개된 소스 코드를 디지털화하고 GitHub에서 공개한 것. 어셈블러.)Xerox, Alto 소스 코드(1975년부터...
View Article왜 Vim은 방향키로 hjkl로 했을까?
UNIX 편집기로 Emacs과 쌍벽을 이루는 VI는 전설적인 개발자 빌 조이에 의해 만들어졌죠. 그런데, VI를 가장 많이 쓰는 키가 바로 이동키인데, 그것이 hjkl로 되어 있다는 것에 궁금한분들이 계실텐데, 아시는 분들도 많겠지만 모르는 분들을 위해 좀 정리를 해 둡니다. 당시 빌 조이가 몸담고 있던 버클리에 도입된 단말기가 "ADM-3A"란...
View Article왜 철학을 공부하는가?
하버드 대학에서 철학을 공부해야하는 이유에 대해 명확하게 기술되어 있어서 간략하게 나마 번역해 보았습니다. 살아가는데 좋은 교훈이지 않을까 생각합니다. 원문은 "Why Study Philosophy?"입니다. 캘리포니아 대학 버클리 캠퍼스의 철학자인 존 캠벨은 철학에 대해 어떻게 생각하는지에 대한 내용입니다. -- “철학은 우리가 평소 굉장한 속도로 움직이고...
View ArticleSpring에서 Field Injection보다 Constructor Injection이 권장되는 이유
이 주제는 좀 묵은 주제이기도 하지만, 주변을 둘러봐도 그렇지만, 일단 의존성 추가나 삭제가 간결하고 코드량도 많지 않고, 문제 발생한 경우도 없어서인지 Field Injection을 많이 사용하게 됩니다. 하지만 왜 Spring Team에서 Constructor Injection을 추천하는지 리마인드 차원에서 정리해 봅니다. Spring의...
View ArticleCTO는 무슨 일을 하나?
CTO에 대해서는 좋은 아티클을 추천한다면 개인적으로 #define CTO와 함께 What does a CTO do?를 공유하곤 하는데, 그 중 후자가 더 CTO가 해야할 역할에 대해 잘 기술해 놓은 것 같아서 원저자의 하락하에 번역해 봅니다. What does a CTO do?아티클의 저자는 Cloudera의 Founder이자 CTO인 Amr...
View Article프로그래밍에서 인지 편향
프로그래밍을 하면서 인간은 수많은 생각과 판단을 마주하게 되는데, 그에 못지 않은 인지 편향이 개발자들로 하여금 최선의 결정을 방해해서 결국 버그를 만들게 하고, 생산성을 저해하며 자신감을 떨어끄리기도 하고 일정을 지연시키기도 합니다. 개발자들이 알아야두면 도움이 될 것 같아, "Cognitive Biases in Programming"에 대한 아티클을...
View Article프로그래머의 악몽이란?
Quora에서 재밌는 글을 발견해서 여기에 남깁니다. 심심힐 때 한번 보고 리프레쉬 하세요. ^^당신의 코드나 혹은 버그가 우발적으로 누군가를 죽이거나 해할 수 있다.Internet Explorer(웹 개발자의 경우)요구사항이 다시 변경되었다.(잦은 요구 사항 변경)GitHub의 병합이 충돌한다.의도한 것과 다른 디렉토리를 rm -rf *를 입력해...
View ArticleTwitter는 어떻게 1초에 3,000개의 이미지를 처리하고 있나?
Twitter는 서비스에서 어떻게 이미지를 처리했는지에 대해 잘 정리된 글이 있어서 원 저자의 허락하에 제 블로그에 포스팅합니다. 원 글은 How Twitter Handles 3,000 Images Per Second"입니다. 이 글을 통해 퍼블릭 서비스를 만들때 사이트내에서 미디어를 어떻게 처리하면 좋을지에 대한 좋은 힌트를 얻을 수 있으면 더더욱 좋을 거...
View Article설정 기반의 플러그인 시스템(Java)
Java에는 OSGi라는 동적 모듈 플러그인 시스템을 구현할 수 있도록 가능케하는 오픈 소스가 있지만 다루기 복잡한 면이 있어, Guice, Airlift, ServiceLoader를 활용해 간단하면서 요긴한 플러그인 시스템을 만들어 본다. 기본적인 제약사항은 단일 프로세스에, 플러그인 추가나 제거시 프로세스를 재시작해야 하며, 정의된 플러그인만 가능하다는...
View Article데이터에 현혹되지 않고, 데이터를 잘 활용할수 있는 14가지 룰
요즘 데이터에 관련된 부분을 생각하고 고민하다보면서 데이터를 바라보는 시각에 도움되는 글이 있어서 원저자의 허락하에 번역해 봅니다. 원저는 14 rules for data-driven, not data-deluded, marketing"입니다. 이 글을 쓴 SCOTT BRINKER는 년도별 "Marketing Technology Landscape...
View Article대용량 파일 다운로드는 Axel
Axel은 멀티 커넥션 타입의 다운로더이다. wget이나 curl과 같이 다양한 대응은 할 수 없지만, 하나의 파일을 여러 연결(기본 연결은 4)을 통해 다운로드를 실행하기 때문에 대용량 파일의 다운로드에서는 wget이나 curl에 비해 많이 빠르다. 다운로드 속도를 올리고 싶으시면 Axel을 사용해 보세요.설치- Mac OSX $ brew install...
View Article2016년 6월 기준 유니콘 기업 분석
유니콘 기업이란 상장되지 않았고 기업 평가액이 10억달러 이상인 기업을 말합니다. 유니콘 기업의 통계자료를 분석해 보면 핫한 기업 및 산업 분야를 알 수 있고, 연도별로, 국가별로 유니콘 숫자, 유니콘이 되기까지 얼마의 기간이 필요했으며, 유니콘 투자회사들 등을 알 수 있을 거 같습니다. 데이터 입수 전세계 유니콘의 데이터 정보는 기업 정보 데이터베이스를...
View ArticleSelf-Service BI 제품 U2를 소개
와이즈에코에서 만든 Self-Service BI 제품 U2를 소개합니다. SQL On Hadoop(Tajo, Impala, Presto, Hive), RDB(Oracle, Postgresql)의 데이터를 다양한 리포트로 자동 퍼블리싱이 가능한 제품입니다. 제품의 기능은 아래 제품 소개를 살펴봐 주시면 감사하겠습니다. U2 제품 소개U2 product For...
View Article객체지향 프로그래밍으로 유틸리티 클래스를 대체하자.
유틸리티 클래스를 안써본 사람은 거의 없을겁니다. 유틸리티 클래스가 좋다, 나쁘다는 논쟁꺼리지만, 객체지향의 관점에서 볼때 그래도 생각해볼 꺼리가 된다고 생각해, OOP Alternative to Utility Classes"라는 아티클을 저자 허락하에 번역해 봅니다. 유틸리티 클래스(또는 헬퍼 클래스)는 정적 메소드만을 가지고 있고, 상태를 내포하지 않는...
View Article넋두리
오늘은 블로그 글을 쓰고 싶어서 그동안 메모해 두었던것들, 생각나는 것들, 책 읽은 것들을 정리, 인용해서 채워나갑니다. ^^Leadership and Management -- The Two Creations(리더십과 관리능력, 두 개의 창의성) 회사를 경영하는 것은 참 쉽지 않네요. 오늘은 초심으로 돌아가보고자 The 7 Habits of Highly...
View Article왜 Null이 나쁜가?
우리가 개발을 하면서 항상 마주하는게 NULL 체크인데(잊고 있을수도 있지만), NULL 체크를 해야하는지 말아야하는지 등의 부담을 개발자에게 전가시키는 것은 안좋은 방법이라고 알고 있다. 그래서 왜 Null의 반환이 안좋은지를 잘 이해시킨 포스트가 있어 소개한다. "Why NULL is Bad?". Java에서 NULL을 사용하는 아주 단순한 예이다....
View Article스타트업에 필요한 코드 품질 관리
코드 품질 관리 부분은 개발자가 소홀히 하기 쉬운 부분이고, 대기업에서는 어느 정도 품질관리 부서가 있어서 프로세스화 되어 있는데, 작은 기업들은 개발자의 성향에 의존하는 환경에 놓여 있어, 개발자가 코드 리뷰하기 전에 남에게 내 놓을 수 있는 최소한의 품질이 보장되는 코드를 양산하도록 도와주는 정적 분석 도구에 대한 사용 가이드를 정리해 보았습니다. 정적...
View Article코드 리뷰의 기본 원칙들
1. 리뷰도 프로젝트의 공식일정과 자원에 포함시킨다. 2. 목표는 사람(사람에 대한 선입견 포함)이 아니라 산출물(프로그램 등)을 검토한다. 3. 문제를 명확하게 할 순 있어도 모두 해결하려고 하지 않는다. 4. 성능과 이해도에 영향을 주지 않는 한 그 사람의 스타일을 문제제기하지 않는다. 5. 리뷰는 2시간을 넘지 않는다. 6. 초기에는 비공식 리뷰나...
View ArticleJava에서 String 클래스가 왜 final 혹은 Immutable인가?
Java에서 String이 왜 final 혹은 Immutable인지에 대해서 적당한 사유를 정리해 준 사이트(Why String Class is made Immutable or Final in Java - 5 Reasons")가 있어 번역, 정리해 봅니다. 왜 String 클래스가 final이었는지의 진짜 이유는 James Gosling이 말했던 보안적인...
View Article