Blog

Blog

2013년 8월의 개발일지

오늘도 어김없이 일어나 출근을 한다. 출근길에 나는 파스쿠찌[1]에서 카페라떼를 산다. 회사 근처 파스쿠찌에서는 출근 시간 테이크 아웃에 한해서 30% 할인을 해줘서 부담이 덜하다. 나는 출근 시간 15분 전에는 회사에 들어가 자리에 앉아 컴퓨터를 켠다. 오늘 따라 부팅이 느린 것이 느껴진다. 아마 어제 컴퓨터 종료할 때 실행되던 윈도우 업데이트 때문인 것 같다. 갑자기 짜증이 난다. 윈도우는 사용자 배려가 부족하다고 생각한다. 업데이트 때문에 이토록 오랜 시간 부팅 하는 OS가 또 어디 있는가? 하지만 하루를 시작하는 아침인 탓에 조금 너그럽게 생각하기로 하고 기다린다. 컴퓨터가 드디어 켜졌다.

컴퓨터를 켜자마자 구글의 크롬 브라우저(Chrome Browser)[2]를 켠다. 크롬 브라우저는 나도 모르는 사이에 자동으로 집에서 사용하는 랩톱과 내 스마트폰의 정보를 동기화하기 시작한다. 나는 익숙한 듯이 회사 출근부 페이지 주소(Uniform resource identifier, URI)[3]를 입력하고 빠르게 출근 체크를 마친다. 출근 체크 시 이상하게 제대로 체크 되었는지 한 번 더 체크하는 버릇이 있다. 강박증[4] 같기도 하지만 아마 예전에 있었던 출근부 버그 때문일 것이다. 나중에 시간이 되면 크롬 확장(Chrome extension)[5]으로 한 번에 안전하게 출근 체크하는 스크립트를 만들 것을 아주 잠깐 계획해본다.

이제 나는 구글(Google)에 로그인을 시도한다. 구글 로그인 시 2단계(2-step verification)[6] 보안 기능을 사용하고 있다. 그렇기 때문에 아이디, 비밀번호 이외에 원 타임 비밀번호를 추가로 입력해야 한다. 나는 이런 시스템이 해킹의 공포에서 자유롭게 해준다고 믿고 있다. 로그인 후 지메일(Gmail)[7]에 접속한다. 지메일은 거의 하루 종일 접속된 상태로 둔다. 얼마 전에 회사 메일 시스템을 사내 인프라 장비에서 마이크로소프트(Microsoft, 이하 MS)[8]의 office365[9]로 바꾸었다. 나는 이제 회사 메일을 지메일에서 POP3(Post Office Protocol version 3)[10]를 이용해 확인하는 것이 가능해졌다. 만세! 나는 개인적으로 지메일 인터페이스가 맘에 든다. 이렇게 훌륭한 제품을 만드는 구글은 아마 자사 직원들이 이 제품의 가장 충성도 높은 고객이 아닐까 라는 생각을 잠시 해본다. 반면에 MS office365는 사용자의 배려가 너무 부족하다. 아마 MS 직원들도 운영체제 말고는 자기들의 제품을 쓰지 않을 것이다. 그 이유 중의 하나로 이 서비스는 MS의 브라우저에서 조차 제대로 동작하지 않는다. 나는 이제 지메일로 새로 들어온 메일이 있는지 확인한다. 필요한 경우 즉시 회신 메일을 발송한다.

이게 본격적인 업무 시간이다. 사실 나는 개발할 때 운영체제의 많은 기능을 사용하지 않는다. 단지 자바(Java)[11] 컴파일러(Javac, Java programming language compiler)[12]와 단순한 에디터(Editor) 그리고 웹 브라우저(Web Browser) 정도가 전부이다. 생각보다 많이 사용하는 것 같은가? 운영체제가 제공하는 기능에 비하면 절대 많지 않다. 그래서 나는 업무 환경에서 윈도우를 사용하지 않아도 된다고 생각한 적이 여러 번 있었다. 하지만 회사 사내 시스템 등 다른 여러 가지 환경들 때문에 아직은 포기다. 하지만 언젠가 얇고 가벼운 크롬북(Chromebooks)[13] 같은 랩톱에서 아마존 EC2(Amazon Elastic Compute Cloud)[14] 같은 클라우드 개발 환경에 접속하여 일 할 수 있는 날도 얼마 남지 않았다. 이제 정말 업무를 할 시간이다.

나는 요즘 자바 환경에서 개발하고 있기 때문에 가장 먼저 STS(Spring Tool Suite)[15]를 실행한다. 그리고 톰켓(Tomcat)[16]을 실행한다. 오늘은 Front-end 스크립트를 작성할 것이다. 오픈소스 코드 에디터인 Brackets(Adobe Brackets)[17]을 실행시킨다. 요즘 나는 자바스크립트(Javascript)[18]를 사용하는 일이 많은데 Brackets은 정말 훌륭한 툴이다. 특히 이 툴은 CEF(The Chromium Embedded Framework)[19]를 기반으로 만들어졌다. CEF 덕분에 요즘 자바스크립트로 못 만들 어플리케이션이 없어졌다. 여기에 node.js[20] 까지 더하면 정말 최고다. 내가 지금 개발하고 있는 어플리케이션도 다음 버전으로 CEF를 포함시켜 볼지를 건의해봐야겠다. 하지만 빈약한 내 커뮤니케이션 능력 때문에 안될 수도 있겠다.

오늘 나는 어제 마무리 못 한 XHR(XMLHttpRequest)[21] 관련 버그를 잡고 코드 구조를 개선하기로 계획을 세운다. 웹 애플리케이션은 XHR 덕분에 정말 많은 변화가 생겼다. 앞으로 추가로 HTML5[22]가 더 확산되면 웹 애플리케이션은 정말 화려해질 것이고 수많은 작업을 할 것이다. 지금 내가 개발하는 제품도 이러한 기능을 최대한 활용해서 지금까지의 제품들보다 멋지게(Cool) 보이게 하고 싶다. 나는 마지막 출시까지 완성도를 더 높이기 위해서 더 노력해야 하겠다고 다짐한다. 나는 계속 버그(Bugs)를 잡고 기능을 개선해 나간다.

주위에서 잡소음이 난다. 나는 특히 업무 시간에 산만해지지 않으려고 노력하는데 잘 안된다. 이전에 산만함에 대해서 글을 쓴 적도 있었다[23]. 코드에 집중하고 있을 때 나는 최대한 것 때문에 방해받지 않으려고 한다. 하지만 오늘은 실패다. 특히 나는 짜증 내는 듯한 소리와 싸우는 소리에는 쉽게 집중력이 흐트러진다. 그리고 이런 소리는 나를 몇 배나 힘들게 한다. 그래서 나는 이제 음악을 듣기 시작한다. 하지만 음악에 집중하려고 하지는 않고 코드에 계속 집중하기를 원하고 있다.

일하다 보니 어느새 퇴근 시간이다. 역시 집중하고 있으면 시간이 빨리 간다. 간식을 먹고 한두 시간 더 업무를 할 까 생각하다가 이내 그만 둔다. 왜냐면 이 시간 이후에는 집중하기가 쉽지 않다. 오히려 모두 퇴근하고 난 후 밤늦은 시간이 집중하기에는 더 좋다. 나는 브라우저의 내 사용 기록을 모두 지운다. 내 기록이 남아있는 것이 싫어서인데 이것도 강박증과 비슷한 증상인지도 모르겠다. 이제 퇴근한다.


References

[1] (2007). Caffe-Pascucci. Retrieved August 22, 2013, from http://www.caffe-pascucci.co.kr/.
[2] (2012). Chrome 브라우저 - Google. Retrieved August 22, 2013, from http://www.google.com/intl/ko/chrome/.
[3] (2005). Uniform resource identifier - Wikipedia, the free encyclopedia. Retrieved August 23, 2013, from http://en.wikipedia.org/wiki/Uniform_resource_identifier.
[4] (2004). 강박 장애 - 위키백과, 우리 모두의 백과사전. Retrieved August 22, 2013, from http://ko.wikipedia.org/wiki/%EA%B0%95%EB%B0%95_%EC%9E%A5%EC%95%A0.
[5] (2011). 크롬 확장 프로그램 - Chrome - Google. Retrieved August 22, 2013, from https://chrome.google.com/webstore/category/extensions?hl=ko.
[6] (2013). 2단계 인증으로 로그인하는 방법 - Google 계정 도움말. Retrieved August 22, 2013, from https://support.google.com/accounts/answer/1085463?hl=ko.
[7] (2006). Gmail: Google 이메일. Retrieved August 22, 2013, from http://mail.google.com/?hl=ko.
[8] Microsoft 한국 | 장치 및 서비스. Retrieved August 23, 2013, from http://www.microsoft.com/korea/.
[9] (2013). What is Office 365 for business? - Office.com. Retrieved August 23, 2013, from http://office.microsoft.com/en-us/business/what-is-office-365-for-business-FX102997580.aspx.
[10] (2004). Post Office Protocol - Wikipedia, the free encyclopedia. Retrieved August 22, 2013, from http://en.wikipedia.org/wiki/Post_Office_Protocol.
[11] (2003). java.com: Java와 사용자. Retrieved August 22, 2013, from http://www.java.com/ko/.
[12] (2010). javac - Oracle Software Downloads. Retrieved August 22, 2013, from http://download.oracle.com/javase/6/docs/technotes/tools/solaris/javac.html.
[13] (2012). 새로운 크롬북 소개 - Google. Retrieved August 22, 2013, from http://www.google.com/intl/ko/chrome/devices/.
[14] (2006). Amazon EC2 - Amazon Web Services. Retrieved August 22, 2013, from http://aws.amazon.com/ec2/.
[15] (2012). Spring Tool Suite | SpringSource.org. Retrieved August 23, 2013, from http://www.springsource.org/sts.
[16] (2005). Apache Tomcat - Welcome!. Retrieved August 23, 2013, from http://tomcat.apache.org/.
[17] (2012). Brackets. Retrieved August 23, 2013, from http://brackets.io/.
[18] (2005). 자바스크립트 - 위키백과, 우리 모두의 백과사전. Retrieved August 23, 2013, from http://ko.wikipedia.org/wiki/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8.
[19] (2008). chromiumembedded - A simple framework for embedding chromium ... Retrieved August 23, 2013, from http://code.google.com/p/chromiumembedded/.
[20] (2009). node.js. Retrieved August 23, 2013, from http://nodejs.org/.
[21] (2005). XHR - Wikipedia. Retrieved August 23, 2013, from http://en.wikipedia.org/wiki/XMLHttpRequest.
[22] (2006). HTML5 - Wikipedia, the free encyclopedia. Retrieved August 23, 2013, from http://en.wikipedia.org/wiki/HTML5.
[23] (2013). 라떼군 이야기 (Mr.Latte Story): 스마트폰과 눈먼 자들의 도시. Retrieved August 23, 2013, from http://www.mrlatte.net/2013/08/blog-post.html.