근황, 그리고 제너럴 개발.

12020030_1161545260526445_6522039088074004816_n

(사진: 집에서 촬영한 Mt. Hamilton, North San Jose 부근이다.)

이제 막 미국에 온지도 두달이 다 되어간다. 학교 생활은 안정이 되어 가고 있고, 미국에서 스타트업 비스무리한 것을 시작하기 위해 사무실을 구하러 다녔는데, 운 좋게 전세계 3천개의 사무실을 가지고 있는 Regus그룹의 사무실이 그나마 저렴하게 나와서, 써니베일 쪽으로 계약하기로 결심했다. 8평 남짓한 공간인데, 옆 사무실에는 블리자드도 있고, 콜옵 개발사도 있단다. 콜옵은 특히, 매우 성공을 해서 이제 건물을 구해서 곧 나간다고 한다. 나도 저런 날이 있을까,, 어쨌든, 리거스의 장점은 전세계 어느 체인이건 방문하여 1인용 혹은 비즈니스 라운지를 무료로(!) 이용할 수 있다. 정착한듯, 정착하지 않은 듯한 디지털 노마드를 꿈꾸는 내겐 꽤나 매력적인 것 같다.

 IMG_7790-2 IMG_7784

(사진: Sunnyvale부근의 Regus 사무실. 소규모 사무실이 빽빽히 들어서있다.)

미국에 와서 인도 친구들에는 꽤나 많이 적응이 되었다. 생각보다 그들은 천재는 아니다. 말은 솔직히 뭔가 있어보이게 영어로(물론 그들의 말투로) 꽤나 그럴듯하게 말하면서도 실상은 조금 그 깊이가 부족했다. 한번은 학교 네트워크 프로그래밍 과목에서 fork()와 p_thread()를 사용하여 컨커런트 서버를 그자리에서 한시간동안 코딩하는데, 오픈 브라우저 이기 때문에 래퍼런스를 참조할 수 있어서 나 역시 티스토리 등의 국내의 많은 자료로 이리저리 끼워맞춰서 제출했다. 그런데 인도친구들 역시 비슷하게 하더라. 다만 그들은, "영문" 자료를 찾을 뿐이지.

그렇다. 결국 영어인 것 같다. 어느정도 자신이 생각하는 바를 전달할 수 있으면, 거기서 자신감이 나오는 것 같다. 내가 출신이 무엇이건, 그건 중요하지 않다. 공부란 자체는 만국 공용이다. 다만 트랜드를 더 빨리 알고, 공부도 방향이 정확히 잡히는 것이지. 하물며, 난 실리콘벨리에 와서야 SDN이라는 게 그렇게 인기인 것을 알았는데, 한국에서는 관련 사업을 하는 경우를 찾아보기 힘들었다. 물론 내가 관심이 없어서 그랬겠지만.

3-tier-compact

참고로 SDN에 대해 간단히 말하자면, 네트워크나 라우터, 스위치 등의 계층에 대한 추상화를 소프트웨어 단계로 끌어올리는 것이다. 이말은 즉, 우리가 물리적으로 혹은 리눅스의 그 네트워크/방화벽 혹은 DNS등의 정책등으로 변경해야 하던 네트워크의 구상에 대해, 이를 API혹은 소프트웨어를 통해 제공함으로써 보다 더 스마트하게 QoS등을 구현하거나, 핑을 줄이는 것을 말한다. 엊그제는 학교에 VeloCloud라는 곳의 CTO가 와서 강의를 할 정도로 이곳에서는 SDN에 대한 인기가 많다.

IMG_7803 IMG_7824 IMG_7829

(사진: IBM인터뷰. 서서 본다.(좌)  학교 취업박람회 모습. 우리과만 참여하는데도 저렇게 많고, 80%는 인도사람이다.(중) 학교에서 열린 구글 테크니컬 세션. 크게 도움될 것은 없다. 단지 굿럭일 뿐..(우))

최근 학교 취업박람회가 있어 우연찮게 IBM과 인터뷰를 하고, 구글의 테크니컬 세션에 참석하는 기회를 얻었다. 솔직히 스스로 영어가 아주 떨어진다 생각하지는 않지만, 막상 주변에서 특히 네이티브의 그 발음을 들을 때마다 스스로 주눅드는 경우는 있다. 때문에 질문할 자신감을 잃고는 조용하게 넘어가는 경우가 허다하다. 극복할 수 있을까 라는 생각보다, 하지 않으면 내가 손해이니깐 지속적으로 내가 고쳐나가야 할 부분일 것 같다. 알면서 언어를 몰라 말하지 못하는 것 만큼 억울한 경우가 있을까.. 때문에 요즘엔 정말 매일같이 EBS의 귀가트이는 영어, 입이 트이는 영어, 팟케스트의 일빵빵, 굿모닝 팝스 를 통학길이나 출퇴근길에 듣고 있다. 익숙해 지면 조금 더 심도있는 영어 공부를 좀 하고 싶은 생각도 든다. 회화에 대한 그 다양한 억양의 귀가 뚫리는, 그런 경험을 하고 싶다.

지난 글에서도 밝혔듯이, 요즘 케빈님 강의를 듣고는 자바8의 함수형 프로그래밍에 살짝 빠졌다. 때문에 대세인 함수형 프로그래밍에 대해 보다 더 관심있게 지켜볼 수 있게 되었는데, 뭐랄까 약간의 새로운 패러다임의 제시라고 생각되는 이 함수형 프로그래밍을 익혀둔다면, 마치 C를 공부하면 자바나 C++, C#을 금방 공부할 수 있는 것처럼, 약간의 형식은 달라도 최근 나온 언어들인 Go, Swift, 그리고 일전에 배우고 싶던 스칼라까지 함께 익힐 수 있어서 더없이 좋은 것 같다.

개발을 하면 할수록, 제너럴 한 생각이 많이 든다. 코드 자체에 하드코딩을 두고 싶지 않은 생각이다. 한 예로 최근 동적 메뉴로딩을 구현했는데, 이를 AngularJS에서 동적으로 또한 StateProvider에 추가하고 싶은 욕심이 났다. 괜시리 때문에 엄청나게 삽질을 하다가 지금도 이번 스프린트가 2일이나 지연된 상황이지만.. 자꾸만 "재사용성"이나 loose coupling에만 신경을 쓰고 작업을 하다보니, 솔직히 코드 자체는 매우 간결해 지는데 아직 익숙치 않아서, 혹은 내가 너무 욕심이 많아서 진도는 당연히 더딘 편이다.

그래도 이렇게 하는 편이 맞는 것일까, 프로그래머라면 추구해야 할 방향성이라고는 생각이 들지만 그 만큼 나는 아직 배가 부른 것은 아닐까 라는 생각을 잠시 해본다.. 세상에 완벽함이란 존재하지 않고, 완벽한 코드란 존재하지 않다. 사람도 완벽한 사람은 존재하지 않다. 다만, 얼마나 빨리 상황을 이해하고 고쳐나가느냐는 것이 더 중요할 것이다.

요즘엔 책을 많이 읽는다. 특히나 권도균의 경영 수업이라는 책을 읽고 있는데, 이 책에서 그러더라. 개발자가 창업을 하는 경우에는 너무 품질에만 중시하고, 자신을 너무 믿는 자신감 때문에 망칠 수 있다고. 지금까지 5년간 사업구상만 해왔는데, 나는 가끔 걱정한다. 그것이 내간 되려, 그저 하나의 현실 돌파구로 생각하고 해나가는 그런 단순한 생각이 아니었을까. 참으로, 자기 성찰과 반성의 시간을 겪는다. 그리고, 보다 더 겸손해지는, 그런 요즘인 것 같다.