세 번째 SI 프로젝트 (feat. 최신 기술)

어느새 세 번째로 투입되는 SI 프로젝트이다.

원래 본사 사무실에서 솔루션을 개발하고 있었는데, 갑자기 급하게 진행할 프로젝트가 있다고 했다. 투입된지 이틀째, 킥 오프 회식을 하고 대략적인 프로젝트 설명을 들은 게 전부다.

하지만 이미 잡힌 계획 상으로는 다음 달 중순까지 화면 설계 및 DB 설계와 더불어, 딸려나오는 산출물(설계서, 테스트 결과서 등)까지 작성해야 한단다. 그것도 나 혼자서 한 파트를 총 담당해서. 그렇게 해서 10월 중순~말 경에 가오픈(베타 서비스)을 해야 한다고?

높으신 분들께서 상상의 나래를 펼치며 세웠을 계획을 듣고 나니 힘이 쭉 빠진다. 두 달 만에 설계부터 개발까지 해서 가오픈? 솔직히 자신이 없다. 아니, 무슨 작성해야 하는 문서가 그렇게 많은지. 프로젝트 기간은 왜 이렇게 짧은지. 월급은 200밖에 못 받는데 저렇게까지 해야 하는지. 한 사람에게 일을 가중시키면서까지 비용을 아끼는 것이 그렇게까지 중요한지.

원래 SI라는 게 항상 이런 식인가?

이틀만에 벌써 지치기 시작했다.

경력 2년차인 개발자 한 명이 그 많은 설계서와 문서를 작성하고, 개발도 프론트엔드, 백엔드, DB까지 해내야 하다니. 혹자는 말도 안 된다고 생각하지만, 실제로 진행되고 있고 내가 겪고 있는 과정이다(불과 이틀만에).

내가 개발에 입문하고 배워온 비교적 최근 지식에 의하면 항상 프론트엔드, 백엔드라는 용어로 구분이 되었다. 그에 따른 개발 스택이 따로 존재했다.

지금 속해있는 지방 SI 세상에는 개발 스택이라는 용어도 쓰지 않는다. 서버는 무엇을 쓰고, 언어는 Java(거의 대부분), DB는 뭘 쓰고. 개요서나 설계서 어디에도 프론트엔드 혹은 자바스크립트라는 용어는 존재하지도 않는다. 그들에게 난 백엔드 개발자 혹은 풀스택 개발자가 아니라 ‘자바 개발자’ 혹은 그냥 ‘개발자’로 칭한다.

퍼블리싱이라는 개념도 모호하고, 크게 ‘개발자’ 또는 ‘디자이너’로 나눈다. 그렇기 때문에 ‘개발자’는 설계하고 개발하는 사람, ‘디자이너’는 포토샵으로 시안을 만들거나 버튼, 혹은 삽화를 제작하는 역할을 한다. 요즘은 그나마 퍼블리싱까지 커버하기는 한다.

내가 속한 회사에서는 주로 해당 지역의 대기업 프로젝트를 수주해서 진행하는 경우가 많다. 그곳에 투입되면 많은 보안 관련 절차들을 진행한다. 보안 프로그램을 깔아야 한다는 얘기다. 수많은 보안 프로그램이 설치된 노트북은 하루에도 몇 번씩 사용하던 응용 프로그램을 껐다 켜야 하기 일쑤다.

구글링은 가능하지만, 많은 IT 회사들이 사용하는 협업 프로그램은 사이트에 접속조차 되지 않는다. 보안에 위배되기 때문에 그렇단다.

아직도 형상 관리 도구로 Git을 사용하지 않는 곳도 많다. 이번 프로젝트도 SVN으로 소스를 관리해야 할 것 같다.

SI 개발자의 유형

앞서 두 번의 프로젝트를 경험해본 바에 의하면, 겪어본 개발자의 유형은 이렇다. (일반화는 아니다)

  1. 주어진 개발 환경에 잘 적응하며(레거시가 레거시인 지도 모르는) 개발하는 대다수의 개발자
  2. 레거시를 알고, 바꾸고 싶지만 어쩔 수 없이 개발하는 개발자
  3. 개발 환경을 바꾸고 싶어하는 소수의 나같은 개발자

내가 잘 났다는 말은 ‘절대’ 아니다. 열악한 개발 환경을 바꾸려는 시도라도 해보려면 같은 생각을 가진 개발자들이 많이 필요하다. 함께 고민하고, 적극적으로 의견을 주장해야 한다고 생각한다. 그러나 현실은 그렇지 못하다.

최신 기술은 나 말곤 아무도 관심 없나?

솔직히 여기서 그냥 쭉 개발한다면 스프링 부트니, JPA니, 리액트니 하는 최신 기술을 배울 필요가 없다. 써먹을 기회가 없기 때문이다. 심지어 Node.js나 ES6는 이제 최신 기술이라고 얘기하기도 민망한 수준이라고 생각하지만.

웃긴 건 최근에 다녀온 프로젝트의 개발 스택 중 DB는 비교적 굉장히 최신이다. Hadoop이나 PPAS 많이 쓴다. 나머지는 레거시 투성이다. 거의 무조건 jQuery를 사용하고, UI 라이브러리는 없는 경우가 많고, 하드 코딩으로 때운다. CSS는 아직도 float이 난무한다. flex? grid? 꿈같은 얘기다. SCSS의 존재를 아는 사람은 없다고 여겨진다.

온라인 강의 코스만 봐도 React, Vue, Graphql이라는 용어가 익숙하지만, 이 곳에 있는 동안 동료 개발자들과 몇 마디 나눠보고, 개발 스택을 주제로 대화를 시도하는 것을 포기했다.

사용하는 IDE는 (거의) 무조건 Eclipse이다. 이클립스에서만 원활하게 작성이 가능한 어느 특정 프레임워크를 사용하는 덕분이다. 대세가 된지 몇 년이 된 Visual Studio Code는 나만 아는 프로그램인 것 같았다. 나는 사용법을 까먹을까봐서라도 백엔드 단을 제외하고, View(JSP, JavaScript)단이나 CSS, Query를 작성할 때 일부러 꾸준히 사용했다. 모 동료 개발자는 사용법을 몰라서 안 쓴다고.

최신 기술들을 적재적소에 적용한다면 개발이 상당히 편해질 것이고, 그에 따라 SI 특성상 촉박한 개발 일정을 조금이나마 당길 수 있을 것 같은데 자꾸만 ‘유지보수의 어려움’을 이유로 도입하지 않는다. 내가 생각하는 개발자는 끊임없이 지식을 추구해야 하는 직업인데, 배운 지식들을 써먹지 못하니 개발이 즐거울 수가 없다. 적성에 맞아 시작한 개발자 커리어는 일을 할 수록 점점 열정이 식어간다.

여기서 하루 빨리 도망가야 한다는 생각이 자꾸 드는 이유다. 토이 프로젝트를 다시 적극적으로 실행에 옮겨야겠다.

그래도 나에게 주어진 소중한 기회

이러한 환경 속에서 무언가를 바꿀 수 있을까를 고민하기 시작했다. 함께 투입된 부장님께서 생각이 상당히 젊으신 분이라서 첫 날부터 뭔가 좋거나 쓰고 싶은 게 있으면 제안을 부탁하신 것이 계기였다. 그 말을 들은 순간 머릿속에는,

‘최소한 Babel은 무조건 써야 한다.’

‘여기서 JSP 대신 React를 사용할 수 있을까?’ 처음부터 시도하고 적용해 보자.’

‘불가하다면 제발 Bootstrap이라도 사용하자!’

라는 생각에 도달했다. 문서 작성이 끝나고 코딩에 들어가면 적극적으로 시도해 보자.

일단 이틀간 프로젝트 진행 과정은 여기까지.


어제 놓친 우아한 테크세미나

오늘 퇴근하고 메일을 확인하다가 어제 진행된 우아한 테크세미나를 놓친 것을 확인했는데, 다행히 유튜브 링크가 걸려있었다.

링크 타고 들어갔는데 너무나도 공감이 되는 영상을 발견했다.

박재성 강사님께서 독하게 말씀해 주셔서(더 독하게 하셨어도 좋았을 것 같다) 나를 비롯한 수많은 주니어 SI 개발자에게 사이다같은 기분을 느끼게 해 주셨다고 생각하는 영상이다.

사장님에게는 죄송하지만, 나도 공감하고 염원하는 바다. 이 업계 중에서 특히 개발 교육 인프라가 부족한 지방 SI는 바닥을 치고 올라올 필요가 있다고 생각한다.


Written by@Redonearth
Web Front-End Developer이자 4년차 개발자. 분당에 서식 중.

InstagramGitHubMediumTwitterFacebookLinkedIn