http://blog.sanctum.geek.nz/compiling-in-home/

덧) .local 디렉토리를 만들어 설치하는게 좀 더 깔끔하고 안전

1. model의 존재 여부나 비교시에는 foo.bar 보단 foo.bar__id를 사용하자 - 불필요한 database hit을 줄여줌

2, filter 사용시에도 마찬가지. Foo.objects.filter(blah=bar) 보단 Foo.objects.filter(blah=bar__id) 로.

3. model object 자체가 아니라 단순히 값만 필요할 때에는 QuerySet.values()나 QuerySet.values_list() 를 사용하자.

4. 이미 갖고 있는 값을 또 다시 찾지 말자.

ex ) foreign key 값이 필요한 경우 : foo.bar.id 대신 foo.bar_id 를 쓰면 된다.

5. Python에서 기본 자료형으로 Decimal은 Float에 비해 느리다. (http://stackoverflow.com/questions/195116/python-decimal)

   현재 쓰고 있는 2.7.3 버전에서도 저 정도는 아니지만 동일한 코드로 테스트 해 보니

FLOAT 0.00903288048187

DECIMAL 0.84641688295

   와 같은 결과가 나왔다. FloatFields를 쓰자.

6. QuerySet.select_related()

6-1. get_object_or_404 + select_related : get_object_or_404(Model.objects.select_related(), foo=bar)

귀찮게 이런걸 적는 성격은 아니지만, 나도 다른 지원자들의 후기를 찾아보면서 많은 도움을 받았기에 한 번 써 본다.

1. 지원서

마감 당일날 허겁지겁 써서 냈기에 뭐라고 딱히 할 말이 없다. 그냥 스타트업 하면서 했던 프로젝트들 3가지 기입 했고,
지원 동기나 하고 싶은 프로젝트도 그럭저럭 구색만 맞춰서 냈었다.

아마 프로그램 특성 상 어떤 프로젝트를 얼마나 어떻게 했냐가 많은 비중을 차지 하는 것 같다.


2. 인/적성 검사

인성 검사는 보통 검사처럼 자신의 가치관이나 잣대를 묻는 식으로 나왔고, IQ 테스트에 나올 법한 검사도 이뤄졌다.
솔직히 후자 같은 검사가 있을거라곤 예상하지 못했는데, 어차피 소마쪽에서도 완벽하게 다 맞추는 걸 기대하는 것은 아닐테고, 그냥 이놈이 사람 구실하고 머리도 그럭저럭 쓸만하구나 정도를 알아보는 목적이 아닐까 싶다.

적성 검사는 서술형이었다. 펜으로 장문의 글을 써본적이 신입생 시절 이후로 매우 드문 일이였기에 글 쓰는 것 자체가 굉장히 힘들었다. 문항 중 뭐 이런걸 묻나... 싶은 것들도 있었지만 불평한다고 안 쓸 것도 아니고 꾸역꾸역 써서 냈다. (그리고 후회하게 된다.)


3. 면접

먼저 30분간 코딩 테스트가 이뤄진다. 코딩실로 들어가서 몇가지 문제중 하나를 골라서 테스트를 하게 된다. 물론 인터넷은 안 된다. 3명이서 같은 문제를 풀게 되는데, 문제를 뽑을 때 내가 중간에 있어서 양 옆의 분들이 나보고 문제를 뽑으라고 하셨고, 결과적으로 좋은 선택이 되었다. 면접 전에 먼저 면접을 본 지인들로부터 들은 얘기로 코딩 테스트에 대한 막연한 불안감이 있었는데, 적어도 나에게 있어선 엄청나게 간단한 (...) 문제가 나왔기에 식은 죽 먹기로 문제를 풀 수 있었다. 아마 같이 시험을 본 다른 분들도 키보드 두드리는 소리가 나보다 길긴 했지만 마찬가지였으리라 생각한다.

코딩 테스트가 끝나면, 면접실로 들어가 실제 면접이 진행 된다. 먼저 코딩 테스트에서 작성한 자신의 코드를 어떤식으로 문제를 해결했는지 설명하고 실행도 해 보이게 된다. 나 같은 경우는 문제가 워낙 쉬웠던지라 면접관 분들이 몇분만에 문제를 풀었냐고 물으시고 남은 시간에는 뭘 했냐고 물으셨다. 남은 시간에 코드를 어떻게 더 효율적으로 짤 수 있을까 생각했다고 대답했더니 여기서 한 번 해 보라고 하셨다 (OTL) 
아마 어려운 문제를 뽑아 코드를 다 완성하지 못했다 하더라도 그것 때문에 큰 감점이 있거나 그런건 아닐꺼라고 생각한다. 왜 이렇게 코딩을 했냐, 어떤 식으로 문제를 해결하려고 했었냐 가 주된 논점이였기 때문에..
다만 변수명을 a, b, c, x, y, z 이런 식으로 짓거나 날 코딩을 하는 것은 추천하지 않는다. 나는 아니었지만 지인의 acm 출신 친구가 지원할 때 저런식으로 코딩해서 냈더니 acm이나 하지 왜 지원했냐... 라고 혼냈다는 카더라 썰이 있었는데 뭐 진실이든 아니든 코드를 설명해야 한다는 점에 있어서 보기 좋고 알기 쉽게 코드를 짜는 것을 추천한다.

다음으로 자기 소개를 준비해온게 있다면 한번 해 보라고 하신다. 나는 미리 다른 지원자들의 후기나 지인들의 얘기를 들어 내가 진행했던 프로젝트에 대한 PT를 준비해 갔었다. 중요한 점은 자기 노트북을 가져 가거나 파일을 USB에 넣어가야 PPT를 보여줄 수 있다. 코드 리뷰 용으로 노트북이 있긴 했는데 역시 인터넷이 안 되더라..

나처럼 프로젝트 위주의 PT를 할 생각이라면 그냥 단순히 어떤 어떤 프로젝트였다 라고 설명하는 것 보다는 내가 그 프로젝트에서 어떤 역할을 수행하는지 구체적으로 설명하는 것이 좋다. 난 간략하게 설명했더니 한 면접관분이 '그래서 저 프로젝트에서 자네는 무엇을 했는가' 하고 다시 물어보셨기 때문에..
그래서 PT가 끝나고 한동안 내 프로젝트들에 대한 질문이 주를 이뤘다. 구체적으로 서비스가 어떤 식으로 어떻게 됬느냐 등의..

그리고 지원서와 적성 검사에서 작성했던 글들에 대한 공세가 시작 되었다. 어지간해선 튼튼한 내 멘탈이 산산조각 수준에 이르렀을 정도였다. 물론 내가 지원서를 대충 작성했고 적성 검사도 꾸역꾸역 써 내어 허점을 제공했기 때문에 뭐라고 할 말은 없지만...
다른 지원자 분들은 글을 쓸 때 좀 더 신중하게 자신이 설명할 수 있고 납득 가능한 수준으로 쓰시길 바란다. 여튼 이 부분 때문에 내 면접은 sigh..

그 밖에 개발할 수 있는 언어는 뭐가 있느냐, 소마와 학업 중 우선시 할 것, 지원 동기, 니가 소마에 뭘 해줄 수 있느냐 등의 질문들이 있었다.


뭐 소마 지원은 대충 이런식으로 이루어 진다. 물론 이것은 내가 지원했던 4기의 경우이고 다음 지원이 이루어지는 5기 때는 또 어떤식으로 바뀔지 모르기 때문에 간단히 참고하는 정도로만 보면 좋을 것 같다.

합격 발표가 28일이라 글은 그 이후에 공개해야지 (혹시나)


4. 결과

Fail. 아쉽지만 뭐... 나보다 잘난 사람들이 많다는걸로 알고 더 노력해야겠다.

  1. asdf 2013.06.29 23:44

    지원하진 않겠지만 좋은 글 읽고 갑니다!
    능력은 충분하신 것 같은데 아쉽게 되었네요 ㅠㅠ

  2. 2014.04.15 19:45

    비밀댓글입니다

  3. Favicon of https://seyuns.tistory.com BlogIcon 세팔이 2014.04.28 17:41 신고

    감사합니다.. ^^

  4. 고말 2014.06.26 08:46

    5기 선발에도 같은 프로세스로 진행되었습니다

+ Recent posts