Wednesday, June 11, 2014

지난 2년간 느껴왔던 개발에 대한 생각

마지막 포스트를 끝으로 2년간 있었던 일들을 간략히 정리해 보겠다.

어쨌든 난 WPF Application을 개발하는 개발자이고
그 개발에 대한 경험이 많은 개발자이다 보니
이와 관련된 일을 하는게 맞다고 생각할 법도 하다.

3~4년 전 부터 느껴온 거지만
새로운 개발 환경
새로운 개발 언어
새로운 업무 - 도메인 지식을 동반한
이 세가지 중에
제일 중요한게 뭐냐고 물었을 때 난 "업무"가 나와야 하는게 맞다고 본다.
새로운 개발 환경과 언어는 배우면 되는 것이다.
(그러고 보니 업무도 배우면 되는 건데...)

배운다는게
개발 환경과 언어는 개발자가 온전히 지고 가야 하는 배움이라면
업무는 이 일과 관련된 일을 하는 사람 모두가 알아야 하는 배움이라는데에 차이가 있다.

그렇다면 개발자자 개발에 관련된 지식을 얻는게 맞는데
과연 이것 보다 업무가 더 우선순위가 있다는 것인가?

정말 그렇다.

개발은 고객이 원하는 요구사항에 맞는 제품을 만들어내는 것이지
그 제품이 어떤 기술이 필요하고 어떤 환경이 필요한 지에 대해서는
우리 개발자가 정하면 된다는 것이다.

다시 WPF 얘기로 돌아가 보면

난 처음에 WPF로 만들어진 솔루션에
고객이 요구하는 기능 개발, 또 기능 추가, 디버깅 작업, 유지보수 등등을 해 왔는데
플랫폼이 Window Application에서 Web Application으로 바뀌었다고 해서
고객이 요구하는 기능이 바뀌지는 않는다는 걸 알게 되었다.
웹 환경은 ASP.NET MVC3
웹서버는 당연하게도 IIS
또 너무나 당연하게도 DB는 SQL Sever
이 환경에서 처음부터 시작했는데, 시간은 좀 걸렸어도 아예 못하지는 않았다.

이렇게 서로 다른 환경에서 한가지 기능에 두 가지 플랫폼이 존재하는 제품을 만들어 가다 보니
내가 어떤 언어를 알고 어떤 플랫폼을 아는 지에 대해서는 고객의 입장에서는 무의미하다는 뜻이기도 하다.

3년 전 쯤에 이걸 느꼈고
1년 전에는 확실히 알았다.

이 과정을 겪고 난 이후
난 새로운 개발 언어와 새로운 개발 플랫폼을 알아 가는 과정이
힘들다거나 어렵다거나 두렵다거나 하지 않았다.
(솔직히 귀찮은건 있다)

오히려 그것은 개발자 자신이 만들어내는 하나의 핑계거리에 불과할 수도 있다.
- 전 JAVA만 해봐서요 Java script는 잘 몰라요 -- 웃긴건 JAVA와 Java script가 같은 것인지 아는 사람이 상당히 많다
- 아 전 C로 되어 있는 서버만 만들어 봐서, C#으로 된 서버는 잘 몰라요.
- asp.net으로 해본게 있긴 한데, php는 모르겠네요

이런 핑계는 다시 이런 질문으로 바뀌어야 한다.
- 단순 데이터 조회 서비스라면 어떤 웹 서비스가 좋을지 찾아보고 그걸로 해보겠다.
- 웹에서 새로고침 없이 실시간 데이터가 나오게 하려면 어떤 기술이 필요한지 찾아보고 그걸로 가자.
- 윈도우 설치형 프로그램에 데이터가 아주많은 성능 차트가 나와야 하는데 Win32로 가느냐 WPF로 가느냐를 검토하고 성능 좋은 걸로 결정하자.

물론 경험이 부족한 개발자의 경우
또 한가지 플랫폼의 한가지 언어에 집중해야 하는 일을 해왔을 경우
두려움과 어려움, 시간 부족 - 심지어 귀찮음의 이유를 들어
난색을 표하는데
사실 경험이 많은 개발자일 수록 이렇게 얘기하는 사람은 드물다.
만약 아닌 개발자가 있다면?
환경이 그렇게 만든 것일 수도 있지만, 하나의 일에 너무 안주한것이 아닌가 되돌아 보는 것도 필요할 듯 하다.
개발자의 피가 흐른다면 새롭고 흥미로운 신기술에 대한 호기심 정도는 있어야 한다고 보니까.

또 한가지 중요한건
경험삼아, 취미삼아, 시간나서 개발을 하는 것과
돈을 버는 일로 개발을 하는 것이 다르기 때문에
최근의 경우도 Node.js 서버에 대해 상당히 관심이 많았음에도 불구하고
실제 Node.js 서버가 필요한 프로젝트에 투입이 되어서야
제대로 된 경험을 할 수 있었다.

그 전에 해봤던건 그냥 잘 도나 안도나 정도 해봤던 예제 코드들 돌려본게 전부이다 보니
목표도 없고, 돈되는 일도 아니고 해서
그냥 해봤으면 좋겠다라는 간절한 생각만 들었을 뿐이다.

실제로 Node.js 서버를 구축하여 프로젝트를 해본 경험이 없음에도 불구하고
짧은 시간에 Overview를 정독 후, 원하는 기능을 구현하는 예제 소스들을 확인한 후
바로 거침없이 기능 구현에 몰두해 요구사항을 만족하는 Node.js 서버를 만들었다.
- 사실 Node.js 서버가 크게 어려운건 아니다, Simple, light, fast and java script base 이런게 모토다 보니 두려움만 없다면 누구나(?) 할 수 있다.

이제 난 개발이 두렵지 않다.
정확히 얘기하면 요구사항에 맞는 개발 플랫폼 및 언어를 배워 개발을 하는게 두렵지 않다.

No comments:

Post a Comment