기본 콘텐츠로 건너뛰기

일본에서 프로젝트로 먹고사는데 일이 넘쳐나요




연말을 편하게 보내고 싶은 어느날… 

갑자기 두 업체에서 연락이 왔습니다. 
내년에도 지금 TiDB프로젝트는 그대로인데요.. 

하나는 TiDB프로젝트 전에 들어간 감정인식 서비스 업체로 부터 입니다. 
요청 사항은 인도네시아 개발팀이 일본 고객사 환경 구축을 지원해주고 있는데, 
일본은 B2B 솔루션은 대부분 외부 환경이 열려있지 않은데가 많습니다. 
때문에 엔드유저의 엔지니어가 직접 환경 구축을 하면서
자기네 환경에서 문제가 있으면 엔지니어가 원격으로 
스샷 정도만 보면서 어떻게 해봐라 라는 식으로 작업 방법을 설명해줄 수 밖에 없습니다. 
그런데 일본인 고객이 인도네시아 팀에게 이야기를 하는데
전담 통역이 있음에도 말이 안통한다고 클레임이 많은거 같습니다. 

그래서 저보고 중간에서 환경구축 지원 브릿징을 해주기를 바라는 내용이었습니다. 
물론 오케이 했구요, 
1월부터 가동하기로 했습니다. 
환경구축 지원은 스팟성이라 기존 프로젝트가 있음을 알고 서로 조율해서 하기로 했구요.. 

두 번째는 누군가의 소개로 들어온 안건인데요.. 
작게 솔루션을 만들어서 매각했는데, 
그걸 다시 확장해서 추가 솔루션을 만들었다고 합니다. 
사장은 기술베이스가 없고, 
8명 정도의 개발팀으로 구성되었는데, 
모두 타이 사람이고 2명은 일본어가 되고 일본에서 거주중이라고 합니다. 
문제는 사장님이 뭔가 요청을 하면
너무 늦게 처리가 되는데다가
컴플레인을 하면 갑자기 잠수를 탄다거나 하는 등의 
컨트롤이 안되서 비즈니스가 안되고 있다고 하네요.. 
고객은 늘고 있는데 대응이 점점 늦어져서 고민하다가 
지인에게 물어봤더니 저를 소개시켜 주었더라구요.. 

그래서 여기도 제가 중간에서 타이 개발팀이 가지고 있는 
인프라 및 소스를 모두 이전해서 언제든 자를 수 있는 체제를 만들고, 
말을 안들으면 쳐버리고 새로 개발팀을 구성하는 것을 도와달라 는 것입니다. 
말 안들으면이라고 했지만, 사실상 지칠대로 지쳐서 그냥 새로 개발팀을 구성하려 하는 듯 합니다. 

제가 한국에서도 많이 겪었던 일인데요.. 

회사와 계약하여 만들어진 모든 소스 및 기술, 노우하우는 모두 회사에 귀속이 됩니다. 
계약 자체가 그렇게 되어 있고, 그 사람은 회사를 위한 기술개발 및 노우하우 제공으로 급여를 받는 것이지요. 
한국이 예전부터 엔지니어가 소스코드를 빌미로 사장이랑 딜 하는 모습을 많이 봐왔는데요.. 

제가 2011년에 LG Uplus의 Cloud N이라는 한국의 두 번째 퍼블릭 클라우드 서비스의 
운영 총괄로 들어갔을 때 일이었습니다. 
초기는 8명으로 팀을 구성한 뒤에 제가 들어간 상태라 
제가 고른 사람은 한 명도 없었죠. 

전 언제나 같은 방식으로 업무 룰을 정했습니다. 
퇴근 1시간 전엔 문서타임이고 
어떠한 일이 그 사이에 들어와도 다음날로 넘기거나 
급한 처리의 경우는 문서타임 끝나고 야근 타임으로 넘기라고 했구요, 
자기가 했던 작업이 문서로 남아있지 않으면 
그 일은 아직 안한거라고 하겠다고 했습니다. 
일 주일 정도 사람들이 말로 하려하면 
문서로 작성하고 팀장이 검토후에 의견 조율이 필요한 경우에만
미팅을 소집하게 했습니다. 
아젠다의 정리 없이 미팅하지 말고, 
아젠다 이외의 내용은 미팅에서 하지 않는 걸로 했지요. 
물론 잡담은 언제든 자유롭게 하지만, 
말로 주고 받은 것은 절대 공식화 하지 않게 했습니다. 

일 주일만에 팀장 및 팀원 포함 7명이 사표를 일제히 제출하더라구요. 
제가 한국에서 많이 겪은
자기네 스타일대로 일 못하게 하면
집단사표로 협박하는 그대로 였습니다. 
전 전부 수리하여 7명을 그 달로 퇴직 처리 해버렸죠. 
LG에선 난리났구요..
심혈을 기울여서 몇 년 동안 준비한 거대 프로젝트의 운영팀이
갑자기 집단 사표로 사람이 없다구요.. 

전 제 스타일대로 일 안하는 사람과는 같이 못한다고 하고 
나머지 사람은 전부 제가 면담해서 다시 데려 왔습니다. 
LG는 일괄 취업 시킨뒤에 사내에서 부서 이동 등이 가능하다보니 
7명은 쉽게 충원 되었습니다. 

이 사람들은 제 스타일에 납득한 사람만 들어오라고 해서
승낙한 사람들이었습니다. 

한 달 정도 지나니 
사내 지식베이스는 충실해졌구요, 
지식베이스를 찾는데 어렵거나 하면
어떤식으로 검색해야 하는지, 
페이지에 검색이 되기 쉽게 할 키워드를 
어떤 식으로 배치하면 좋을지 등의 노우하우를 알려주며
지식베이스는 커져만 갔습니다. 

2013년 까지 운영하면저 사람들이 한 두명씩 바뀌긴 했지만, 
어느 누구도 인수인계를 위해 시간을 허비하는 일이 없었습니다. 
사람이 그만 두어도 다음 사람이 오면
지식베이스를 1주일 동안 훑어보게 하구요, 

지식 베이스에 적힌 매뉴얼은 
어떠한 환경의 고객이 오더라도 
작업이 가능하도록 자세하게
그리고 환경에 따라 세세하게 분리하여 만들었습니다. 

RHEL과 CentOS용과 Ubuntu용의 매뉴얼이 각각 만들어질 정도였지요. 

지금도 어떠한 프로젝트에 들어가도
문서만큼은 제 스타일을 고집합니다. 
문서나 저장 형식은 프로젝트에 맞추지만, 
내용만큼은 완전 초보가 들어와도 
인수인계가 필요없도록 작성할 것. 
이게 룰 인거죠. 

그러던 어느날 어떤 사람이 물어보더라구요.. 
이렇게 이 사람의 노우하우를 모두 기록하면
그 사람은 잘리는거 아니냐구요.. 

물론 이 질문은 한국사람이 했겠죠?

제가 즉답을 했습니다. 
회사와의 계약이 그 사람의 노우하우 중
이 회사에 필요한 것을 회사에 남기는게 계약인거라구요. 
이렇게 남긴다고 그 사람의 노우하우가 사라지는게 아닙니다. 

심지어는 제가 이렇게 남기면서 
제가 작성한 코드나 문서에는 작성자 이름이 제가 들어있겠죠. 

어느날 어떤 모임에서 
모르는 사람이 제 명함을 보더니 물어보더랍니다. 
무슨무슨 프로젝트에 들어간 적 있냐구요?
그래서 제가 몇년도에 그 프로젝트 들어갔었죠 라고 하니까
그 사람이 제가 만든 문서가 지금도 참고가 되고 있다고 하더랍니다. 

이런 식으로 사람이 연결 될 수도 있고, 
처음 언급한 것 처럼 
일을 연결해주기도 합니다. 

여러분의 지식은 주변에 알릴 수록 여러분이 돋보이게 됩니다. 
만약 여러분이 알린 지식을 누군가가 보고 배운뒤 
여러분보다 성장했다면
그건 여러분이 게으른 것일 뿐이죠.
여러분이 열심히 노력했는데도 상대가 앞질러갔다면
그건 여러분이 지식을 공개하지 않았어도 앞질러 갔을 겁니다. 

그렇다면 결국 최대한 지식을 공개하고 
자기 발전을 지속하는 수 밖에 없는 것이죠. 
요즘은 1년이 아니라 하루만 지나도 그 지식은 쓸모 없어지기도 합니다. 

쓸모없어지기 전에 빨리 그 지식을 나누어 주어 
자신의 가치를 올리시길 바랍니다. 

아뭏든.. 
1월부턴 세 개 확정에 
아직도 안건 이야기가 더 들어오고 있네요.. 
도와주실 분 찾습니다. ㅠㅡㅠ




giip :: Control all Robots and Devices! Free inter-RPA orchestration tool! https://giipasp.azurewebsites.net/

댓글

이 블로그의 인기 게시물

Alter table 에서 modify 와 change 의 차이 :: SQL Server

두 개의 차이를 모르는 경우가 많아서 정리합니다.  modify는 필드의 속성값을 바꿀때 사용하구요.. change는 필드명을 바꿀떄 사용합니다.  alter table tbbs modify bNote varchar(2000) NULL; alter table tbbs change bNoteOrg bNoteNew varchar(2000) NULL; change에는 원래 필드와 바꾸고 싶은 필드명을 넣어서 필드명을 바꾸는 것이죠~ 더 많은 SQL Server 팁을 보려면  https://github.com/LowyShin/KnowledgeBase/tree/master/wiki/SQL-Server giip :: Control all Robots and Devices! Free inter-RPA orchestration tool! https://giipasp.azurewebsites.net/

책에서는 안 알려주는 대규모 트래픽을 위한 설계

음성 버전 :  https://www.youtube.com/watch?v=ZZlW6diG_XM 대규모 트래픽을 커버하는 첫 페이지 만드는 법..  보통 DB를 연결할 때 대규모 설계는 어떻게 하시나요?  잘 만들었다는 전제 하에 동접 3000명 이하는  어떤 DBMS를 사용해도 문제 없이 돌아갑니다.  여기서 이미 터졌다면 이 콘텐츠를 보기 전에 DB의 기초부터 보셔야 합니다.  아.. 개발 코드가 터졌다구요? 그럼 개발자를 때리셔야지요..  만약 3000명을 넘겼다면? 이제 Write/Read를 분리해서  1 CRUD + n개의 READ Replica를 만들겠죠?  보통 Read Replica는 5개가 최대라고 보시면 됩니다.  누가 연구한 자료가 있었는데...  6번째 레플리카를 만든느 순간 마스터가 되는 서버의 효율 저하 때문에  5번째에서 6번쨰로 올릴때의 성능이 급격히 줄어든다는 연구 결과가 있습니다.  때문에 Azure에서도 replica설정할 때 5대까지 밖에 설정 못하게 되어 있지요.  유저의 행동 패턴에 따라 다르긴 하지만,  1 CRUD + 5 Read Replica의 경우 동접 15000명 정도는 커버 합니다.  즉, 동접 15000명 에서 다시 터져서 저를 부르는 경우가 많지요..  이 때부터는  회원 DB, 게시판DB, 서비스DB, 과금 DB 등등 으로 성격, 서로의 연관도에 따라 나누기 시작합니다.  물리적으로 DB가 나눠지면 Join을 못하거나 Linked Table또는 LinkDB등의 연결자를 이용해서 JOIN이 되기도 합니다.  그에 따라 성능 차이가 생기지만 가장 중요한 포인트는  서로 다른 물리적 테이블의 JOIN은 인덱스를 타지 않는다!  라는 것입니다. 즉, JOIN할 테이블들을 최소한으로 만든 뒤에 JOIN을 걸지 않으면 NoSQ...

BI의 궁극판! Apache Drill을 써보자!

사실 Apache Drill 은 BI(Business Intelligence)라고 부르는 것 보다는 단순 데이터 연결 엔진이다. https://drill.apache.org/ 하지만 내가 왜 극찬을 하느냐면.. DBA로서 항상 문제가 되어왔던게, 이기종 데이터의 변환이나 처리였다. 포맷을 맞추는데 엄청난 시간이 걸리고, 데이터 임포트 실패가 무수하게 나고.. 한 번 잘못 데이터를 추출하면 다시 조정, 변환, 추출하는데 시간이 많이 걸린다. 그런데! Apache Drill은 그냥 RDB를 CSV랑 연결해서 조인해서 통계를 낼 수 있다. 그것도 표준 SQL을 사용하여! 예를 들어, CSV의 세 번째 컬럼이 price 이고, 물건의 판매이력을 PG사에서 CSV로 출력 받았다. 우리 DB와의 검증을 위해서는 수동으로 Import를 한 뒤에 포맷이 안맞아 잘리는 데이터가 있다면 다시 맞춰주고, 재 임포트를 수십 번, 그리고 나서 겨우 들어간 데이터를 조인하여 빠진 데이터를 분간한다. 숫자가 적다면 개발자가 개발로 처리할 수도 있지만, 건수가 하루에 300만건 짜리라면.. 한 달 온 파일은 9천만 건이다. 프로그램으로 고작 처리하는 것이 초당 500건. 거의 20만초, 에러 없이 약 56시간.. 에러가 생기면 다시 56시간.. ㅠㅡㅠ 이런게 현실이기 때문에 쿼리 말고는 방법이 없다. apache drill 의 진면목을 보자! 이번에는 좀 범용 적인 MySQL DB와 붙여 보자. . 난 이번에는 Mac에서 작업을 했기 때문에 그냥 다운 받아서 풀었음.. https://drill.apache.org/download/ 여기서 자기 OS에 맞는 버전을 받아서 설치하시길.. 압축을 풀고 나면 MySQL 커넥터를 붙여야 한다. https://dev.mysql.com/downloads/connector/j/5.1.html 여기서 다운로드 이런 커넥터 들을 붙일 때마다 콘피그를 수정해 줘야 하지만, 몇 번만...