Daybreakin Things
2차 면접을 보고나서 연락을 기다리고 있었는데, 오늘 드디어 연락이 왔다. 그러나 결과는 아쉽게도 다음 기회를 노리라는 것. 리크루터 말로는 나름대로 팀에서 굉장히 고민을 했다고 하고, 문제 해결 능력이 어느 정도 있는 것 같아 2차로 더 어려운 걸 물어보기도 했지만 전체적으로 종합했을 때 약간 부족한 면이 있다고 생각해서 그렇게 결정되었다고 한다.
뭐, 당연히 지원한 입장에서야 아쉬움이 남는다. 특히 알고리즘 문제 풀이 쪽으로는 학교 수업 외엔 사실 별로 경험이 없었음에도 실제 면접에선 그래도 나름 만족스럽게 풀었기 때문이다. 구글 측에서 구체적으로 어떤 이유로 인해서 떨어뜨리게 되었는지는 모르겠지만, 어쨌든 그쪽도 나름의 합당한 이유가 있었으리라 생각한다.
내가 개인적으로 생각하는 이유(절대 구글이 얘기해준 것이 아니며 내 자신의 평가임)로는:
어차피 면접이라는 게 떨어질 수도 있는 거고 붙을 수도 있는 거고, 구글에서 인턴을 못한다고 해서 인생이 망하는(...) 것도 아니므로 크게 상심하지는 않는다. 어쨌든 세계 1위의 IT 기업 중 하나인데 들어가는 게 만만할 리는 없겠지. 사실 내 주변에 인턴을 하고 있는 친구들이 그렇게 많은 것도 KAIST라는 특수한 환경이기에 가능한 것이지, KAIST를 벗어나서 생각해보면 인턴 지원할 엄두도 못 내는 사람들도 많다.
그래도 면접 진행과정에서 지원자를 잘 배려해주는 모습이나, 불합격 소식을 전하면서도 재도전하면 언제든지 환영한다고 하는 부분 등은 인상적이었다. 역시 세계적으로 인재를 중시하는 기업다운 모습이고 또 한편으론 그만큼 자신있다는 뜻일 것이다.
내 개인적으로는 매우 좋은 경험이었다. 말로만 듣던 구글같은 기업에서는 어떤 식으로 인재들을 뽑는지 직접 체험해 볼 수 있는 기회였고, 한편으로는 내가 컴퓨터과학 전공자로서 어떤 부족한 부분들을 채워야 하는지 알게 해준 셈이다.
다시 지원할 지, 어차피 휴학 예정이었던 가을학기 동안 무엇을 할 지는 좀더 생각을 해봐야겠다. 어쨌거나 결과가 나오니 후련하구나.
이 글은 아침놀님의 2008년 7월 30일의 미투데이 내용입니다.
It was exactly 39 days ago when I left Sweden. I've been busy for many things, such as interviews for software engineer internship of Google Korea1, and also Textcube 2.0 designing and prototyping.
Well, just after I came back to Korea, I found a very good website that provides Korean-learning materials. Here is the link. :P It has several subscription options including both free and paid. I think the free one should be sufficient to learn basic Korean.
Instead of introducing details of Korean language, I'm going to tell about my normal life and Korean culture in many aspects, for example, favorite websites used by Korean people, famous vacation places, and traditional foods.
I'm not sure that I could keep writing bilingual posts here, but I'm planning to add a function which enables multi-lingual posts for Textcube 2.0. Then, I will be able to provide more convenient reading to foreign visitors.
Yes, I just finished the second team interview last Monday. Now I'm waiting for the result. ↩
이 글은 아침놀님의 2008년 7월 29일의 미투데이 내용입니다.
이 글은 아침놀님의 2008년 7월 28일의 미투데이 내용입니다.
이 글은 아침놀님의 2008년 7월 27일의 미투데이 내용입니다.
어제 분당에서 제로보드 오픈소스 간담회가 있었다. 제로보드는 원래 zero라는 닉네임을 쓰시던 고영수님이 1999년 무렵부터 개발해오다가 2000년대 들어 제로보드4를 발표한 뒤로 정체 상태였는데, zero님이 장병규 선배가 창업하신 첫눈으로 가신 후부터 제로보드5를 개발하였고, 다시 첫눈이 NHN에 인수된 후부터 NHN측의 전폭적인 지원으로 제로보드XE를 개발해오고 있는 상황이다.
세션은 "XE의 현재와 미래"라는 주제로 zero님이 직접 발표하신 것에 이어 "XE의 주고와 개발 방법론"이란 제목으로 하늘님이 발표하시고, 마지막으로 제로보드의 기존 사용자층이 아직 웹표준에 익숙하지 않다는 것을 인식해서인지 후니님의 "웹표준의 이해와 접근"까지 이렇게 3개로 이루어졌다.
온라인으로 신청한 사람은 얼마나 될 지 모르겠지만 실제 참가한 사람들은 대충 40~50명쯤 되는 것 같았다. 기존 제로보드가 여러 곳에서 널리 사용되었던 만큼 다양한 분들이 오셨는데, 교육·공공기관의 홈페이지 작업을 주로 하는 웹에이전시 업체에서 오신 분부터 시작해서 프로그래밍에는 문외한이었지만 회사의 사용자 지원팀에서 제로보드를 쓰다보니 말리게 된(?) 분까지 있었다.
두번째 세션 시간에 노트북으로 ZBXE svn sandbox 소스를 내려받아 살펴보았는데(사실 그동안 자세히 뜯어본 적이 없었음) 아주 깔끔한 구조로 잘 만들어져 있었다. 특히 각 모듈마다 사용되는 DB Query들을 XML 형태로 추상화하여 모아놓은 것이 인상적이었다. (원래 행사장 무선랜이 작동하지 않았지만, myLG070 네트워크에 기본 암호로 접속하는 방법을 후니님이 알려주셔서 살짝 빌려썼다. =3=3) Singleton 형태로 Context 객체를 이용하는 부분이나 Debug 출력을 위한 객체 제공 부분 등은 텍스트큐브에도 도입해야겠다는 생각이 들기도 했다.
한편으론 이런 구조화·모듈화가 프로그래밍 입문자들한테는 더 어려울 수가 있기 때문에 그만큼 코드에 주석도 잘 달아놔야겠다는 생각도 들었다. (근데 주석을 영문으로 달아야 할까 한글로 달아야 할까? -_- 일단 이런 식으로 해놓긴 했는데...)
사용자층이 다양했던 만큼 다양한 요구사항들이 나오기도 했다. 동영상 강의, 쇼핑몰 구축, 위키 시스템 도입 등을 건의하였는데, 사실 직접 모듈 개발을 하면 얼마든지 가능한 부분이라 생각되지만 역시 아직 ZBXE 내부 구조에 익숙한 개발자들이 별로 없다는 점이 문제인 듯 싶다. 이 외에도 성능 개선이나 full-text 검색 지원, 버전 업그레이드시 쉽게 꼬이는 문제 등이 지적되었다.
태터툴즈와 텍스트큐브는 아직까진(...2.0은 내가 손수 뒤집고 있음-_-) 구조를 천천히 조금씩 바꾸어오고 있기 때문에 이게 큰 문제가 되지 않았는데, 제로보드4와 XE는 너무나 다르기 때문에 다양한 스킨과 modding을 만들던 사람들이 다 떨어져나가버린 것이 커뮤니티 성장을 늦추고 있는 것 같았다. 텍스트큐브 2.0에선 새로운 스킨 규격을 사용할 예정이지만 기존 스킨도 그대로 호환이 되게 가져올 것이고, 플러그인도 큰 변화 없이 사용할 수 있도록 해야 할 것 같다. (단, DB에 접근하는 플러그인들은 새로운 framework을 이용하도록 바뀌어야 한다.)
뒷풀이에서 많은 이야기가 오갔다. 제로님 또한 텍스트큐브의 성장에 많은 관심을 가지고 계셨고, 오픈소스 커뮤니티를 성장시키고 활기차게 이끌어가는 것이 얼마나 어려운지에 대한 이야기도 나누었다. 결국 오픈소스 프로젝트가 일정 규모 이상으로 커나가기 위해선 영리기업의 후원이 어느 정도 필요하다는 얘기도 했다. 또한 NHN에서 제로보드 개발을 적극 지원하고 있음에도 어느 정도 경험이 있고 제로보드 개발에 관심을 보이는 개발자를 찾기가 쉽지 않아 아쉽다고도 하면서, Needlworks 개발팀이 그런 점에서는 다소 부러운 면도 있다고 이야기하셨다.
어쨌든 그동안 제로보드4 덕분에 막연하게 가졌던 폐쇄적인 이미지와 달리 '오픈'에 대해 굉장한 의지를 가지고 있다는 점이 다행이기도 하고 또한 동시에 제로님에게 많은 과제를 안겨주고 있는 것 같다. 텍스트큐브와는 분명히 다른 방향의 툴로 나아가겠지만 함께 선의의 경쟁을 할 수 있는 환경이 형성되었으면 좋겠다. (제로님한테 농담으로 '염탐하러 왔다'고 하니 얼마든지 좋은 부분은 가져가도 된다고 하시던 모습이 생각난다.)
마지막으로, 앞으로 비슷한 행사를 다시 연다면 이런 점이 개선되었으면 좋겠다.
이 글은 아침놀님의 2008년 7월 26일의 미투데이 내용입니다.
이 글은 아침놀님의 2008년 7월 25일의 미투데이 내용입니다.
이 글은 아침놀님의 2008년 7월 23일의 미투데이 내용입니다.
이 글은 아침놀님의 2008년 7월 21일의 미투데이 내용입니다.
이 글은 아침놀님의 2008년 7월 20일의 미투데이 내용입니다.
이 글은 아침놀님의 2008년 7월 19일의 미투데이 내용입니다.
이 글은 아침놀님의 2008년 7월 18일의 미투데이 내용입니다.
※ 들어가기에 앞서, 구체적으로 어떤 문제가 나왔는지 등에 대한 정보는 공유하지 않습니다. 아래 있는 내용은 이런 면접 준비하는 분들에게는 어느 정도 일반적으로 알려져 있는 내용 위주로 작성하였습니다. 괜히 잘못했다가 NDA 조항에 걸리면...(먼산)
스웨덴에 있을 때 지원서를 보낸 것이 5월 말, 연락을 받은 것은 6월 중순, 그리고 최종 면접 날짜는 오늘이었다. 구글과 마이크로소프트, 아마존 등 유수 IT 기업들의 면접은 소위 '기술 면접'이라는 형태로 진행되는데, 간단(?)한 알고리즘 문제를 주고 그 풀어가는 과정, 코딩하는 과정을 살펴보는 것이 주요 내용이다.
구글이 다른 회사보다 면접에 나오는 문제 난이도가 어렵다는 얘기도 들었고 해서 꽤 긴장하고 있었는데, 결론부터 말하자면 '기초를 충실히 하면 어렵지 않게 할 수 있다' 정도가 되겠다.;; 비록 경시대회 출전도 거의 안 해봤고 이런 종류의 알고리즘 문제를 푸는 게 익숙하지는 않았지만, 카이스트에서 Problem Solving 수업을 들었던 것이 큰 도움이 되었다.1 위에서 말한 기초라 함은 학부생 레벨이라면 data structure만 확실하게 잡아도 반은 먹고 들어갈 것이다.
면접은 총 2시간 동안 진행되었고, 두 개의 다른 팀에서 한 명씩 나와 1시간씩 일대일로 면접이 이루어졌다. 꼭 정해진 틀이 있는지는 모르겠지만, 처음에는 비교적 가벼운 이야기(이력서에 있는 내용 물어본다거나)로 분위기를 부드럽게 하고, 2개 정도의 알고리즘 문제를 푼 다음 구글에 대해 알고싶은 것 아무거나 질의응답하는 식이었다. 두 면접관 모두 첫 문제는 비교적 쉬웠고 두번째 문제는 비교적 어려웠다.
일단 첫번째 요구사항을 해결하면 점점 더 어려운 요구사항이 붙는데, 첫번째 문제들의 경우 모두 어느 정도 수준까지 레벨(?)을 올릴 수 있었으나, 두번째 문제들의 경우 다 완성하지는 못했다. 특히 첫번째 면접관이 냈던 두번째 문제의 경우, 기초적인 정의를 하나 빠뜨리는 바람에 그 정의를 찾느라 꽤나 오랫동안 삽질을 해서 시간 내에 다 풀지 못했다. (1차 끝나고 쉬는 시간에 '이렇게 하면 될 것 같은데...'까지는 답을 찾았지만 이미 지나간 버스...-_-) 두번째 면접관의 두번째 문제는 쉽게 할 수 있는 걸 너무 어렵게 빙빙 둘러가는 바람에 시간이 조금 걸렸지만 기본 접근 방법이 맞았기 때문에 힌트를 받고 잘 일반화해서 구체적으로 알고리즘을 설명까지 하고 끝낼 수 있었다. (원래는 프로그래밍 언어로 직접 구현까지 해야 하는 것인데, 음, 제한된 면접시간 내에 완벽하게 구현하기는 쉽지 않은 문제였던 것 같다.)
이런 면접을 봤던 분들이 항상 얘기하듯 중간에 조금씩 막히는 부분이 있더라도 지금 무슨 생각을 하고 있는지 계속 말하면서 대화를 이어나가는 게 중요한 것 같다. 설령 그렇게 튀어나온 아이디어가 틀렸다고 할 지라도 그게 어떻게 해서 문제가 되는 것 같다라든가 하는 것들을 잘 설명하다보면 시간이 금방 간다(?). -_-; 그리고 자기가 남한테 뭔가 설명해주는 것에 자신이 없는 사람이라면 친구랑 같이 연습해보는 것도 도움이 될 것 같다. 충분히 문맥적으로 알아들을 것 같더라도 면접관들이 항상 확실한 설명을 요구하기 때문이다.
어쨌든 개인적으로 느끼는 만족도는 70~80% 수준. 물론 면접관들이 어떻게 느꼈을지는 모르겠지만. 얼른 결과가 나왔으면 좋겠다;;
수업이 굉장히 특이하게 진행되는데, 숙제로 내준 알고리즘 문제들을 수업 시간에 돌아가면서 자기가 어떻게 풀었는지 설명하는 식이다. 오답이든 정답이든 모두 말로 풀어서, 칠판을 이용해서 교수님과 다른 학생들이 알아듣도록 설명해야 하므로 이러한 면접을 준비하는 데 굉장히 도움이 된다. ↩