프리랜서 두 번째 프로젝트
프로젝트별 업종 구분이 있다.
일반적인 프리랜서들은 하나의 업종을 많이 경험을 해야 단가를 올려가는데 경쟁력이 있기 때문에 하나의 업종을 정해서 계속 그쪽으로 간다.
나는 정직원으로 11년간 같은 거만(B2B 전자결재) 해서 다양한 업종과 다양한 세상을 알고 싶어서 일부러 어디 하나에 정착하지 않고 여기저기 찾아다녔다.
커머스 : 쇼핑 계열
MES : 생산관리 시스템, 제조 공장 계열
유통 : 물류 유통 계열
WMS : 창고 물류 계열
PLM : 제품 수명주기 관리, 프로젝트 관리
나의 첫 번째 프로젝트는 커머스였고, 이번 두 번째 프로젝트는 MES였다.
예전엔 (한국소프트웨어산업협회)에 경력사항과 자격증 등록하여 등급이 매겨졌다.
내가 프리랜서를 할 시기에는 코사 등급은 폐지되고, 경력으로 구분하고 공공기관 프로젝트 일 때는 코사 등급을 제출해야 한다고 들었다.
대략적인 경력으로 등급을 판단하고 제일 중요한 건 관련 프로젝트나 관련 기술을 할 줄 아는 데에 포커스가 맞춰져 있었다.
초급 : 경력 3~4년
중급 : 경력 5년~8년
고급 : 경력 9년부터
특급 : 거의 없지만 간간이 특급이라는 분들은 경력 20년 넘으신 부장급 분들이었다.
등급별 초와 상으로도 단가를 구분하였다.
예를 들어 초급초, 초급상 이렇게 단가 금액이 조금씩 차이가 있었다.
개발자 단가는 코로나 이후 100만 원씩 인상되었다가 현재 R&D 예산 삭감으로 프로젝트가 많이 없어서 제자리로 돌아오고, 요즘 경기 침체로 프로젝트가 너무 없어서 단가는 기존 마이너스 200만 원 깎였다고 들었다.
초급은 대략 300만 원 ~ 400만 원
중급은 대략 500만 원 ~ 600만 원
고급은 대략 600만 원 ~ 능력껏 재량껏
특급은 대략 900만 원 ~ 능력껏 재량껏
요즘은 정말 프로젝트가 없어서 해당 단가에서 50만 원 더 깎였을 수도 있을 것 같다.
고급부터는 경력 9년부터는 정말 능력껏 재량껏 단가가 천차만별이다.
현재까지도 연락하고 지내는 책임님 한 분은 월 단가 천만 원이라고 한다.
그 당시 나는 경력 11년 고급이었지만 프리랜서 프로젝트 경험이 없어서 첫 번째, 두 번째 프로젝트 모두 중급으로 투입되었다.
단가는 500만 원대에서 프로젝트 하나하나 끝낼 때마다 조금씩 올라가고 있었다.
단가에 대해서는 나중에 더 깊게 접근하여 기술할 예정이다.
첫 번째 프로젝트 때 주문/결재 주문 파트에 프리랜서 과장님이 나보고 거기 가지 말라는 얘기를 했다.
이유를 물었더니 "기존 PM이 교체됐다는 소문이 있다"라고 이런 데는 가는 거 아니라고 하셨다.
기분이 쎄하다고 해야 할까 다음 프로젝트도 고생하겠구나란 생각을 먼저 하게 되었다.
그래도 이번 프로젝트에서 제일 다행이었던 것은 DB(DataBase)가 정직원 때 사용하던 MS-SQL 이었다.
정직원일 때 11년 동안 쓰던 MS-SQL은 충분히 자신감이 있었다.
인터뷰를 보러 갔을 때 설계자분이 직접 인터뷰를 보셨다.
질문사항이 데이터 속도 개선, 쿼리 튜닝할 줄 아는지 물어보았다.
나중에 운영 반영 후에 속도 개선이 필요할 때 해달라고 하셨다.
특이한 질문 사항은 없고 바로 투입 예정 일자를 잡았다.
투입 첫날 사무실을 보고 첫 번째 프로젝트랑 너무 비교가 되었다.
첫 번째 프로젝트는 대기업 본사 큰 건물에 안면인식을 해서 사무실을 들어갔지만 여기는 작은 건물에 엘리베이터는 하나고 화장실도 대변기가 하나밖에 없었다.
반면에 사무실에 사람들은 대략 30~40명이 있었다.
내가 투입되기 전에 다른 프리랜서 두 명은 첫날 사무실 환경을 보고 다음날 안 하겠다고 바로 계약 해지 요청이 왔다고 들었다.
충분히 이해가 갔다.
해도 해도 너무 열 약했다.
만약 급하게 배라도 아프면 화장실에 사람이 있으면 근처 역으로 뛰어가야 했다.
원래는 지방에서 프로젝트하기로 했지만 개발자들이 워낙 안 뽑혀서 동대문 쪽에 사무실을 임대하였다고 들었다.
사실 첫 번째 프로젝트도 6개월 계약직이었기 때문에 내 회사도 아니었고 쓸데없는 소속감을 느끼고 있다고 생각했다.
투입되어 내가 맡은 업무의 핵심 업무는 일 마감 화면이었다.
하루에 진행된 생산실적, 사용실적, 입고 실적 기타 실적들 10개에 대해 데이터를 정확히 확인하고 ERP에 전송 후 정상적으로 전송되면 당일 마감을 치는 화면이었다.
ERP(Enterprise Performance Management)란 전사적 지원 관리라 하며
대기업은 모두 각자의 ERP를 가지고 있다. HR, 제조, 공급망, 재무, 회계 등 다양한 종류의 데이터를 관리하는 시스템이다.
화면 개발보단 실적별로 ERP 전송 전에 선행으로 거쳐야 하는 EAI(Enterprise Application Integration) 이란 시스템과 I/F(인터페이스) 연동, 개발을 해야 했다.
EAI는 데이터를 교환하고 제공하는 서비스를 호출하여 기업 내 애플리케이션 사이의 통신을 제공하는 프로세스이다.
ERP 전송 시 EAI에서 데이터를 충분히 검증을 하고 ERP로 전송되는 구조였다.
일반적인 프로젝트는 개발 일정을 다 마치고 통합 테스트를 진행한다.
하지만 여기는 개발 기간이지만 1차~3차 통테(통합 테스트)를 진행하였다.
내가 맡은 일 마감 업무는 중요도가 가장 높아서 1차~3차 통테까지 모두 포함되어 내가 개발한 버전마다 계속 현업과 PI들이 테스트를 진행하면서 문제가 생기면 PM이 나에게 뛰어와서 오류 원인 분석을 해달라고 하셨다.
말씀만 하시고 회의실로 가시면 되는데, 내 등 뒤에서 PM과 설계자가 서있었다.
너무 긴장돼서 디버깅도 제대로 안되고 백지상태가 되어서
"제가 빨리 확인하겠습니다. 회의실에 돌아가 계시면 안 될까요?라고 하니
PM은 내 등을 토닥이시면서
"주 과장 이런 상황도 이겨내야 해~ 당황하지 말고 원인 먼저 찾아서 말해줘요"라고 하셨다.
처음 발표나 교육할 때처럼 두근두근 떨렸던 기분이 이것도 두 번, 세 번 겪고 나니 뒤에 누가 있어도 페이스 유지가 가능하게 되었다.
총 투입 기간 6개월 중 두 달 동안 일 마감 관련 개발을 완료하고, 오픈하고 나서도 일 마감 관련 업무는 철수하기 전날까지 자잘하게 수정을 했던 것 같다.
같은 파트에 프리랜서 남자 과장님 한 분이 계셨는데 이분은 이미 세 번 정도 대기업 MES 프로젝트 하신 분으로 경험이 많으셨다.
잘 모르는 용어에 대해 물어보면 진철 하게 알려주시고,
ERP 전송 로직을 만들었다고 나중에 ERP 전송할 때 참고하라고 하셨다.
당연히 잘 만드셨겠지라고 믿은 내 잘못이 크다.
일 마감 2차 통테(통합테스트) 때 원인 모를 오류가 발생하는데 ERP 전송하는 로직을 과장님이 개발한 걸 가져다 썼는데 의심을 안 하다가 야근하면서 디버깅 모드로 한 줄 한 줄 확인을 해보니 버그가 있었다.
그 과장님 쪽 화면에 ERP 전송하는 부분을 테스트해 보니 해당 버그가 날 일이 없었다.
전송하는 데이터 모두 필수 데이터라서 공백이나 빈값이 생길 일이 없었다.
오류를 찾는데 너무 오랜 시간을 소비했다.
그렇다고 "과장님 소스에 버그 있어요. 그거 때문에 찾는데 고생했어요."라고 말하는 것도 웃긴 얘기였다.
일 마감 자체가 워낙 전송하는 실적들이 많으니 데이터에 대한 이해를 좀 더 파악하지 못했던 내 잘못이었다.
분명히 참고하라고 했지 완전히 가져다 쓰라곤 안 하셨기 때문이다.
과장님에 대한 불신보단 내 잘못을 반성하고 이번 일을 경험을 토대로 직접 코딩하고 디버깅하는 습관이 생겼다.
다른 사람의 소스를 가져다 써서 오류를 찾는 시간보다 내가 직접 코딩한 소스에 오류를 찾는 시간이 훨씬 빠르단 걸 깨달았다.
다른 파트에 성격이 활발하신 여자 과장님이 계셨다.
개발자 경력 5년쯤 결혼하시고, 딸 셋을 낳으시고 7년 동안 경력단절되고 이번에 프리랜서로 처음 오신 분이었다.
나와 비슷하게 Java Spring도 처음이고 DB도 모르는 상태로 들어오셨다.
나도 야근을 자주 했지만 여자 과장님도 항상 야근을 하셨다.
주말에도 계속 출근하셨던 것 같다.
투입된 지 3개월쯤 야근을 하고 있는데 여자 과장님이 펑펑 울고 계셨다.
무슨 일이냐고 물어보니 설계자가 가공 안된 엑셀 데이터를 넘겨줘서 가공해서 DB에 적재하라고 지시하였는데, 엑셀 안에서 vba(엑셀 매크로를 작성하기 위한 프로그래밍 언어)까지 쓰면서 데이터 가공을 맞췄는데 DB 적재를 할 줄 몰라서 하루 종일 해도 해도 데이터가 많아서인지 DB 툴이 멈춰서 답은 안 보이고 속상해서 울고 있었다고 하셨다.
나는 바로 방법을 캐치하고,
여자 과장님에게 MS-SQL Bulk Insert라는 기능을 알려주었다.
적재할 파일을 DB 서버에 직접 원격으로 들어가서 적재할 파일을 특정 경로에 넣고
파일 경로의 파일을 통째로 적재하는 기능을 하나하나 천천히 알려드렸다.
그 이후에도 개발 일정을 못 맞추셔서 나 포함 개발자 2명이 5주 동안 지원해 준 적이 있다.
그때도 정말 미안하다고 진짜 최선을 다하고 있다고 우셨는데 나도 첫 프로젝트 때의 그 무력감과 막막함을 겪어봐서 그런지 그 마음이 이해가 갔다.
지금은 강남, 역삼 쪽 프로젝트에 제대로 자리를 잡으셔서 계속 프리랜서를 하고 계시다.
아직도 연락하고 지내는 분이고 항상 연락 올 때마다 "차장님 언제 PM 되세요? 나중에 꼭 신세 갚을게요. 그때가 되면 저 무조건 갑니다."라고 말씀하셨다.
모든 게 첫 번째 프로젝트랑은 많이 달랐다.
이 모든 게 프리랜서로서의 프로젝트 경험이라 생각하고 배울 점은 배우고 고칠 점은 고쳐가면서 조금씩 적응해가고 있었다.