전공자와 비전공자간에 차이가 있는 것은 동의하는데, 전공자라고 해서 새로운 기술이나 프레임워크에 '적응'수준으로는 못 따라갑니다. 툴이라면 가능하겠지요. 그런데 프레임워크와 툴은 명백히 다른 것 아닙니까?
전공자가 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년'으로 구인이 바뀌어 있어야 되는거 아닙니까?
프레임워크나 툴 사용이라는 '경험'이 전공보다 우선이네요?
조프로님은 '전산의 기술이 적응의 문제일 뿐'라고 생각하시는데, 저를 포함하여 최종적인 소비자인 기업들은 전공자라고 해서 적응할 수 있을거라고 생각지 않는데요?
어떻게 생각하세요?