( 분명 전에 이 비슷한 글을 적은 것 같은데, 어디있는지 모르겠다. 그냥 생각말 해두었던지 유사한 글이 안보인다. )

 직장에서 사람을 뽑을 때 지금 잘하는 사람을 뽑아야 하나 아니면 앞으로 잘 할 수 있는 사람을 뽑아야 하는가 고민해 보았다.
회사 입장에서는 일을 잘하는 사람을 뽑아야 하는게 맞는데 그 기준이 현재이냐 미래이냐는 차이가 있을 것이다. 당장 일이 급하면 현재가 맞겠지만 앞으로를 생각해서 앞으로 잘 할 사람을 뽑는게 맞지 않을까 하는 생각이 든다. 


 전에 여기저기 면접을 보고 다녔는데, 난 당장 일을 잘하기 보다는 앞으로 잘 할 사람에 가까운 것 같다. 먼가 지금 잘 학습된사람이기 보다는 적응해서 배워가는게 빠른 사람에 가깝다. 물론 이게 2~3개월이 소유되긴 하다.(이것도 연차가 쌓이면서 많이 줄어든 것 같다.) 

 어째든 이렇다보니 내가 면접에서 떨어지는 경우가 참 많았다. 내가 살면서 회사 입사시험에 붙은적이 딱 3번 있다. 이직의 시기에 다 그곳으로 입사했다. 어떤 사람들은 여러 곳에 합격해서 선택해서 간다던데, 난 그런 경우가 없었다. 

 이번에도 여러 회사를 돌아 다니며 합격했다. 근데 아무리 생각해도 난 적응력이 뛰어 난 것같다. 그래서 이렇게 야근, 휴일 근무까지 하게되었다. 그래도 뭔가 해나간다는 성취감은 크다. 이렇게 일을 잘하는데 왜 다른 곳에 안 뽑혔는지 모르겠다. 내 눈이 그리 높은 것도 아니고 스타트업만 찾아 다녔는데. 

 요즘, 딥러닝 쪽으로 공부하다보니 이런 생각을 하게되었다. 이 이론 까지 정확하기 알고, 내부적인 동작 원리까지 알고 있어야 아는 것일까, 아니면 기존에 만들어진 라이브러리를 가지고 원하는 결과를 알아야, 머신러닝을 알고 있는 것일까. 

 둘다 일리있는 생각이다. 라이브러리 이용법만 알고 있더라도, 충분할 수 있으나 경우에 따라서는 라이브러리 내부를 수정하는 작업이 필요할 수도 있으니 그 원리까지 알아야 할 수도 있다. 그런데, 더 깊이 들어가면 그 원리라는게 대략적인 동작원리인지 수학적인 계산까지 이해해야 하는지 고민하게 된다.


 2*0=0 이라는 것은 우리 생각에는 자명하다. 그런데 수학적으로 따지고 듣자면 항등원 역원을 통해 증명할 수 있다. 그런데 2*0이 0인 사실을 알고 있느 사람이 아는 것인가, 아니면 항등원 역원을 통해 증명 할 수 있는 사람이 아는 것일까?


 갑자기 프로그래밍 OOP에서 말한 캡슐화라는 용어가 떠오른다. 자동차 핸들을 꺽으면 방향이 움직이는 것만 알면되는 것일까, 아니면 기어가 이렇게 저렇게 동작하면서 자동차 앞 바퀴가 꺽이는 원리까지 알아야 운전을 알다고 해야하나? 더 들어가서 기어가 내부적으로 강체(https://ko.wikipedia.org/wiki/%EA%B0%95%EC%B2%B4) 이 움직이는 물리학적 원리까지 알고 있어야 자동차를 운전을 안다고 해야하나. 여기서 더 들어가서 이런 거시적인 세계 말고, 미시적인 세계(이를테면 양자역학) 까지 알고 있어야 아는 것인가? 이런식이면 우리가 알고 있는 것은 하나도 없지 않은가?


 다시 문제로 돌아와서 내가 안다고 하는 것은 내가 필요로 할 만큼 알고 있다는 말로 보인다. 그 필요성이 경우에 따라서는 라이브러리 이용 수준에 머물를수 있고, 경우에 따라서는 내부를 수정해야 할 수도 있다. 그런데 내부를 수정하더라도 해당부분을 공부하면서 익힐 수 있는 배경지식이 있는 정도면 충분할 것 같다. 

 어쩌다 보니 내 현 직급이 과장이다. 뭐, IT 쪽이 다른 곳 보다 빠르게 직급이 올라가는 경향이 있다.(이렇게 올라간다고 해도 내 월급은 대기업 대리보다 못하다. ) 

  어째든 경력이 어느정도 쌓이다보니 개발 만으로 모든 것이 해결되지 않는다는 것을 조금씩 느끼고 있다. 


 나는 좀 다양한 상황에서 개발을 해왔다. 첫 입사때 임베디드 기반의 브라우저를 유지보수했다. 이 브라우저라는 것이 웬만한 OS 뺌친다. 기본적으로 Visual Studio 기반의 CPP 를 사용하기 때문에 Native 언어(참 이것도 세상이 많이 변했다. 예전에는 Native 언어하면 어셈블러를 의미 했는데. 요즘에는 Javascript 가 아닌 Java 나 Object C 같은 언어도 Native 언어라는 용어를 쓰기도 한다. 어째든 아직은 Native 언어하면 C나 CPP 를 의미 하는 것 같다. ) 부터 HTML, CSS, Javascript 를 배워야 했고,  경우에 따라서는 TTF 폰트 라이브러리, 이미지 라이브러리도 유지보수 해야 했다. 그리고 요즘은 Python 기반의 서버나 Hybrid WebApp 을 주로 하고 있다. 


 내가 꽤 다양한 개발을 해왔으나 이것만으로 제품이 완성되지 않는다고 느끼고 있다. 가장 중요한 부분은 마케팅, 기획이고 경우에 따라서 UX나 UI 도 중요하다. 개발도 이러한 것중에 중에 가장 인력이 많이 드는 요소일 뿐이다. 


예전에도 좀 그래왔지만 요즘 더더욱 개발 외적인 것중에 집중하도록 하고있다. 그래서 UXD & 그래픽 카테고리를 만들었다. 시간적여유가 된다면 기획적인 것을 정리해도 좋을 것 같다.