Ask @hongminhee:

저는 모 스타트업에서 일하는 개발자입니다. 부끄럽지만 저희 회사에는 OSS에 관심을 두는 직원분들이 없어요. 개발팀장님이 그나마 관심이 많아서 깃허브에서 이런저런 활동을 하고 라이브러리 하나 정도 공개하긴 했습니다. 이런 회사 내부에서 공유의 문화를 갖도록 변화를 일으킬만한 뭔가 계략이 있을까요? 민희님이 거치신 spoqa나 styleshare는 이런 문화가 잘 정착된 분위기같아서 조언을 구합니다!

실은 저도 그 질문에 대한 뾰족한 답은 찾지 못했습니다. 언급하신 두 곳 중에 스타일셰어의 경우에는 제가 첫 프로그래머였고 제가 있을 동안 개발팀의 크기가 크지도 않았습니다. 데려온 사람들도 원래 알던 사람들이나 한 다리 건넌 경우가 많았기 때문에, 어차피 관심 분야가 겹치는 사람들이다보니 그런 분위기가 자연스러웠던 것 같습니다.
스포카의 경우 거친 것은 아니고 여전히 다니고 있습니다. 이 곳은 개발팀이 원래 있었는데, 이미 개발팀 내에서 그런 활동에 열의가 있는 분위기였고 저도 그 분위기에 묻어간 편입니다.
그러니까 저 역시 제가 어떤 노력을 해서 그런 분위기가 전혀 없던 팀을 변화시켜볼 기회는 없었습니다. 오히려 그렇지 못한 전 직장 중에 실패한 경험이 더 많고요. 시도해 본 적은 없지만 저도 아직까지는 모두 실패했다, 정도로 정리할 수 있겠네요. 다만, 제가 스포카에 들어왔을 시점과 지금이 팀의 크기나 인력 구성이 많이 달라졌는데도 갈수록 그런 분위기는 강해진 걸 생각하면, 초기 인력(꼭 초기일 필요는 없지만 보통 먼저 있던 사람들이 팀에 영향력이 강해서)의 열의와 채용 전략이 분위기 만들기에 중요한 역할을 하는 것 같습니다.

View more

어떤 이유에서 스포카로 옮기시게 되셨나요?

스포카에서 나갈 생각이 없는 이유는 꽤 여러가지가 있지만요 (스포카가 제게 좋았던 점들), 옮기기로 결정할 당시에는 부끄럽게도 스포카에 대해 많이 알지 못했습니다. 유일한 이유는 몇년 동안 함께 일해본 경험이 있는 사람들이 많이 있다는 것과 내 또래가 많다는 것 정도였고요, 그 외의 이유는 사실 없었습니다. 지금 와서 이러이러한 것들이 좋았기 때문에 옮겼다고 한다면 post hoc이겠죠…

View more

제가 요즘 Py3.4로 asyncio를 써서 IRC Bot을 만들고 있습니다. 그런데 테스트를 작성하려고 하는데 어떻게 해야할지 감이 오지 않습니다. IRC Server를 통으로 짜놓고 테스트를 하는게 Best일지도 모르지만 너무 심하게 먼 길을 가는 느낌입니다. 특정 서버가 항시 살아있다고 가정하고 진행을 해볼까도 생각해봤지만 좋은 접근법은 아닌 것 같은데.. 양방향통신이 일어나야하는 네트워크 프로그램은 어떻게 테스트를 해야할까요?

저는 필요한 만큼만 반응하는 서버를 짜서 통신하게 만드는 편을 선호합니다.

View more

최근에 Rust로 PHP의 Extension을 짤 수 있다는 글을 HN에서 보았는데, Python에서도 가능할까 싶어서 찾아보니 rust로 짜서 rustc로 컴파일해서 나온 .so 파일을 ctypes로 불러다 쓰는게 가능한것으로 보았는데, 향후 Rust로 Python확장을 짜는게 보편화될 가능성이 높을까요? 그리고 그 경우 rustc가 필요한 의존성 문제는 어떻게 해야할까요?

item4
C++로 Python 확장 만드는 경우 있지만, 꼭 그래야 하는 경우 (바인딩하려는 라이브러리가 원래 C++로 작성되어 있는 경우) 아니면 그렇게 잘 안 합니다. Rust도 마찬가지라고 생각합니다. C 확장을 편하게 만드려는 생각이라면 Cython 쓰죠.

View more

작업하면서 음악을 들으시나요? 음악이 작업의 효율을 높히는지 낮추는지에 대한 의견도 있으시다면 궁금합니다

회사에서 일할 때는 잘 안듣고, 집에서 일할 때는 거의 항상 듣습니다. 음악이 작업 효율을 높이지는 않는다고 생각합니다. 가벼운 딴짓으로 봐야겠죠.

View more

개발자 면접을 보신적이 있으신가요? 있으시다면 어떤 점들을 살펴보시는지 궁금합니다. 아니시라면 아쉽군요.

최근에 스포카에서 면접을 진행해본 경험은 있습니다만, 제가 딱히 좋은 면접관은 아니라고 생각합니다. 면접의 전문성에 대해서는 김창준 씨의 애자일 이야기 블로그에 매우 좋은 글들이 많이 올라와 있으니 참고해 보세요.
- 인터뷰에서 진실을 들으려면 http://agile.egloos.com/2891385
- 떨어트리는 면접 http://agile.egloos.com/2920765
- 성공적인 채용 면접의 공공연한 비결 http://agile.egloos.com/5359401
스포카 면접에서 프로그래머한테 주로 보려고 하는 것은 문제 해결의 방식입니다. 과거에 진행했던 프로젝트에서 가장 어려웠던 문제가 뭔지 물어보고, 그 문제의 어떤 점이 왜 어려웠고, 어떻게 해결했으며, 어쩌다 그런 해결책에 이르게 되었는지, 그 해결책 말고도 시도했던 다른 해결책이 있는지, 왜 다른 해결책은 기각되었는지 같은 것을 물어봅니다. 마찬가지로 스포카에서 존재했던 몇 가지 문제 중에 하나를 꺼내서 시간을 주고 물어봅니다. 어떻게 해결하려고 하는가? 대안은 없었는가? 왜 다른 대안은 기각되었는가? 여기서 제 개인적으로 가장 주목하는 점은 ‘다른 대안을 왜 기각했는가’에서 어떤 근거를 대는가인 것 같네요.

View more

안녕하세요. c++을 공부하는 한 학생입니다. 최근 고민이라면 고민인데 어떤걸 만들어야 할지 잘 모르겠습니다. 분명 지금까지 프로그래밍 공부도 열심히 했고 분명 공부한걸 잘 활용해서 뭔가 만들고 싶은데 뭘 만들지가 생각이 안납니다 =_=;; 이런 경험이 있으신지 궁금해서 물어봅니다

제 답변이 도움이 별로 안 될 것 같은데… 사실 저는 뭘 만들고 싶어서 배운 적이 많아서, 그걸로 뭘 해야할지 모른다거나 그런 적은 없던 것 같습니다. (대신 배움에 체계가 없고 뒤죽박죽임.)
그런데 C++를 배우셨다니, 그걸로 뭘 하려고 하면 딱히 생각날 게 없긴 하겠네요. 이제 C++는 시스템 프로그래밍 아니면 게임 서버 같은 걸 만들 때나 쓸 것 같은데요.

View more

flask를 이용하여 백엔드 서버를 만든 후, 서비스에 활용하고 있는데요. node js의 성능이 매우 눈에 들어오는데요... 파이썬만으로도 충분히 성능이 좋은 백엔드를 만들 수 있을까요? 제가 아직 지식이 부족해서 파이썬으로도 잘 하면 성능 문제를 해결할 수 있을지 모르겠습니다. 파이썬으로도 성능을 극복할 수 있다면, 어떤 키워드로 검색을 해보거나 조사를 하면 좋을지 조언 부탁드리겠습니다.

어떤 서버를 짜느냐에 따라 달라지겠지만… 일단 V8은 CPython보다 구현 측면에서 투자가 훨씬 많이 되었습니다. V8을 만든 Lars Bak이 원래 Self 구현체를 만들면서 JIT라는 것을 제안한 사람이고 그 이후 해당 기술을 도입한 Java HotSpot을 만든 사람인 것은 유명한 사실입니다 (Self와 Java 둘 다 Sun Microsystems에 있을 때 참여). 다만 이 언어 구현체의 성능이라는 것은 주로 CPU 바운드의 계산 처리에 대해 영향이 있으며, 이 부분의 격차를 줄이고 싶다면 CPython 대신 PyPy를 도입하시길 권합니다.
CPU 바운드 작업이 별로 없는 서버라면 PyPy를 도입한다고 해도 눈에 띄는 성능 향상은 없을 것입니다. I/O 바운드 작업이 주라면 논블럭 I/O를 도입하는 것이 더 효과적이겠죠. Python과는 달리 node.js는 모든 I/O 연산이 논블럭이 디폴트입니다. Python은 전통적인 I/O API를 좀더 Pythonic한 스타일로 포장한 정도이기 때문에 아무래도 생각 없이 쓰면 차이가 납니다. Python 3.3 이상을 쓰신다면 표준으로 들어온 asyncio를 살펴보시길 추천합니다. 이미 블럭 I/O 스타일로 많은 코드를 짜둔 상태라면 gevent나 eventlet을 살펴보시길 추천합니다.
몇년 전에 쓴 글이지만 이 블로그 포스팅도 한번 읽어보시면 좋을 것 같습니다. http://blog.dahlia.kr/post/18355002657

View more

aws 에 데이터베이스를 세팅하려 합니다. 데이터베이스는 postgresql 로 정했구요. 그런데 amazon RDS 를 사용하는 것이 좋을지 ec2 위에 직접 데이터베이스를 설정하는게 좋을지 고민됩니다. 몇일째 관련 내용을 서칭하는데 또렷한 답이 있는 편은 아니네요. 어떤게 괜찮을까요?

어느 쪽이 좋은지 모르겠으면 쉬운 쪽으로 가세요. 저라면 그런 상황(정보가 별로 없는 상황)에서 설정이 간편한 RDS로 갈 것 같습니다.

View more

Next