레이블이 일상인 게시물을 표시합니다. 모든 게시물 표시
레이블이 일상인 게시물을 표시합니다. 모든 게시물 표시

2016년 8월 31일 수요일

내 삶의 모든 것이 느려진다

사람은 나이를 먹어갈 수록 시간이 더 빨리 흐른다고 느낀다고들 한다. 그러한 느낌은 나 역시 그러한데, 이는 거꾸로 내 삶의 모든 것이 점점 더디게 진행되기에 그렇게 느끼는 것 같다.

언제부터인가 프로젝트가 하나씩 끝날 때마다 나는 완전히 다른 사람이 되어있곤 한다. 그리고 원래의 내 모습을 되찾기까지 꽤 오랜 시간이 걸린다. 본래 추구하고자 했던 많은 것들의 기억을 되살리는데까지 꽤 오랜 시간이 걸리기 때문이다. 프로젝트에서 내가 취해야 했던 많은 선택들은 (결국 그것들 또한 나의 일부임에도) 내가 내가 아닌 것만 같은 느낌을 들게 한다. 그리고 그런 선택들이 쌓여갈 수록 프로젝트의 막바지에는 나도 모르게 자신을 어딘가로 밀어부치고 있는 모습을 발견한다.

건강한 신체에는 건강한 정신이 깃든다고 한다. '건강한' 이란 정의에는 여러가지 이견이 있을 수 있겠지만 집중력이라는 것만 놓고보면 건강한 신체는 확실히 도움이 된다. 내가 내 모습을 잃어버리곤 하는 가장 큰 원인은 피폐해져버린 신체와 무관하지 않은 것 같다. 급박한 프로젝트 내에서 생존의 방어기제가 자동으로 작동하는 탓? 이라고 하면 정확할 것 같다.

하고 싶은 것들과, 해야만 하는 것들 사이에서 균형을 잡는 것도 중요하지만 이 역시 건강함과 무관하지 않은 것 같다. '하고 싶은 것'들을 '하고 싶지만 못하고 있는 것'이라고 살짝 틀어서 생각해보면 결국 해야만 하는 것들이 남는데 균형을 찾는다는게 결국 이 해야만 하는 것을 얼마나 제대로, 많이 할 수 있는가를 조정하는데 있기 때문이다.

생각보다 급히 늙어가는 신체를 보며 약간은 조바심을 느낀다. 모든 것에는 때가 있고, 주어진 시간은 정해져있는데 시간이 가지는 가치의 인플레이션은 좋지 않다. 매우.

좀 더 건강해져야될 시간이다. 건강에 대해 주저말고 투자해야될 때이다.

2012년 6월 27일 수요일

커피로 지구정복!


부천 역곡북부역 앞 사거리에서 역을 등지고 조금 올라가다보면 우측 길모퉁이에 "커피로 지구정복" 이라는 정말 작은 테이크아웃 찻집이 있다. 사실 거기에 커피숍? (찻집이란 표현이 맞겠네.)이 있는 줄은 처음 알았는데, 후덥지근한 날씨에 그렇게 조그만 점포에 좀 지쳐보이는 청년이 말쑥히 차려입고 앉아있는 모습이 그 장소의 첫인상이라 할 수 있겠다.

지난 일요일, 첫째를 데리고 지나가다 저 장소를 발견하고는 아이스아메리카노 한잔을 주문했다. 점원인지 사장인지 모를 젊은이(아마도 사장이 아닐까?)는 주섬주섬 테이크아웃 컵에 얼음을 담고, 샷을 내리더니, 무쟈게 큰 생수통을 들고는 아이스아메리카노 한잔을 완성해주었다. 왠지 좀 웃기기도 하고, 안스럽기도 하고 (날도 후덥지근한데.. 저 좁은 공간에서 뜨거운 기계를 돌리고 있는게..) 장해보이기도 한다. (사진은 내가 쑥스러워 점원의 시선이 닿지 않는 사각에서 몰래 찍었다.)

집에 와서 마누라에게 새로운 장소에 대해 이야기해주니.. 이미 알고 있단다. 그러고는 회사동료들이 좀 이상한 사람이 하는 커피숍이라서 잘 안간다는 부연설명까지 해주었다. 화가 났다. 그저 더운 날씨에 성실히 커피숍을 운영했을 젊은이한테.. 이상한 사람이라니.. 열심히 일하는 사람한테 그런 말하면 못쓰는거라 핀잔을 주었다.

커피맛이야.. 인상적이지 못했지만 2000원이란 저렴한 가격에 시원한 아메리카노면 나쁘지 않은 것 같다. (게다가 손님에게 뽑기를 시켜서 이벤트도 해준다. 참고로 그 덕에 500원 깎아서 마실 수 있었다. ㅎㅎ) 첫인상에 너무 많은 것을 느낀 것일런지도 모르겠지만, 획일적이기만한 우리나라 커피숍들에 좀 신선한 느낌을 주는 가게였던 것 같다. 다음에가면.. 프라프치노도 한번 마셔봐야겠다. 도대체 어떻게 만들어주는걸까? 궁금하다.

2012년 6월 20일 수요일

'경험'은 모든 경우에서 반드시 논리가 될 수 있는 것은 아니다.

현재 진행중인 프로젝트에서 좀 이해하기 힘든 코딩표준이 나왔다. (현재 프로젝트에서는 Java(Spring)와 Flex(Swiz)로 개발을 진행 중이다.) 어떤 표준인고 하니, 모든 VO 클래스에서 기본생성자를 만들고, 모든 멤버를 리터럴이나, 혹은 문자열 등으로 초기화하라는 표준이었다. 예전에도 프로젝트 내에서 비슷한 이야기를 들었었고, 그 의견을 내었던 분이 프로젝트 내에서 꽤 큰 힘을 가지고 좌지우지 하시는 분이라서 정중히 메일로 내 의견을 밝혔던 기억이 있었다. 그리고, '표준'관점에서 어거지로 기본생성자를 만들어 코딩을 해왔다.

하지만, 개발기간 막바지에 와서 다시 그 이야기를 꺼낸 것이다. (이제 그 이야기를 꺼낸 분을 '그 분'이라 호칭하겠음) 오늘도 사실, 그 분과 그 이야기를 나와 직접 나눈 것은 아니고 일하다 바람결에 들려오는 어처구니가 없는 이야기에 점점 집중, 흥분을 한 나머지 끼어들고 말았다.

먼저 내가 알고 있는 지식으로는... 클래스 내의 멤버변수는 초기화 하지 않았을 경우에 분명히 기본값으로 셋팅된다. 물론 시점이 있는데, 그건 기본생성자(코드상에서 생략되어있는..)를 호출할 때이다. JVM이 인스턴스를 생성하는 절차에 대해서는 따로 설명할 기회가 된다면부연을 하겠지만, 중요한건 이딴 표준이 필요없다는데 있다. 아니, 필요없다기보다는 현 프로젝트에서 굉장히 쓸때없는 짓이며, 그런 주장을 하는 그 분의 논리가 지극히 개인적인 경험에서 나온, 말하자면 "내가 옛날에 초기화 안해서 엄청 고생한 적이 있었어. 디버그모드(그분이 말씀하시는 개발기간)에서야 스펙대로 돌아가겠지만, 런타임에서는 수동으로 초기화되지 않은 코드가 어떤 문제를 발생시킬지 모른다고!" 이런 논리인 것이다.

그 분은 인스턴스가 생성되고, 멤버가 초기화되는 절차를 아시는지 모르시는지.. 모르셨다면 알고나서 굉장히 놀라실 것이고, 혹여 알고 계신다면.. IT에 통달하셔서 "사람이 만든 JVM 따위.."라며 속으로 콧웃음치고 계실런지도 모르겠다.

여튼 마지막으로 그분의 논리를 좀 더 자세히 이야기하자면 그렇다. "설사 기본값으로 셋팅된다 하더라도 JVM은 믿을 수 없는 놈이므로, 경험상 어떤 오류를 야기할 수 없으니 기본값을 셋팅해서 완벽한 프로그램을 만들자."가 첫번째 논리이고, "개발자들이 인스턴스의 멤버에 접근할 때 마다 null 인지 아닌지를 체크하는 코드를 자꾸 집어넣는데 그럼 생산성의 저하가 일어나는게 아닌가!" 라는게 두번째 논리이다.

흥분상태라 좀 두서없긴 한데.. 내 반론은 이렇다. 첫번째로 "JVM에서 기본값 셋팅하는 절차나,개발자가 직접 생성자에 값을 셋팅해주는거나 절차상 차이가 없으므로, JVM을 못믿는거면 인정한다. 근데 그럴거면 Java 따위 뭣하러 쓰지?" 이고, 두번째로는 "개발자가 널값을 체크하건 말건 그게 비지니스 로직을 위해 반드시 해야하는 부분이라면, 기본값 셋팅하고 나서는 널체크를 안해도 된다는 이야기는 개나 줘버리시고, 문자열이나 리터럴로 기본값 초기화를 안해서 널체크를 해야하는거라면 (일단 스펙따윈 잊자) 그럼 VO 클래스마다 멤버 이름 똑같이 복사해서 빈문자열이나 0 따위를 넣고 있는거랑 필요에 따라 널체크하는거랑 뭐가 더 불필요하게 코딩문자수가 길어질까?" 라는 것이다.

아무튼, 오늘 귀중한 경험을 하나 했다. "내가 해봐서 아는데..."라고 말하는 사람과는 가급적 대화할 생각을 말 것. 특히 나도 해본걸 그 사람도 해봐서 안다고 말하는 사람과는 더더욱... 그건 기본적으로 경험의 차이를 떠나 인격의 문제가 아닐까 하는 심각한 고민이 든다.

덧붙임(1)
이게 이렇게 흥분할 일인가? 하고 이글을 읽으시며 반문하실 수도 있는.. 비전문가나 초고수분들께 한가지 귀뜸해드리고 싶은게 있다. 당신도 누군가에게 "기본이 안되어있는데 무슨!" 이라는 말이나 "나에게 생산성을 논해? 허~ 참.." 이란 말을 듣는다면 나처럼 흥분 안하게 생겼는가? ㅋㅋ

덧붙임(2)
덕분에 공부 많이 했다. 혹시 내 지식이 틀렸을까봐 레퍼런스도 많이 찾아봤고, 좋은 글도 발견한 만큼... 감사해야될 부분도 있는것 같다. 마치 MB덕분에 온 국민이 광우병 전문가가 되었듯 말이다.오늘본 레퍼런스 중에 좋은 것은다 영문이었는데, 하나쯤 번역해서 올려보아야겠다.그 분이 같은 이슈로 검색하시다가 내 블로그에 들어오실 수도 있으니... 참고하시라고..

1. Object initialization in Java : http://www.javaworld.com/javaworld/jw-03-1998/jw-03-initialization.html?page=1
(번역물 : http://mosscarpet.blogspot.kr/2012/07/java-1.html)

2. Java Language and Virtual Machine Specification : http://docs.oracle.com/javase/specs/

덧붙임(3)
근데.. FLEX는 안에서 어떻게 돌아가는지 전혀 알고 싶은 마음이 안생기는건 왜 일까?