쌀맛
246
2016-12-16 16:28:19
9
3562

개발자를 꿈꾸거나 개발자가 되었거나 개발자로 미래가 궁금한 경우 읽어 보세요.


사실 인터넷 사용한지 꽤나 지났습니다. 94년쯤 PC통신을 통해서 넷스케이프(어쩌면 모자이크였을지도..)로 플레이보이 웹사이트를 본 이후 벌써 22년쯤 지난거 같습니다. 

그 당시 워크래프트(나무위키 링크) 로 네트워크 게임이 가능하다는 것 집에서 미국에 있는 정보를 습득할수 있다는 등 신천지 였죠.


90년대 후반에는 벤처붐도 있었고 2015년에 제2의 벤처붐, 10년 전과 무엇이 다른가 취업이 힘든 대학생이나 젊은이들에게 창업에 뛰어 들수 있도록 많은 지원 제도등 만들어 졌습니다.


그런데 90년대 후반 개발자와 달리 요새개발자(UI,서버,모바일(안드로이드,아이폰), 기타 등등)는 세분화 되어서 요샌 All-in-One 개발자인 Full Stack 개발자를 선호 하더군요. 

제가 시작할때(90년도 후반)에는 C/S(Visual C++,4GL,VB), 웹개발자를 뽑았고 그당시 개발 환경이라곤 UltraEdit, EditPlus 로 열심히 코딩하고 서버에 FTP를 통해서 매번 배포하고 그랬습니다.


당연히 프레임워크는 선배개발자의 로컬PC에 있었고 잘 알려주지도 않았어요(사람의 성향에 따라서 조금 다르긴 합니다.).


그런데 요새 개발자는 코딩인터뷰도 해야 하고 포트폴리오도 만들어도 잘 입사가 안되더군요.


사실 경기가 어려워 지면 기업은 지출을 줄입니다. 지출을 줄일때 IT투자비용을 대폭으로 줄이기도 했던것 같습니다. 요새 취업이 어렵다는 이야기를 들어 보면 대부분 공급은 많은데 수요는 적은것 같아요.


3년전 쯤 부터 주위 알고 계신 사장님들 대부분이 죽겠다고 합니다. 매출은 줄고 월급은 높여야 하고 그러다 보니 신규인력을 뽑는것 보다 내부인력을 쥐어짜서 버티는 경우도 많습니다.


가끔 연봉에 대한 글들을 보면 3,000을 받는다. 6,000을 받는다 그런글들이 올라 오더군요. 3년쯤 전에 신입으로 취업준비 하던 친구들이 기본 2,400 이상을 원한다 합니다. 그런데 뽑는 사람 입장에서 보면 1~2년쯤은 투자 개념으로 사람을 뽑습니다. 근데 2~3년쯤 지나면 연봉이 작다며 이직을 하죠. 그러다 보니 신입을 안뽑고 2~8년차 쯤 되는 개발자를 뽑는경우가 많습니다.


왜? 투자없이 바로 써먹을수 있으니까요.


개발자와 경영자 간에도 협상이 필요합니다. 2년차 개발자라도 회사에 꼭 필요한 인재라면 연봉을 많이 올려줍니다. 그런데 10년이 넘은 개발자 쯤 되면 회사에 꼭 필요한 기술을 익힐거라 생각 하지만 그렇지도 않습니다(꾸준히 자기개발 하지 않으면 IT기술이 워낙 빨리 발전하여 도태 됩니다.).


제가 하고 싶은 얘기를 갑자기 압축 하자면

1. 학생 or 취업대상자 

 - 개발자 or IT쪽 일 하시려면 학습에 대한 꾸준한 열정이 없으면 오래 못갑니다. 요새 같으면 5년도 못버틸수 있습니다.


2. 현직 개발자(주니어급)

 - 지금 하고 계시는 기술( 예를 들면 자바,스프링,JQuery) 외에 Hadoop도 보시고 Python이란 언어로 Tensorflow도 학습하면서 머신러닝 or Data 분석등도 관심을 가지면 좋겠습니다.
 

진짜 하고 싶은 이야기

즐겁게 일하고 즐겁게 학습할 자신이 없으면 천천히 제2의 인생 준비를 하는것도 나쁘지 많은 않은것 같아요. 나이 40~50대에 회사에 필요한 사람이 많지 않아요(많은 사람이 당장 필요한 부품으로 근무하는게 현실). 그게 현실입니다.




1
2
  • 댓글 9

  • ㅇㅇ
    1k
    2016-12-16 16:32:07 작성 2016-12-16 16:34:38 수정됨

    뭔 말이죠?

    옛날얘기 하다가, 연봉얘기하다가

    하고 싶은 얘기를 압축을 했다가, 진짜 하고싶은 얘기를 했다가.

    아직 시작도 안한 꿈나무들한테 제2의 인생을 준비해라?

    막걸리 씨 아니죠?

    0
  • nezz
    4
    2016-12-16 16:40:28 작성 2016-12-16 16:40:52 수정됨

    개발자와 경영자 간에도 협상이 필요합니다. 2년차 개발자라도 회사에 꼭 필요한 인재라면 연봉을 많이 올려줍니다. 그런데 10년이 넘은 개발자 쯤 되면 회사에 꼭 필요한 기술을 익힐거라 생각 하지만 그렇지도 않습니다(꾸준히 자기개발 하지 않으면 IT기술이 워낙 빨리 발전하여 도태 됩니다.).


    이건 전혀 공감이 안되는데요..?

    0
  • 카페인중독
    292
    2016-12-16 16:41:21

    조언보다는 그냥 본인 푸념글이신듯한데.. ㅎㅎ


    0
  • baltasar
    5k
    2016-12-16 16:55:12 작성 2016-12-16 17:00:15 수정됨

    잘 나간다는 개발자의 최종 목표는 남의 일을 하는게 아니라, 자기 시스템을 만들어서 자기사업을 하는게 목표가 돼야 합니다.

    개발자는 연수입 4,000만에 하루 10시간~15시간씩 일해 시스템을 만들고 더 이상 수입이 없겠지만, 만들어진 그 시스템은 월4,000만원씩 순수익을 뽑아냅니다.

    특히나 S/W개발은 학교에서 배우고도 학원으로 가서 다시 배우고, 거기서 또 수천 시간의 연습과 시행착오를 거쳐서 배워야 수준있는 제품을 만들 수 있는, 다른 직업에 비하여 투자비용이 많이 드는 직업입니다. 그렇기에 기피되는 것이고요.

    그러므로 프로그래머는 어렵게 터득한 재능을 남의 사업도구로 싸게 팔지 말고 자신의 수익을 위해 사용할 방법을 매일마다 열 번도 넘게 궁리하세요.

    프로그래머가 사업가가 되는 것만이 국비학원 등으로 쏟아져나오는 단가인하 압력용 양산품으로부터 벗어날 수 있는 유일한 길입니다.

    4
  • 조프로
    1k
    2016-12-16 17:43:28 작성 2016-12-16 17:44:31 수정됨

    개인적으로 제일 공감 안가는 얘기 중에 하나가 "개발자는 끊임없이 배우지 않으면 도태되는 직업이다." 이건데요, 사실상 새로운 프레임웍(도구)에 적응하는 일이나 주로 있지 변하는게 도대체 뭐가 있습니까?

    몇십년 전부터 변하지 않는 컴퓨팅의 기본 이론들에 대한 학습이 대학교 학부 과정에서만 탄탄하게 되어 있으면 한 20년 개발자로 일하는데 충분하다고 생각합니다. '공부를 해야 한다'라고 하는 것도 사실 그 때 못한 공부들(자료구조, OS, DB, 네트워크, 컴퓨터 구조)을 한다는 뜻이죠.


    1
  • baltasar
    5k
    2016-12-16 18:07:39 작성 2016-12-16 18:48:52 수정됨

    "몇십년 전부터 변하지 않는 컴퓨팅의 기본 이론들에 대한 학습이 대학교 학부 과정에서만 탄탄하게 되어 있으면 한 20년 개발자로 일하는데 충분하다고 생각합니다."

    그렇게 대학이 훌륭한데 컴공과 대학교수들은 왜 미래부와 기업에게 인기가 없는지 궁금하네요. 그 분들은 20년간 대학공부만 하셨는데요.


    그네들이 외면받는 이유는 배우지 않아서 그런거 아니예요?

    심지어 미래부도 대학 교수들은 얼굴마담으로나 세우지, 알맹이는 기업인들로 채우더군요.


    심지어 대학에서도 가장 쓸만한 강의는 인간백과사전 외부강사 초빙 강의라는건 대학에서도 인정하는건데요. 그네들이 쓸모가 없다면 재정을 지출하고 시간을 쪼개서 외부강사를 초빙해야 할 이유도 없을 것 아니겠습니까? 조프로님 주장대로라면 이미 고용된 교수들이 외부강사보다 더 잘 알고 있으니, 교수들이 학생들에게 그 기술을 가르치면 되잖아요?

    안그래요?


    컴공과 교수들도 엑셀강사 초빙해서 며칠간 엑셀 배우던데 뭐하러 배워요? 본인이 더 잘 알테니 도움말 보고 하면 될텐데요?


    대학은 기초적인 기술과 정보, 마인드를 전해줄 뿐이지, 그 이상은 전해주지 못합니다. 기초 탄탄한 인재, 견문있는 인재를 길러내는 정도에 그칩니다.

    과거처럼 정보는 무조건 바로 파일에 담고 파일은 무조건 디스크에 저장하고, 바로 읽어들이고, 비디오카드 메모리를 직접 액세스 해서 출력을 조작하고, CPU가 싱글코어이던 시절에나 대학 교육으로 충분했지, 지금처럼 과정이 복잡해진 시대에는 대학을 졸업한 인재가 더 고도화 된 지식과 기술을 배우기 위해 학원으로 다시 가는 것은 어쩔 수 없는 대세예요. 인정할 건 인정해야 합니다.


    이런 얘기가 있어요.

    돌팔이 의사를 조심하려면 아토피, 관절염, 신경통, 당뇨, 불면증, 위장병, 탈모 등 이것저것 다 하는 병원을 조심하래요.

    저는 이 문제가 S/W업종에도 적용된다고 생각되는데요.

    어떻게 생각하세요?


    조프로님은 기초기술의 학습과, 응용기술의 학습과, 제품제조의 학습의 차이에 대하여 충분히 이해하실 필요가 있어보입니다.

    소프트웨어 제조가 그렇게 쉬웠다면 물류시스템 1억, 오픈마켓 시스템 5천만원, 병원 EMR 1백만원, OCS 1백만원, 증권사 시스템 5천 만원에 퉁치면 되겠네요. ㅎㅎㅎ


    근데 조프로님. 개발자 맞긴 맞나요?

    아니면 개발 잠깐 하시다가 영업을 하시는 분이신가요?

    영업들이 프로그래머들에게 다른 업무나 기술분야를 해달라고 억지 쓰고 닥달할 때 논리와 완전히 동일해서 신기하네요.

    '어차피 정보 받아서 저장하고 보여주면 되잖아? 그게 뭐 어려워? 돈만 잘 받으면 되지.' 그런 식으로 접근해서 발주자와의 약속 못 지켰거나 예정보다 사업비가 너무 많이 들어가서 거액으로 적자 본 SI회사가 여럿 문을 닫았지요.

    0
  • de
    2016-12-16 18:42:47

    nezz 님 / 실제 사례를 본적 있습니다. 일부이긴 하지만 아주 없진 않습니다.

    물론 그 실력이란게.. 음.. 2년차가 학부시절 졸작으로 유사ORM프레임웤을 만들었었고 ERD 설계와 소프트웨어 공학을 특히 관심있어 하는 사람이었습니다. 뭐 개발은 잘하구요.. 연봉을 거의 3~40%올린듯합니다..ㅋㅋ

    암튼 그건 그거고 전 대부분 공감되네요

    공부안하면 도태되고 흥미 못느끼면 오랫동안 못하는거 맞아요.

    여기계신분 4~50대분들 지금도 스위프트3를 공부하면서 개발을 한다거나 react를 한다거나 개발에 관심이 무지 많으십니다.. ㅎㅎ 

    0
  • 조프로
    1k
    2016-12-16 21:17:04

    baltasar //


    컴공을 제대로 이해하는 분이라면... 윈도우에서 C, C++랑 MFC만 가지고 10년을 일한 사람이라도 Java와 Spring을 몇 개월 안에 높은 수준으로 적응 할 수 있다는 걸 아실텐데요. 물론 같은 연차의 기존 경력자들보다야 못하겠지만 비슷한 수준이 되는데는 1년죠 걸리지 않죠. 말씀하신대로 '어차피 정보 받아서 저장하고 보여주는' 수준이라면요. 

    항상 겉핥기 수준으로 잠깐 유행하는 '신기술'만 깔짝대면서 진짜 공학적 백그라운드는 부족한 사람들이 오래가기가 어렵죠.

    왜 대학에서 AngularJS나 react, Node.js, AWS 이런거 안가르칠까요?? 한마디로 그런 숙달이 필요할 뿐인 '도구 사용법'은 제대로 준비된 사람이라면 금방 따라갈 수 있기 때문입니다. 솔직히 대학에서 그런거 가르치기엔 시간이 아깝고 돈이 아까운 정도죠. 

    0
  • baltasar
    5k
    2016-12-16 23:12:04 작성 2016-12-16 23:35:11 수정됨

    전공자와 비전공자간에 차이가 있는 것은 동의하는데, 전공자라고 해서 새로운 기술이나 프레임워크에 '적응'수준으로는 못 따라갑니다. 툴이라면 가능하겠지요. 그런데 프레임워크와 툴은 명백히 다른 것 아닙니까?

    전공자가 6개월 걸리면 비전공자가 10개월 걸리는거지, 전공자라고 해서 '적응'이고 비전공자라고 '학습'이 될 수는 없습니다.

    차라리 대학때 집중적으로 배우던 컴파일러 이론이나 어셈블러, 회로이론이라면 전공자와 비전공자간 차이가 크게 있겠네요. 단순게시판의 ERD 설계나 DFD 작성이라면 전공자가 더 유리할 수는 있어요.

    아이구 전공한지 오래돼서 명칭도 가물가물 하네요.

    그런데 그런 기술은 2000년대 초반의 '웹사이트'개발시대 때까지에나 통용되지, 지금과 같은 '웹 어플리케이션 서비스'개발시대까지는 통용 안 됩니다.

    대학때 배웠던건 기초적인 일을 할 때까지입니다. 그 이상은 그 이상의 학습을 해야만 수행 가능하다는 것이 논지의 본질이고 핵심입니다.


    그래서 전공학점 4.0 맞은 대학3년생이 2.15Mb짜리 5.25인치 2HD 디스크를 컴퓨터의 3.5인치 디스크 베이와 2.25인치 디스크 베이 사이에 꽂아넣는 짓을 합니까? 실습 끝나고 학생들 빠진 후 컴퓨터 살펴보면 두어 군데 씩 이런게 있었습니다. 지금은 중고등학생들도 전부 USB를 이용하니까 그런 실수는 안 하겠지만요.

    전공은 중요한데, 전공했다고 모르는 것을 알고 적응하지는 않습니다.


    프레임워크가 과연 적응의 문제인가?

    절대 아닙니다. 프레임워크는 명백히 학습입니다.

    전공자 + 8년 이상 경력자도 생소한 프로젝트 투입되면 일단은 남한테 모른다고는 말 못하고 다 알아듣는척 하면서 남이 만들어준거 까 보고 삽질하면서 보다가, 일단 소스 다 업데이트 받아서 남은 어떻게 짰나 커닝하면서, 휴일날 시간 쪼개 구글링하고 책 한권 사서 보고, 테스트 코드 짜보면서 익힙니다.

    그렇게 해보고도 모델앤뷰 개체에 대한 이해가 떨어지고, 익셉션이나 공통코드 처리를 그때까지도 어떻게 할지 몰라서 삽질하고 컨트롤러에 다 코드 삽입하다가 나중에 가서 서비스 개념과 인터셉터라는거 알고 처리한다고 코드 들어내면서 리펙토링하는 경우가 부지기수예요. 심지어 프로젝트가 이미 상당기간 진척되었는데도 제이슨 처리 부분을 생략시킬 줄 몰라서 빈 html로 전부 박아놓은 경우가 태반입니다.

    전공자도 스프링을 제이슨 연동해서 오토드리븐 등 어노테이션까지 스프링의 필수적인 기능을 8할까지는 제대로 사용하려면 3개월은 실프로젝트를 하면서 구글링을 계속 해봐야 됩니다.

    이건 '적응' 수준이 아니라 '학습'입니다.

    심지어 스프링 프로젝트에 처음 투입되는 사람들은 제이슨과 어노테이션이라는 개념조차 모르는 경우가 많기 때문에 제이슨 처리가 왜 필요한지 어떻게 작동되는지, 어노테이션은 왜 사용하는지 사용을 하면 어떤 좋은 점이 있는지 코드 리뷰하고 작동되는거 테스트 시켜주면서 흐름을 보여줘야 이해합니다.

    또한 기존의 모델2 방식 개발자들은 사전에 충분한 지식이 있는데도 과거 지식으로 인하여, 왜 스프링에서는 빈즈를 먼저 실행되고 JSP가 나중에 실행되는지, 파일을 업로드 하는데 왜 XML을 건드려서 특별한 처리를 해줘야 하는지, 리스판스 개체를 왜 스프링 내에서 닫으면 안되는지에 대해서도 납득을 못하고, 누군가 그림을 그려주면서 설명을 해줘야 알아듣습니다. 심지어 스프링 2.X 버전과 3.X버전은 기본 구조는 같지만 주변 필수기능이 미묘하게 차이가 있어서 구글링 안해보면 사용을 할때마다 곤란에 처합니다.

    자료를 찾아보고 구조와 기능을 이해해야 하거나, 누군가 설명을 하고 테스트를 해야 하는 과정은 '적응'이 아니라 '학습'입니다. 그것도 혼자서는 일주일 이내에 되는게 아니라 몇 개월은 공부해야 됩니다.

    적응은 좀 사용하면 스스로 이해가 되고 손에 익는게 '적응'인데요. 외부로부터 주입받아야 할 적응이 너무 많네요? 그럼 그건 학습이지요.


    저도 S/W전공이 분명 필요하다는 입장이지만 전공자라서 '학습'이 필요 없을 정도는 아닙니다. 습득기간의 차이일 뿐이지 전공자도 똑같이 '학습'이 필요하고 그 기간은 투자비용 때문에 취업도 못하고 상당히 고통스럽습니다.


    게다가 S/W개발에서 SI업종의 경우,

    기술보다 더 큰 난제는 업무인데, 업무를 알아야 병원시스템을 만들든 물류시스템을 만들든 할 거 아닙니까. 업무를 몰라서 분석을 해야 하는 상태에서 대학시절 배웠던 순서도와 DFD로 이런거 설계할 수 있을거 같아요? 결국엔 시행착오이고 삽질입니다. 전공자든 비전공자든 결국엔 코끼리 장님 만지듯 자기가 가진 재량적 눈썰미로 개발 완료하고 산출물 나올때 액티비티 다이어그램 그리고, 시퀀스 다이어그램 그리게 됩니다. 제가 순서도와 DFD 배워서 도움 된 건 '소프트웨어 개발은 이런 식으로 진행되는구나' 정도가 전부입니다.

    우리나라에 S/W전공자가 없어서 OO그룹이 렌터카예약관리 시스템을 AVIS그룹에게 로열티 줘서 수입해왔는줄 알아요? 얼마나 기간을 해야 런칭할 수 있을지 프로젝트에 성공할 자신이 없었기 때문에 일단 도입해서 어떻게 운영되는지 운영관리를 배우고 프로세스를 분석해서 만들려는겁니다. 결국엔 경험이고, 경험은 곧 학습입니다.


    전공자가 비전공자보다 잘 하는 인재가 많은 이유는 딱 하나예요.

    그 친구들은 원래 중고등학교 시절부터 컴퓨터에 미쳤었기 때문에 어셈블러든 크래킹이든 해킹이든 미리 학습을 하고 대학에 입학을 해 전공을 한겁니다. 애초에 프로토콜이라는 걸 알고, 언어에서 왜 타입이 필요한지, 윈도우즈 프로그래밍에서는 왜 인터럽트에 직접 제어를 안 하는지 다 어느정도는 개념을 잡고 간 친구들입니다.


    근데 이상한 점이 있는데요.

    전공자와 비전공자와의 차이로 논점이탈을 하시는 이유가 뭡니까?

    조프로님께서는 분명

    "새로운 프레임웍(도구)에 적응하는 일이나 주로 있지 변하는게 도대체 뭐가 있습니까?"라고 말했지, 전공자와 비전공자간 차이라고 하지는 않았습니다. 논점을 은근히 바꾸시네요?

    "몇십년 전부터 변하지 않는 컴퓨팅의 기본 이론들에 대한 학습이 대학교 학부 과정에서만 탄탄하게 되어 있으면 한 20년 개발자로 일하는데 충분하다고 생각합니다." 라고 주장했잖습니까?


    "윈도우에서 C, C++랑 MFC만 가지고 10년을 일한 사람이라도 Java와 Spring을 몇 개월 안에 높은 수준으로 적응 할 수 있다는 걸 아실텐데요."

    결국엔 학습이 필요하다는 스스로 인정하시네요? 몇 개월 필요한 것이 적응입니까? 적응은 외부에서 도움을 주지 않아도 본인이 사용해보면 스스로 깨닫는게 적응입니다.


    조프로님 같은 주자을 하시던 분이 2003년도에 있었어요. 전산 전공하고 MFC로 키오스크와 게임 개발하시던 분인데, 웹개발 좀 해보시더니 쉽다며 그거 별거 아니라고 큰소리 땅~!땅~! 치면서  APM환경에서 200만원받고 2개월 내에 모 여행사 홈페이지 개발하신다고 웹에이전시 일 도급 받았다가 120만원 선수금 받고 1개월 반 개발해보다가 납기 다가오니까 완성자신 없어서 도망가신 분이요. 그 분이 너무 많이 안해놔서 제가 하루 18시간씩 일하면서 똥 대신 치우고 런칭 시켰습니다. PHP가 C에서 계보를 받으 웹스크립트 언어인데도 틀린게 너무 많고, 자바스크립트는 하나도 안 돼 있어서 버튼을 누를 때마다 브라우저에서 자바스크립트 오류를 뱉어냈습니다. ERD도 죄다 틀려서 있던거 지우고 80%를 다시 그렸습니다.

    전 조프로님 같은 분들이 무섭습니다.

    발주자들에게 전산을 너무 쉽게 주입시키는 분들이 조프로님 같은 분들이라서요.


    그래서 조프로님은 개발자에게 '학습'은 필요없고 '적응'이 필요할 뿐이다. 라고 주장했잖습니까?

    그래서 대학 교수님들이 제일 잘 해야 되는거 아니냐고 제가 질문을 드린건데, 왜 말을 돌리시나요?

    논지의 핵심을 바꾸지 마시구요.


    조프로님 말씀대로면 기업들의 인력 구인란에 '경력O년 + OOO프레임원 + OOO툴 사용 유경력자'가 아니라 '전공자 + 경력O년'으로 구인이 바뀌어 있어야 되는거 아닙니까?

    프레임워크나 툴 사용이라는 '경험'이 전공보다 우선이네요?

    조프로님은 '전산의 기술이 적응의 문제일 뿐'라고 생각하시는데, 저를 포함하여 최종적인 소비자인 기업들은 전공자라고 해서 적응할 수 있을거라고 생각지 않는데요?

    어떻게 생각하세요?

    6
  • 로그인을 하시면 댓글을 등록할 수 있습니다.