뭐 제목하고 그다지 관계없는 이야기를 하는 건지도 모르겠다. 이런 저런 블로그를 구경다니다가 CG 관련자의 애환같은 글을 봤는데, 거기에 "Tool은 Tool이다" 라는 말이 있었다. 그것 외에도 한가지 Tool에 7년 먹은 홍삼이 우렁차.. 엥? 뭐였더라;;
뭐 암튼, 작년 말 쯤부터 이런 생각이 들었다. 할 줄 아는 언어가 Java 뿐이오? 그렇다. 곽가는 Java 밖에 할 줄 모른다. 중학 시절 C 언어를 잠깐 써보긴 했지만 제대로 써보진 못했고, 군 시절 공부한 Java를 지금까지 이어오고 있다. PHP, ASP를 써 본 경험은 있다. C++ 을 컴파일 해 본 경험은 없으며 Visual Basic이 어떻게 생겼는지 본 적이 없다. 다시금 생각해보니 정말 Java 밖에 모른다.
그게 왠지 부끄러웠다. 남들은 C++도 잘하고, ASP 같은 걸로 웹페이지도 잘 만들고... 둘 이상의 언어를 밥 먹듯이 다루는데 곽가는 하나 밖에 모르고... 왠지 이만큼 나이 먹고 컴퓨터 앞에 앉아있는데 이거 하나 밖에 모른다는 생각을 하니 그냥 저냥 싱숭 생숭 갈팡 질팡 오지명...
하나라도 잘하자. 어차피 OOP로 가는 인생, 그게 C++이건 PHP건 Flash Action Script건 Java건 다 거기서 거기다.(논란의 여지는 가볍게 토스) 자기가 편한 언어로 주어진 문제를 잘 풀면 그만이다. 다만 그것이 표현하는 의미와 그것을 건설하는 체계를 이해하면 된다. 체계를 이해하면 같은 체계의 다른 언어를 배우는데 큰 무리가 없다. 그리고 추세가 개발 언어와 운영체제에 상관없이 돌아가는 서비스 지향 아키텍처인지라, 하나라도 잘 하면 낑겨갈 수 있는 분위기가 조성되고 있다.
문제는, 곽가가 그나마 안다는 Java를 사실은 잘 모른다는 것이다. 5.0 SDK에 ThreadPool이 제공되고 있다는 사실을 어제야 알았다. 모르고 있었다면 분명 어설프게 구현해놓고 동기화 문제에 충혈이 되어있었을 것이다. 5.0에서 새로 제공되는 문법들을 처음엔 무시했었는데 그걸 사용하고 있는 지금은 너무나 편하다고 생각하고 있다. 쓰고 안쓰고의 차이가 코드에 극명하게 드러난다. 코드의 가독성이 현저히 좋아지고 코드량이 줄어든다. 아는게 힘이다.
Tool은 Tool일 뿐이다. 가장 중요한 것은 그것이 표현하고자 하는 것에 대한 의미와 체계를 이해하는 것이다. 그러나 Tool은 또한 Tool이다. 그것이 제공하는 다양한 기술(또는 기능)을 무시하면 안된다. 쓰라고 있는거다. 쓰라고 있는 건 배워서 써라. 쓰지 않을 거라고 해도 배워라. 그것은 분명히 큰 도움이 될 것이다.
// 하아... 갈수록 글쓰기 능력이 저하되는구나...
뭐 암튼, 작년 말 쯤부터 이런 생각이 들었다. 할 줄 아는 언어가 Java 뿐이오? 그렇다. 곽가는 Java 밖에 할 줄 모른다. 중학 시절 C 언어를 잠깐 써보긴 했지만 제대로 써보진 못했고, 군 시절 공부한 Java를 지금까지 이어오고 있다. PHP, ASP를 써 본 경험은 있다. C++ 을 컴파일 해 본 경험은 없으며 Visual Basic이 어떻게 생겼는지 본 적이 없다. 다시금 생각해보니 정말 Java 밖에 모른다.
그게 왠지 부끄러웠다. 남들은 C++도 잘하고, ASP 같은 걸로 웹페이지도 잘 만들고... 둘 이상의 언어를 밥 먹듯이 다루는데 곽가는 하나 밖에 모르고... 왠지 이만큼 나이 먹고 컴퓨터 앞에 앉아있는데 이거 하나 밖에 모른다는 생각을 하니 그냥 저냥 싱숭 생숭 갈팡 질팡 오지명...
하나라도 잘하자. 어차피 OOP로 가는 인생, 그게 C++이건 PHP건 Flash Action Script건 Java건 다 거기서 거기다.(논란의 여지는 가볍게 토스) 자기가 편한 언어로 주어진 문제를 잘 풀면 그만이다. 다만 그것이 표현하는 의미와 그것을 건설하는 체계를 이해하면 된다. 체계를 이해하면 같은 체계의 다른 언어를 배우는데 큰 무리가 없다. 그리고 추세가 개발 언어와 운영체제에 상관없이 돌아가는 서비스 지향 아키텍처인지라, 하나라도 잘 하면 낑겨갈 수 있는 분위기가 조성되고 있다.
문제는, 곽가가 그나마 안다는 Java를 사실은 잘 모른다는 것이다. 5.0 SDK에 ThreadPool이 제공되고 있다는 사실을 어제야 알았다. 모르고 있었다면 분명 어설프게 구현해놓고 동기화 문제에 충혈이 되어있었을 것이다. 5.0에서 새로 제공되는 문법들을 처음엔 무시했었는데 그걸 사용하고 있는 지금은 너무나 편하다고 생각하고 있다. 쓰고 안쓰고의 차이가 코드에 극명하게 드러난다. 코드의 가독성이 현저히 좋아지고 코드량이 줄어든다. 아는게 힘이다.
Tool은 Tool일 뿐이다. 가장 중요한 것은 그것이 표현하고자 하는 것에 대한 의미와 체계를 이해하는 것이다. 그러나 Tool은 또한 Tool이다. 그것이 제공하는 다양한 기술(또는 기능)을 무시하면 안된다. 쓰라고 있는거다. 쓰라고 있는 건 배워서 써라. 쓰지 않을 거라고 해도 배워라. 그것은 분명히 큰 도움이 될 것이다.
// 하아... 갈수록 글쓰기 능력이 저하되는구나...
TAG java
이 글의 트랙백 주소는 http://semix2.tistory.com/trackback/197 입니다
그렇지요.
하지만 안타까운 것은, 혼자 일한다면 도구 선택의 자유가 어느 정도 보장되나 (결과물로 판단할 수 있으므로) 회사라던가에서 공동 작업으로 들어가버리는 순간 도구 선택의 자유는 없어지는 것이 문제겠지요. 그래서 여러 도구를 다 다룰 줄 아는 능력도 생각 외로 아주아주아주 중요하다고 생각하고 있고 경력 8년차인 지금 너무나도 깊게 실감하고 있답니다.
어찌되었든 화이팅입니다.
네, 다양한 툴을 다룰 줄 안다는게 사실은 굉장한 능력이지요. 실력이 좋아도 하나만 할 줄 안다면 그 툴을 쓰지 않는 다른 곳에서는 일을 할 수 없지요;; 조언 감사합니다 ^^*
Daniel님도 화이팅입니다!