본문 바로가기

일상

공부를 계속 해야 하는 이유

초등학교 6년 - 중학교 3년 - 고등학교 3년 도합 12년 뿐만 아니라 대학교 진학을 하게 되면 2~4년은 추가 된다.

이렇게까지 공부를 했는데 또, 공부를 해야 한다?

요즘은 취업 후, 제대로 된 공부가 시작된다는 말이 있다.
왜 그런걸까?

1. 학교에서 배운 내용이 실무에서 원하는 것과 달라서

대리 - "영어나 제2외국어 할 줄 아는 거 있나?"
사원 - "없습니다.."
대리 - "그럼 자격증은?"
사원 - "컴활 2급 자격증 있습니다."
대리 - "컴퓨터.. 활용... 능력.. 잘 살아왔네.."


tvN 드라마 미생의 한 장면이다.
대부분의 직장이 그런듯이 학교에서 무엇을 했는지 보다는 외부 경험을 물어보는 것이 대다수이다.


내가 다니는 직장도 학교에서 배운대로 이중 for문, System 함수를 사용했다간 왜 이렇게 썼는지 제대로된 이유가 없으면 더 좋은 방법을 찾으라는 말을 한다.

학교는 일을 하는 기초를 배운것이고 응용 능력은 따로 배워야한다.
요즘은 이것을 알고 인터넷강의나 학원등 적극적으로 이용한다.


나도 처음에 취업을 준비할때 Spring 부터 jQuery 같은 실무에서 쓰는 것을 배우고 취업을 했지만, 처음부터 Nexacro라는 것을 지정 받게 되었다.
javascript 기반이라 처음 방식만 알게 되면 쉽게 사용할 수 있지만 면접떄 처음 써본다고 하면 일단 마이너스로 시작한다.
현실의 벽은 엄청 높은 것을 처음부터 부딪히게 되고 공부의 필요성을 알게된다.


2. 협업들과 얘기하면서 대화가 되지 않을 때

제가 다닌 SI 에서는 파견을 가기전에 중간 업체와의 면접을 통과해야 실무로 투입이 되었다.


SI 아웃소싱 면접으로 받은 질문들을 정리한 것이다.

처음에 받은 질문은 Oracle에서 delete로 제거 후, commit을 했는데 복구 하는 방법은?
단, 백업은 없습니다.

... 처음에는 답변을 못했다.

지금 생각해보면 테이블에 TimeStamp로 시간대별로 이동하여 insert을 칠것같다고 얘기를 할것이다.

SELECT * FROM TABLE_NAME AS OF TIMESTAMP((SYSDATE-1/24));


회사에 면접보고 합격했는데 다른 면접도 봐야하는 것에 나는 충격이 이만 저만 아니였다.
내가 돈을 벌기 위해서는 한가지 일에 만족을 하였다고 거기서 끝나는게 아니라는 것이 여기서 배우게 되었다.


3. 내가 목표하는 바를 위해서



새해가 되면 여러가지 목표가 생긴다.
어떤 분은 금연, 어떤 분은 다이어트 같은 목표가 생기는데 나는 부지런한 사람이 되는것이 목표였다.
취업 준비생일 때는 집에서 2주동안 나오지 않은적도 있었다
어느날 7시정도에 서울로 자격증 시험을 치기 위해 주말 일찍 나왔는데 생각보다 사람이 없었다.

평소에 이렇게 생활하면 부지런한 사람이 될 수 있을 것같은데? 라는 생각이 들었다.

그 다음날에는 아침 7시에 나와 24시간 카페에 들려 공부를 하는데 당연히 손님은 나 혼자라고 생각했지만 창가 구석쪽에는 항상 나보다 일찍 자리를 잡은 사람은 존재헀다.


이번에는 1시간 더 일찍 일어나 카페를 가보니 내가 처음인 손님이였고 너무 부지런한 사람이 된 것같아 기분이 좋았다.
하지만, 서울로 국비학원을 다닐때 정말 일찍 일어나야 9시안에 도착을 해야 했고 강남권 지하철을 타본 사람은 알겠지만 출근시간은 헬이다.
그것을 줄이고자 카페에서 공부하는 것보다 더 일찍 일어나 버스를 타러가는데 내 말도안된 생각을 가졌다는 것을 알게되었다.


나는 내 주위 반경에서만 부지런한 사람이 였던것이였다.
점점 반경을 넓힐 수 록 말도안되게 부지런한 사람들이 많은 것이다.

공부도 그렇다고 할 수 있다.
내가 아무리 SI를 하면서 Spring MVC를 점점 고도화하게 알게 되어도 파견나간 팀 안에서만 잘한다고 얘기를 할 수 있는것이다.



스프링 홈페이지를 보면 Web apps 말고도 다른 기능들은 엄청나게 많다.
MVC만 잘한다고 "나 스프링 프레임워크 잘 다뤄" 라는 말은 할 수 없는 것이 맞는 말이다.

개발자 이력서를 보면 당신의 언어의 대한 것을 상/중/하 로 써주세요 라는 이력서 템플릿이 있다.
여기서 내가 Spring MVC를 10~20년을 써도 중이나 하 정도에 만족할 수 없다.
내가 원하는건 스프링 프레임워크든 자바든 상을 써야 잘한다는 말을 할 텐데 실무에서만 배우면 우물안의 개구리 신세를 감추지 못하는 것이기 때문이다.


4. SI / SM 의 고질적인 문제

저번 블로그에도 말했듯이 프로그래밍을 배우면 취업으로 가고싶은 분야는 되게 다양해 진다.

여기서 SI/SM 의 장점은 다양한 경험을 하여 좋다는 장점이 있는데 내가 SI을 하면서 느끼는 것이 있는데, 전혀 다양하지가 않다.
일반적인 루트는 SI (3개월~6개월) 후, SM(n 년차) 가 되는 경우가 많다.

만약에 내가 코볼이라는 언어로 개발을 한 상태였다면 코볼로 몇년을 유지보수 후, 다른 곳을 가야하는데 더 이상 코볼은 취업 시장에서 배제가 되어 버린 상태라면 경력이 단절이 된것과 같은 신세이다.

또, 내 SM 경력에 대해 말씀을 드리면, Servlet, java1.5 을 쓰는 너무 낙후된 환경에서 2년동안 있었다.
물론 Spring을 쓰든 Servlet 을 쓰든 배울 점이야 신입에서는 다 좋은 경험이지만, 유지보수를 하면서 너무 서비스 지원 중단이라는 것을 두번이나 느끼면서 알게 되었다.

Miplatform 서비스 지원 중단, Flash 서비스 지원 중단 연속으로 두개를 지원 중단을 맞으니 경력을 잘 쌓지 못한 것같는 생각이 들었다.


java 공부후, 실무에 적용을 시켜보고 싶은데 1.5은 Stream이나 람다는 적용이 안된다.
같이 유지보수 하시는분들도 이 프로젝트가 없어지거나 차세대가 되면 퇴사한다는 얘기도 많이 했다.

나는 이제 개발을 시작했는데 프로젝트가 사라지면 신입보다는 단가가 비싼대 아무것도 못하네? 라는 말이 나올 까봐 이때 부터 공부를 한것같다.



5. PM, PL이 되면..


내가 지금은 초급 개발자이지만 언젠가는 PM이 되고, PL이 될것이다.
그럼 밑에 개발자들에게 설명도 잘 해줘야 겠고, 프로젝트 관리라던지 커뮤니케이션 능력을 잘 펼쳐야 한다.

내가 초급일때는 SQL 실력이 rownum을 이용하여 페이징하는 수준밖에 안되었는데 실무는 PL/SQL 로 INSERT을 5~6개씩 하는 작업들을 했다.
하필 또, 오라클이 아닌 티벨로로 개발하는 일이라 초반에 뭘해야할지 몰라 티베로 책일 읽었다. ( 인터넷이 안되는 환경에서 개발 )

declare
    v_num int;
    v_sum int:=0;
    
begin
    v_num:=1;
    loop
        v_sum := v_sum+v_num;
        if v_num >= 10 then
            exit;
        end if;
        v_num := v_num+1;
       
    end loop;
    dbms_output.put_line(v_sum);
exception
    when others then
        dbms_output.put_line(sqlcode||sqlerrm);
end;
/
show serveroutput; 
set serveroutput on;


처음에 갈팡지팔 못하던 내게 친절하게 알려주던게 PM분이였다.


개그맨 양세형처럼 개그도 되게 잘 쳐주시고 남에게 기분 안나쁘게 하는게 그 분의 타입이였다.
나중에 듣기로는 주말에도 나와 일을 하고 퇴근도 칼퇴가 아닌 7~8시에 퇴근을 평소에 하셨다.
결국 프로젝트는 정상적으로 마무리 되었고 프로젝트 기간보다 10일 정도 빨리 끝나고 회식으로 팀원들의 분위기로 잘 맞춰주었다.

내가 만약 그분의 역할을 대신 했더라면 이렇게 할 수 있었을까? 라는 생각이 들었다.
나는 내성적인 성격에 먼저 말을 못할 것같고 그렇다고 Spring이나 UI나, DB을 그렇게 빠삭하게 아는 것은 아니다.

이직하는 곳에서 만난 PM님은 김슬아 대표님처럼 성실한 사람이였다.


내가 목표하고자 했던것 처럼 부지런하여 9시가 출근이면 8시 정도에 출근을 하셨고, 회의와 컴퓨터로 작업하는 모습이 많이 보였다.
SI 기본은 문서작업이다. 기획이나 메일 등 여러한 것들을 정리하셨고 개발자들은 잠깐 쉬는 시간이 있으면 주식 얘기를 하는게 기본이였다면 PM은 놓친게 없는지 확인하는 작업을 가졌다.

맨 처음에는 프로젝트 4~5개를 담당하고 있다고 하여서 넘사벽처럼 느끼게 되었다.
퇴근도 공휴일 전날에는 개발자들을 오전에 보내고 오후에 혼자 남아 일 하다가 가시고 그랬다.
프로젝트가 시작 할때는 내가 집에서 회사까지 먼걸 알고 따로 재택근무를 하라고 얘기까지 해주시고 인력관리까지 완벽하게 해주셨다.


내가 물 경력만 쌓게 되어 PM이 되었을 때, 다른분이 이렇게 생각을 안할것은 느낌이 확 들었다.


내가 롤이라는 게임과 쿠키런이라는 게임을 좋아했다.
여기에 시간을 굉장히 많이 쏟은 편이다. 근데 내가 저 두분 처럼 되기 위해서는 이게 과연 맞은 선택일까? 라는 생각이 들었다.
전부 삭제를 하고 퇴근 후 모든 시간을 교육에 모두 쏟게 되는 계기가 된것같다.

이런 이유때문에 프로젝트를 하면 주변의 사람을 롤 모델로 삼고 그분을 따라잡기 위해 노력을 하기 시작했다.
지금 힘들다고 생각해도 나중에 공부를 안하면 그 동안 쌓아둔 불안 요소가 폭발을 할 수 있다.
조금조금 지식을 쌓아야 그것을 해결하는 방법을 알아가지 않을 까 싶다.


6. 연봉을 위해서

주말에는 여자친구와 맛집을 자주 간다.
맛집을 자주 가시는 분은 알겠지만 정말 맛없는데 과장 광고로 인해 맛집이라고 거짓된 정보가 섞인 경우가 많다.

저번주에는 칼국수집에 갔었는데 면은 거의 삶아지지 않아 밀가루 맛이 확 나고 테이블은 전 사람이 쓰던 고춧가루와 머리카락으로 더러운 느낌이 나, 한 젓갈 뜨고 자주가는 엽기 떢볶이를 먹으러 갔었다.

칼국수집에 냈던 돈이 정말 아까웠다.
어쨌든 내가 선택해서 그 집으로 밥을 먹으러 갔고 식당 주인에게 맛없어서 돈 못내겠다는 말도 못한 내가 잘못이긴하다.

예시를 밥으로 했지만 다른 선택에서 내가 잘못된 선택을 할 수 있다. 예를 들어 인테리어나 가전제품 구매
이럴때는 어쩔 수 없이 돈을 써야한다.
처음부터 좋은 곳을 골랐으면 하는 것도 있지만, 환경이나 사람의 컨디션의 따라 결과물은 제각각으로 나눠진다고 생각한다.
14년도의 박지성과 2002년 박지성이 다른 것처럼 말이다.


이 때문에 돈은 많으면 많을 수록 좋은것이다.


7. 직업의 특성



요구사항으로 어떤 것이 오면 해결할 수 있는 건 해결을 해야한다.
프로그래밍은 오랫동안 배워야 그것이 나중에 실무로 발휘되는 일이다.

예전에 현업분께서 메인화면 예쁘게 만들어 달락고 한적이 있다.

그말을 듣고 당황하여 해결을 해야 하는데 당장 해결이 아니라 1달정도 걸렸던 적이 있다.
"와이어 프레임", "SASS", "이펙티브 웹" 등 디자인 관련을 공부하는데 시간이 걸린것이 있다.
내가 만약 디자인 관련하여 부스트랩 말고 바로 알았더라면 바로 끝냈었을 것이다.

프로젝트 시작전에도 이런 경우가 있다.
"Swagger UI" 쓸줄 알아요? "Junit" 으로 test code 짜보셨나요?
가능하다고 하면 실무 경험이 있는지 그냥 인터넷 찾아서 안다고 하는 건지에 따라 프로젝트 투입 여부가 결정 되기도 한다.
근데 내가 jsp만 안다면 그건만 쓰고 더 확장성있는 방향으로 넓히지 못하는 것이다.

 
결론
 
결론적으로 일을 하면서 배울 수 있다는 건은 정말 좋은 케이스이다.
하지만 그것이 잘못된 방법이여서 잘못된 습관이 쌓이다보면 고치기 어렵기 떄문에 따로 공부를하면서 그 코드를 작성하는 이유에 대해 생각을 해야한다.
 

일을 하면서 코드를 못짜는 분들은 계속 못짜는 악순환이 이어진다.
피아니스트가 피아노를 집에와서도 연습하듯 우리도 돈을 받고 일하는 직업이니 만큼 연습을 해야한다는게 제 결론입니다.