2009/10/28 11:05

무리한 통합의 역효과, 서비스간 의존성

얼마 전, 싸이월드가 점검에 들어갔습니다. 써보신 분들은 아시겠지만, 싸이월드는 점검 시간이 잦고 긴 편입니다. 그래도 미니홈피 정도는 안 봐도 괜찮았습니다. 정작 문제는 네이트온이라는 메신저에 나타났습니다. 싸이월드가 점검중인데 네이트온 메신저의 쪽지함을 못 열어보는 이상한 일이 생겼습니다. 대화, 메일 등도 당연히 사용이 불가했습니다. 반면, 네이트온과 네이트 홈페이지 자체는 분명히 접근할 수 있었습니다.

이유는 이렇습니다. 얼마 전 네이트 홈페이지에 싸이월드와 네이트온의 기능을 대거 통합시켰습니다. 그러면서 네이트온의 쪽지함 기능이 네이트 홈페이지로 이전됐습니다. 쪽지함을 어느 컴퓨터에서나 통합해서 볼 수 있다는 점은 확실히 좋았습니다. 그러나 이 쪽지 기능이 내부적으로는 네이트 홈페이지가 아니라 싸이월드 기능과 의존성이 생겼나봅니다. 그 밖에도 대화함, 메일 확인까지 안되니 정말 답답할 따름이었습니다.


이는 네이트에서만 생길 수 있는 문제가 아닙니다. 어떤 서비스든지 간에 서로 의존 관계가 생긴다면 당연히 생길 수 있는 문제입니다. SK의 T스토어나 앱스토어의 서비스에 전적으로 자신의 중요한 정보를 맡길 수 있을까요? 중요한 순간에 서비스가 점검에 들어간다면 어떻게 하죠? 중앙 서버에서 자료를 통째로 잃어버린다면? 구식 단말기라면 남아있을 중요한 자료들이 한 순간에 날아버리는 일도 있지 않을까요?

이건 허무맹랑한 이야기가 아닙니다. 이미 마이크로소프트와 티모바일이라는 회사가 함께 만든 '사이드킥'이라는 핸드폰의 모든 정보가 초기화되어버리는 황당한 사고가 있었습니다. 사용자들은 특정 시간대까지 전원을 끄지 말라거나 하는 이상한 지시를 받았고, 그런 걸 알지 못한 채로 잃어버리는 사람이 수 천명에 달했습니다. 잃어버린 자료는 다시 되찾기가 불가능했고, 보상의 차원에서 10만원대의 티모바일 상품권을 보내는 것으로 마무리 지었습니다. (그렇게 자료를 잃은 사람이 티모바일 서비스를 다시 쓰고 싶기나 할까만은)

오픈마루 스튜디오에서도 "마이 아이디"라는 오픈 아이디 서비스를 제공하고 있습니다. 여러 사이트에 단 하나의 계정만으로 가입, 탈퇴가 가능한 서비스입니다. 그런데 이 마이 아이디가 잠시 접속이 되지 않은 일이 있었습니다. 마이 아이디 사용자들은 다른 모든 멀쩡한 서비스를 두고도 접속하지 못하는 황당한 일이 생겼죠. 그 오류는 오래 가지는 않았습니다만, 사용자와 각 서비스 운영자들에게 충격을 심어주기에는 충분했습니다. 오픈 아이디 서비스 공급이 중단되더라도 우회하는 길이 필요하다는 겁니다. 그것은 보안상 문제가 될 수가 있기에, 결국은 옛날처럼 사이트 자체에 계정 정보를 저장해야 한다는 말이 됩니다.

오픈 API라는 말, 한 번 쯤은 들어보셨을 겁니다. 앞으로 소프트웨어 서비스를 공개해서 누구나 쉽게 쓸 수 있겠다고 하는 겁니다. 그래서 새로운 소프트웨어가 이전 소프트웨어 서비스를 참고하게 되죠. 거꾸로 말하자면 오픈 API를 쓰면 외부 의존성이 아주 커집니다. 공급자가 버전 변경에 따라 동작을 변경하거나, 서비스를 잠시 중단하는 일은 종종 있습니다. 그러면 그 서비스에 의존하는 다른 프로그램에게까지 영향이 미치게 됩니다. 외부적 요인으로 소프트웨어를 믿을 수 없어진다는 말입니다.


이러한 부작용을 최소화하기 위해서는, 서비스간의 의존성을 잘 분리해야합니다. 하나의 서비스가 중단되는 일은 잦은데, 이로 인해서 다른 서비스들까지 연이어 중단된다면 또 다른 서비스가 중단될 겁니다. 이런 식으로 서비스 중단의 도미노 현상이 일어나지 않도록 의존성을 고려하여 잘 설계해야 합니다. 그리고 최대한 믿을 수 있고, 자신의 통제 하에 있는 서비스들을 쓰도록 노력해야 합니다. 자주 고장이 나는 일에 다른 사람이 고쳐주기만을 목이 빠져라 기다리는 것 만큼 바보짓은 없기 때문입니다.

2009/10/27 23:31

N모사 면접 2

요즈음 게임 회사 면접을 다니고 있습니다. 이 블로그에 적어왔던 내용과는 사실 많이 다른 방향이긴 합니다;


오늘 다녀온 면접에서는 특이하게 면접관님이 네 분이나 오셨습니다. 지원자는 저 한 명만 들어갔고요. 무려 한 시간 동안이나 심층적으로 면접을 보았습니다. 뭔가 심하게 압박감을 느낄만한 상황이긴 했는데, 꼭 그렇지는 않았습니다. 전반적으로는 부드럽게 질문과 답변을 주고 받았습니다.

그 중에서 치명적인 지적들을 몇 개 짚어봐야겠습니다. 게임회사에 지원을 하면서 게임 제작에 일반적으로 쓰이는 도구 (Direct X, Visual C++) 등을 많이 써 보지 않은 것은 분명한 감점요인이었습니다. 영어 시험을 보지 않고, 학점이 3점이 조금 안되는 점도 지적하셨습니다. 반면에 면접관님들께서 관심을 가장 많이 보이신 부분은 역시 아이폰 게임 개발 경험이었습니다. 특히 입체 화면 구성 기능인 OpenGL ES를 활용해서 만들었던 부분에서 많은 점수를 얻은 듯 합니다.


면접을 보면서 느낀 건데, 제가 생각보다 많이 긴장하지 않았습니다. 면접관님들께서 주로 제가 평소에 생각해오던 화두에 대해서 질문을 던지기에 편안하게 대답할 수 있었습니다. 제가 지금까지 해왔던 길, 그리고 그 까닭과 평가에 대한 질문들이 오갔습니다. 그리고 기술적인 사항에 대해 어느 정도 이해하고 있는지 테스트 하는 질문도 반가웠습니다. 물론 완벽하게 대답하지는 못했지만, 성심성의껏 대답했습니다.

면접을 잘 보는 요령은, 첫째로 자기 학과에서 배운 내용만 잘 이해해도 크게 도움이 될 것 같습니다. 아무래도 신입 채용에 지원을 해서 그렇겠지요. 그리고 면접이라는 상황에 당황해서 쫄지 않고, 예의만 제대로 갖춘다면야 웬만하면 분위기가 좋게 흘러갈 것 같습니다. 그 다음에 붙고 떨어지는 여부는 자신의 평소에 닦아 온 실력과 운에 달리지 않았나 싶습니다.


이번에 본 두 회사의 면접에 별 후회는 없습니다. 제가 보여줄 수 있는 모습을 자연스럽게 보여줬기 때문입니다. 그래서 마음 편히 먹고 결과를 기다려볼까 합니다.

2009/10/20 18:20

대전 중간고사와 서울 면접 ㅠㅜ

지난 번에 대전에서 쪽지 시험과 서울에서 회사 역량 검사가 겹칠 뻔한 날이 있었다. 그 날은 오늘을 위한 전주곡에 불과했다. 오늘은 대전의 중간고사와 서울에서의 면접이 겹쳤다. -ㅅ- 두둥. 정말 어느 것 하나 포기할 수 없는 상황. 덕분에 어제 저녁에 도시락을 두 개 사가지고 왔다. 저녁에 하나 먹고, 아침에 하나 먹은 다음에 출발해서 서울에서 면접을 보고, 분당까지 택시탄 다음에 대전까지 자가용을 얻어타고 도착해서 곧바로 시험을 볼 계획이었다.

아침 7시까지 열나게 공부하다가 출발~ 했다. 시간이 모자라서 도시락은 못 먹었고, 샌드위치와 주먹밥을 사서 버스에서 와구와구 먹었다. 먹고 나니 밤을 샌지라 졸음이 쏟아져 한 숨 잤다. 도착하고 지하철을 탄 다음에 택시를 타고 고고씽... 결국 꽤 늦어버렸다. ㅠㅜ

어떻게든 면접장에 달려왔다. 바로 1:1로 면접관님이 질문을 하시는데, 나는 대답을 하려다 헉헉거리며 말을 못 이었다. 우선 양해를 구하고 주스를 벌컥벌컥 마시고 숨을 좀 돌렸다. 질문이 나오면 바로 답을 해버리고, 크게 고민할 것 없이 주거니 받거니 하다보니 면접이 끝나버렸다. 정말 이런 면접 처음이라서 내가 어떤 수준으로 대답했는지 질문하자, 일반 수준에서는 잘 하는 편이라고 했다. 으헤헤.

분당까지 택시를 타고 가니 만 오천원이 나왔다 ㅠㅜ 우엥 비싸라. 그리고 덕중이형 차를 얻어타고 대전으로 날아가면서 시험 공부를 다시 시작했다. 겨우 1시간 30분만에 분당에서 KAIST까지 주파했다. @_@ 정말 차가 뒤집어질 속도로 달렸다 ㅋㅋ

1시에 시작하는 시험에 30분 가량 늦게 도착했다. 그래도 3시간짜리 시험이라서 볼만은 했다. 교수님께는 면접 확인서를 제출해서 양해를 구했다. 그리고 못다 먹은 샌드위치와 콜라를 꺼내 시험시간에 꾸역꾸역 먹으면서 문제를 풀었다. 그리곤 안드로메다를 구경하고 왔다. ㅎㅎㅎ 지금은 그 시험을 마치고 돌아와 남은 도시락을 꺼내 먹고 쉬는 중이다. 좀 있다가 또 공부를 시작해야지. ㅠㅜ

2009/10/20 02:25

오묘한 계산 언어학의 세계

자꾸 제가 전산학을 하는지, 천체물리학을 하는지 헷갈립니다. 교수님께서 자꾸 안드로메다 관광을 시켜주셔서 말이지요. @_@ 저도 처음에는 무슨 과목인지도 모르고 들어서, 이 분야에 대한 설명이 꼭 필요할 것 같아 이렇게 정리해 봅니다.

계산 언어학의 간단한 예를 들어보자면, "철수가 영희를 좋아한다." -> "좋아한다(철수가, 영희를)" 과 같은 방식으로 서술 관계를 명확히 드러냅니다. 이걸 가지고 "like(Chul-soo, Young-hee)"로 번역한 다음에 "Chul-soo likes Young-hee." 와 같은 영어 문장으로 번역할 수도 있지요. 번역 및 의미 추출 등의 고급 정보처리 분야에 초석으로 쓰이는 아주 중요한 기술입니다.

제가 듣는 카이스트 대학원 수업에서는 Prolog라는 언어를 범용 엔진으로 사용해서 구문을 분석하고 중의성을 제거하는 등의 방법을 배웁니다. 이것만 해도 정말 어렵고 복잡한데, 성능과 기능상의 문제로 상용 엔진은 Prolog를 쓰지 않는다고 합니다.

그럼 중간고사 공부를 마저 하러 가보겠습니다. ㅠㅜ

1 2 3 4 5 6 7 8 9 10 다음