Category Archives: Uncategorized

시니어 엔지니어로 넘어가기 위한 기술: 코드 읽기

쥬니어 시절, 나를 도와주는 시니어 엔지니어들로부터 도움을 받은 일이 많았다. 그 때 어깨너머로 배운 점 중 하나는 그들은 정말 빠르게 문제를 파악하고 해결한다는 것이었다. 이제 나 역시 10년이 충분히 넘어간 경력을 쌓은 시점에서 되돌아보건데 경험이 많은 엔지어는 이런 점이 달랐다. 디버깅 메시지를 볼 줄 알았다. 내가 작업하던 서버들은 덩치가 컸다. 컴파일만해도 수십분이 걸리고 실행하는데도 그만큼의 […]

트위터

어느덧 이제 블로그를 한지 굉장히 오랜 시간이지나 얼마나 했는지도 모를만큼 시간이 지났습니다. 다른 모든 개발자 하늘처럼 나는 이제 글도 별로 쓰지 않는데 뭔가 배우는 것이 없어서가 아니라 그냥 글을 쓰지 않기 때문에 글을 쓰지 않고 있네요. 트위터에는 종종 글을 쓰는데 와서 봐 줬으면 좋겠습니다. @Minkoo 입니디.

AutoValue in Java

https://github.com/google/auto/blob/master/value/userguide/index.md @AutoValue 만 쓰면 인터페이스로부터 immutable value class를 만들어준다. 좋긴한데 뭔가 좋지 않다. 자바는 진짜 언어가 너무 복잡한거 아닌가.

typing.NamedTuple

파이썬의 typing, types를 보면 신기한 것들이 많이 추가되고 있다. 최근 @golbin 님으로부터 배운 것중 하나는 NamedTuple. 파이썬 3.7부터는 @dataclass라는 annotation으로 가능해진다. 혹시 -> float 부분이 뭐지 싶으신 분은 Type Hints를 참고하시길.

choco

윈도우용 유니버셜 인스톨러. https://chocolatey.org/ 예를들어 ssh 도 이렇게 설치 가능하다.

파이썬 코드에서 중간에 콘솔 띄우는 디버깅

파이썬 디버깅할 때 쉽게 하는 방법중 하나입니다. 코드를 실행하다가 중간에 로컬 변수를 모두 볼 수 있는 콘솔을 띄우려면 이렇게 합니다. 그러면 파이썬 콘솔이 a=3 뒤에 실행되고 곧바로 print(a) 로 그 내용을 볼 수 있습니다.

Rounding Half to Even

반올림을 할 때의 문제는 0.5 입니다. 0.5를 제외하고는 절반은 작은 수, 절반은 큰수로 가죠. 예를들어 round(0.3)=0 이고 round(0.6)=1입니다. [0, 1] 사이의 수에 반올림을 하면 소수점 이하가 0.5인 경우를 제외하고는 round()를 하고나면 절반은 0, 절반은 1이되어 기대값이 0.5가 됩니다. 문제는 0.5인데, 통상 우리가 아는 반올림은 round(0.5)=1입니다. 이 방법을 Round Half Up이라고 합니다. 이 방법의 문제점은 대칭적이지 […]

모든 문제를 내가 해결할 필요는 없다

프로그래머는 버그가 발생하면 그 원인을 찾고 해결하는데 익숙합니다. 무언가 잘 동작되지 않으면 원인을 찾는데 그치지 않고 문제를 직접해결하게 되기도합니다. 그런데 회사에서 일을 할 때는 모든 문제를 꼭 내가 해결할 필요가 없다는 말을 적고 싶습니다. 해당 컴포넌트를 담당하는 사람이 있다면 그 사람에게 버그 리포팅을 할 수도 있을 것이고, 뭐가 잘못된건지조차 알 수 없다면 담당자에게 문의를 할 […]

AMP (Accelerated Mobile Pages)

https://www.ampproject.org/ 성능을 우선한 설계와 캐싱으로 모바일 페이지 로딩 속도를 향상시키는 open source initiative. 이를 사용중인 회사에는 Google, LinkedIn, Twitter등이 있습니다.

TeraSort on Hadoop

아파치 하둡에서 예~전에 했던 테라소트에 대한 페이퍼가 TeraByte Sort on Apache Hadoop에 있습니다. 입력 데이터가 상당히 흥미로운데 대회 홈페이지의 입력 데이터 FAQ를 보면 JouleSort의 경우 key가 10바이트이고 key의 각 자리는 95개의 value에 대응된다고 합니다. 따라서 key가 같다고 value가 같지는 않지만 key 순으로 정렬하면 value도 정렬됩니다. 그래서 http://www.slideshare.net/mobile/tungld/terasort에 있는 것처럼 키값을 여러개의 범위로 나누고 각 범위를 reducer에 […]