brunch

You can make anything
by writing

C.S.Lewis

by 바라 봄 Sep 27. 2024

이스오타 : 재입사, 변화의 주인공이 되다.

중소기업 5년 ~ 11년의 이야기



재입사


재입사를 하고 보니 개발팀에 새로운 신입사원 두 명이 있었다.


이 B가 나간 시점이라 그런지 개발팀 분위기가 화기애애해 보였다.


우리 독수리 오형제는 모두 대리가 되어 있었다.


재입사 하는 날 상장하고 들어오셨던 차장님 한 분이 퇴사하는 날이었다.


반갑게 차장님께 인사를 드리니 커피 한잔하러 가자고 하셨다.


그러면서 대뜸 차장님께서 하시는 말씀이


"이게 다 부사장 작품이야~ 너에겐 악감정은 없어. 잘 먹고 잘 살아"라고 하셨다.


이게 무슨 말인가 차장님이 퇴사하는지도 몰랐었는데


회사 분위기를 보니 신입 때 멤버들이 상장까지 올라오면서 대리급 들의 텃세와 부사장님이 변화와 혁신을 주장해도 모두 반대하거나 적대하는 분위기가 보였다.


재입사 해서 기분이 좋았는데 출근 첫날부터 뭔가 이상하다는 걸 느꼈다.



물갈이 실패


회사 분위기가 이상하다는 걸 느끼고 이B에게 물어봤다.


이B는 "부사장님이 8X 년생 친구들 자를 계획을 하는 것 같아요."라고 하셨다.


조심스럽게 대상자를 물어보니 일단 우리 개발팀은 독수리 오형제 나 빼고 4명 다라고 하신다.


경영지원팀, 콜센터 쪽도 텃세 심하게 부리는 몇몇을 언급하셨다.


도대체가 이해가 되지 않는 상황이었다.


내가 없던 2년 사이 무슨 일이 일어난 건지도 의아했다.


부사장님은 살생부를 사장님께 건의하셨지만 사장님은 회사 성장에 기여한 사람들을 내치는 거를 강하게 반대하셨고 물갈이 계획은 실패로 돌아갔다.



추가 등장인물


이S


우리 팀 막내 박 S와 같이 입사하였지만 나이가 어리단 이후로 잡일과 심부름은 이S가 전담으로 하고 있었다.


개발도 잘하고 성격도 좋고 영D, 동D가 마음에 들어 하고 그만큼 싹싹하고 능력도 좋은 친구였다.


나도 지금의 와이프 친한 동생을 소개해 줄 정도로 아주 괜찮은 친구였다.


대리를 진급하고 갑자기 경찰 공무원이 되겠다며 퇴사한 후 연락이 끊겼다.  



박S


이S와 같이 입사했지만 나보다 두 살이 많았다.


SM 업무만 해서 영D, 동D가 언제 개발할래 항상 무시했었다.


하지만 나와 프로젝트를 몇 개 하면서 내가 아는 모든 걸 가르쳐 줬다.


별명은 "카피 닌자"였다.


여기저기 소스를 막 가져다가 쓰는데 소스를 이해를 못 하지만 오류도 없이 잘 돌아가서 다들 감탄을 금치 못하며 별명을 "카피 닌자"로 불렀다.


퇴사 후 경쟁사로 들어갔고 프리랜서의 길을 추천하였지만 다른 일을 하겠다며 어느 순간 연락이 끊겼다.



교육


재입사 하자마자 제일 먼저 한 건 대략적인 업무 파악과 교육이었다.


채용 쪽에서 사용한 jQuery 관련하여 개발팀 개발자들에게  교육을 진행했다.


민B가 바로 실무에 적용할 정도로 아주 자세히 교육해달라고 하셔서


내가 최대한 아는 부분까지 머릿속에서 짜내어 PT를 하고 실습도 하면서 교육을 진행했다.


현재 회사는 jQuery도 사용하지 않았는데 그때 당시 신기술이었기에 모두가 알아놓으면 좋을 거라고 생각했다.


그때 당시는 민B의 큰 그림을 보지 못했다.



인프라 재구축


믿기지 않겠지만 상장까지 한 중소기업의 서버 인프라가 웹 서버 한 대, DB(DataBase) 서버 한 대가 다였다.


그나마 최초에 민B가 입사했을 때 대략적인 데이터 흐름을 보시고 민B가 사장님께 DB 서버 업그레이드에 대한 필요성을 강조하여 3천만 원짜리 DB 서버로 교체하였었다.


그 당시 (2009년) 3천만 원짜리 서버 면 글 최상의 스펙이었다고 이해하면 된다.


채용 회사 있을 때는 웹 서버가 8대, DB 서버 3대, 이미지 서버 2대가 있었다.


민B는 재입사 하시고 인프라 먼저 손을 봐야 한다고 생각하셨다.


B2B 전자결재를 사용하는 기업회원은 대략 7만 회원사였고 특히 월말에 거래가 많기 때문에 월말에 거래가 원활하지 않으면 월말에 반드시 업체 간 계산서를 끊어야 하는데 거래가 밀리거나 서버 문제가 발생하면 업체들에게 어마어마한 클레임을 받았었다.


민B는 웹 서버 2대, DB 서버는 현행 유지, 이미지 서버 1대, 인증서버 1대로 인프라를 구성하고 L4 스위치(서버 부하 분산 처리하는 장비)로 웹 서버가 하나 죽어도 다른 서버로 넘어가도록 로드밸런싱을 구성하였다.


기타 특정 은행 전용 서버도 여러 대 구성 중이었다.


물론 우리 자산이 아닌 은행 자산이어서 서비스가 잘 구동되는지 체크만 하였다.


요즘은 AWS(아마존 웹 서비스)라서 잘 이해가 안 가겠지만 우리는 역삼 IDC에 서버를 세팅하여 데이터 센터에 운영을 맡겼었다.


인프라 재구축은 우리 회사가 중견까지 가도 충분할 인프라였다.



신규 프레임워크


프레임워크란 개발을 진행할 때 정의된 구조, 툴이라고 생각하면 된다.


기존 프레임워크는 파워빌더란 툴에 DB 쿼리를 등록하여 selectManager라는 Java 코어를 만들어서 개발하는 구조였다.


기존의 ASP 구조는 퇴사 이전에 Java, JSP로 완전 리뉴얼 하였다.


민B가 나에게 신규 프레임워크를 만들어보라고 하셨다.


DB는 이전 채용회사에서 사용했던 SP(StoreProcedure) 방식으로 구성해 보라고 하셨다.


이제 개발을 좀 할 줄 알고 어려운 것도 충분히 개발할 수 있다는 자신감이 있었지만 프레임워크 만드는 건 너무 나도 막연했다.


그 당시 Java Spring, mybatis 구조가 신기술이었지만 민B는 Spring을 서비스 구동이 느리다는 이유로 안 좋아하셨다.


민B는 "현행 구조도 버리진 않을 거고, 완전히 새로운 프레임워크를 만드세요 오."라고 하셨다.


이건 마치" 혼자 사막에서 오아시스 찾아서 좌표 찍어줘"라고 들렸다.   


우선 현재 프레임워크가 왜 느린지 먼저 파악을 했다.


신입 때는 그러려니 사용했던 소스를 점점 깊게 파고 들었다.


현재 구조에서 제일 큰 문제점은 커넥션 풀(Connection Pool) 방식이었다.


Java Core 소스에서 DB를 연결해서 쿼리를 읽어서 데이터를 모두 가져온 상태에서 Javascript로 페이징을 하여 페이지 번호를 보여주지만 데이터는 모두 가져온 상태였다.


예를 들어 데이터가 100건이며 페이지에 보이는 건 10건씩 페이징 번호는 1~10 되어 있지만 데이터는 모두 다 들고 오는 구조였다.


만약 2페이지를 누르면 다시 Java Core에서 DB를 100건 조회해서 Javascript에서 2페이지를 보여줬다.


커넥션 풀 방식이 DB를 연결하고,  쿼리를 조회하고, 데이터를 가져오면 닫고 하는 방식이어서 몇 초라도 지연될 거라 생각했다.


민B에게 현재 프레임워크 구조에 문제점에 대해 말씀드렸다.


민B가 키워드처럼 던져주셨다. "DBCP 설정 먼저 하세요."라고 말씀하셨다.


DBCP(DataBaseConnectionPool)이라고 불리며 서버에서 서비스 구동하는 시점에 이미 DB 연결을 해놓는 구조이다.


이 작업의 장점은 빈번하게 연결하는 방식에서 이미 서비스가 올라가는 시점에서 DB 연결이 되어 있기 때문에 데이터를 불러오고 닫기만 하면 되었다.


기존 프레임워크에 설정 세팅을 하고 Java Core 소스에서 DB 연결 부만 없애도 눈에 보일 정도로 속도 효과가 있었다.


기존 프레임워크는 이대로 두고 신규 프레임 워크로 SP 작성하여 페이지에 SP 명만 입력하면 해당 Java DAO(DataAccessObject), VO(Value Object) 자동으로 생성되게 하며 페이징 처리는 SP에서 페이지 넘버를 넘겨서 페이지 개수에 맞게 데이터를 불러오게끔 만들었다.


계속 테스트를 하면서 오류에 대한 케이스에 대한 가이드북을 만들어서 개발자들에게 신규 프레임워크에 대해 교육을 진행하였다.


동D는 DBCP 세팅은 인정했지만 내가 만든 프레임워크에 대해 너무 복잡하고 오류도 찾아내기 힘들다며 엄청난 반감을 드러내고 혼자서 기존 프레임워크 selectManager version을 계속 늘리면서 계속 기존 프레임워크를 고집했지만 얼마 못 가서 신규 프레임워크를 받아들이기 시작했다.



속도 개선


신규 프레임워크를 새로 구축하고 나서 민B는 주간회의 때 호기롭게


"페이지 로딩 느린 화면 팀별로 10개씩 메일로 보내주세요."라고 말씀하셨다.


민 B는 팀별로 속도 개선이 필요한 화면을 취합하셔서 나에게 전달해 주셨다.


"주D, 채용회사에서 몇백만 건 데이터 컨트롤 한건 진짜 큰 경험이에요. 한번 마음껏 고쳐보세요."라고 하셨다.


민B의 기대에 부응하겠다는 마음가짐으로 속도 개선을 각개격파로 하나하나 깨부수듯 진행했다.


10초~10분 걸리는 데이터를 0.00초로 만드는 쾌감은 겪어보지 않으면 정말 모를 정도로 기분이 좋다.


속도 개선을 마무리하고 MS-SQL 프로 필러(프로파일러로 도 읽음)라는 툴을 돌려서 느린 쿼리들을 찾아내서 주기적으로 튜닝을 하여 90%~100% 속도 향상에 신경을 썼다.


쿼리 튜닝해도 느린 부분은 신규 프레임워크를 사용하여 소스 작업도 하였다.


사실상 화면 로딩 3초 이상 걸리는 모든 화면을 다 고쳤다.


개발팀이 팀장과 내가 오면서 모든 게 달라졌다고 다른 팀에서 칭찬이 쏟아졌다.  


지금 생각해도 너무 보람 있고 일 자체가 너무 즐거웠던 것 같다.



잡일을 멈춘 계기


개발팀에 대한 인식이 좋게 바뀌었지만 여전히 잡일은 나이대가 젊은 우리를 시켰다.


직원들도 70명 넘게 있었으며, 다른 팀도 나이 어린 친구들이 많은데 왜 우리 팀만 해야 하는지 짜증이 밀려왔다.


이S가 항상 여기저기 불려 다니며 컴퓨터가 이상하거나 안되면 수시로 다른 팀에 불려갔다.


어느 날 콜센터 팀장님이 이S를 찾길래 다른데 심부름 갔다고 얘기하니 자기 컴퓨터가 안 켜진다며 나보고 봐달라고 하셨다.


나는 내심 "이때다" 싶었다.


이 빌어먹을 잡일을 끈어야겠다고 생각했다.


콜센터 팀장님은 "최근에 본체 파워를 바꿨는데 봐주세요" 하길래


책상 밑에 기어 들어가서 파워를 때고 일부러 파워의 빨간 부분 전압 변경하는 부분을 드라이버로 반대로 돌려버렸다.


선이 다 연결된 상태에서 터트리면 하드디스크에도 영향이 있을 것 같아서 따로 때서 전원만 연결한 상태에서 돌렸다.



"뻥!!!!!!!!!!!!!!"


엄청난 굉음으로 파워가 터졌다.


먼지도 밑에서 스멀스멀 올라오고


모든 직원들이 놀라서 나와볼 정도로 큰 소리였다.


다들 나에게 안 다쳤냐고 어디 화상 입은 거 아니냐고 난리였다.


내가 책상에서 기어 나오는 모습을 보더니 부사장님은


"개발자들을 이런 식으로 쓰는 곳이 어딨냐!!" 극대노를 하시면서, 여태 잡일도 우리 개발팀이 했다는 것도 아시고 경영지원팀에 잡일 업무하는 인원을 한 명 뽑고 앞으로 컴퓨터는 유지 보수 업체를 따로 두어서 다시는 이런 일이 없게 하라고 지시하였다.


전화위복이 된 상황이어서 다행이었지만 잡일, 심부름 같은 건 진심으로 내 선에서 끊고 싶었다.


아무리 솔루션 업체라고 밑바닥부터 시작한다고 해서 이렇게 밑바닥은 아니길 바랐는지도 모른다.



재입사 후 우리 독수리 오형제 중 첫째인 진D는 프리랜서를 선언하며 퇴사를 하였다.


이B가 진D 혼자 SI 프로젝트에 많이 내보내서 프로젝트 하는 중에 프리랜서 분들이랑 친분이 생겨서 같이 일하자고 했다며 퇴사를 하였다.


프리랜서로 프로젝트를 2년간 하고 다시 정직원으로 들어갔지만 얼마 못 가고 다시 퇴사하고 이직 준비 중 별생각 없이 사이버 수사대 지원했는데 합격하여 경찰이 되었다.


나도 사이버 수사대에 관심이 생기면서 자주 둘이 술 한잔하면서 많이 물어봤었다.


재입사 후 개발자로서 일하는 거 자체가 재밌어진 시기였던 것 같다.


보통 3년 이후에 슬럼프가 오는 시기인데, 나는 슬럼프 시기에 워낙 바빠서 내가 계속 이 업을 해야 하나란 의문도 가진 적이 없는 것 같다.


그 무렵 우리 회사는 새로운 사업영역인 구매대행사업이  독보적으로 성장하기 시작했다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari