기본 콘텐츠로 건너뛰기

IT컨설턴트란? 세일즈 컨설턴트와는 다른 전문 직종입니다!


수 년전 한국에 잠시 가서 일을 했을 떄 
컨설턴트라고 소개한 적이 있었는데, 
사람들은 단순히 영업하는 사람으로 알고 있었던 것이 충격이었습니다. 




한국에서는 컨설턴트는 세일즈컨설턴트 정도 뿐이었나보더라구요.. 
게다가 세일즈 컨설턴트보다는 세일즈맨에 가깝고 기술력은 거의 찾아보기 힘든 사람들이 많았습니다. 

일본에서의 IT컨설턴트의 지위는 상당히 높습니다. 

일단 아무나 컨설턴트란 이름을 내세우지 않고, 
컨설턴트들은 자기의 분야에 자부심을 가지고 있는 경우가 많습니다. 
물론 모든 컨설턴트가 그런 것이 아니고, 영업에 치우친 사람들도 있지만 말이죠.. 

2007년 경이었습니다. 고객이 컨설팅 요청을 했습니다. 

자기네 시스템을 이관해야 하는데 ORACLE을 사용하는 시스템이고 유저 수십만이 접속할 수 있는 정도 스펙이 필요하다고 합니다. 
그리고 여러 서버 업자에게 견적을 받았는데 INTEL Xeon도 있었지만, 
AMD서버가 거의 60%가격으로 굉장히 메리트 있게 왔다고 합니다. 
인텔은 2코어 였고, AMD는 4코어 인데도 말이죠. 





이 AMD서버를 구입해도 되는지에 대한 조언을 요구했습니다. 

제대로 된 컨설턴트라면 어떻게 얘기할까요?

Intel Core는 단일 코어의 같은 클럭에서 처리 성능이 좋습니다. 
그리고 AMD는 그걸 보완하기 위해서 코어수를 늘렸지요. 

왜 AMD는 같은 CPU인데 인텔보다 같은 클럭에서의 처리 성능이 낮을까요?

이 이유는 OS라는 소프트웨어가 하드웨어랑 통신할 떄 사용하는 Machine code라는 어셈블러를 사용하여 OS의 명령을 처리하게 됩니다. 


각각의 CPU벤더는 자기만의 머신코드와 코어 기술을 가지고 연산을 하기 떄문에 하나의 처리에 동일한 클럭을 사용하지 않습니다. 어셈블러의 명령어 체계에서부터 에뮬레이트 되거나 다른 처리를 하게 되기도 하지요. 

이 때문에 생기는 성능적 열세를 막기 위해 클럭수를 높이거나 코어를 늘려 대응을 하고 있지요. 

AMD역시 4코어로 만들고 나서야 인텔 2코어보다 조금 더 높은 성능을 내고 가격은 오히려 60%라는 메리트를 주었는데.. 이것 만으로 AMD서버를 사세요 라고 말하면 안됩니다. 

서비스란 것은 종합적인 계산이 필요합니다. 

ORACLE은 그 때 당시 Core단위 라이선스를 내야 했지요. 지금도 클라우드화가 되면서  vCore라는 가상 코어단위 라이선스로 바뀌었는데..

그 때문에 1코어당 가격이 서버가격에 육박하는 오라클이 들어간 서버는 오히려 Intel Xeon이 전체 코스트를 적게 가져갈 수 있습니다. 하지만 그것만이 아니죠. 서버 몇 대에 얼마나 많은 유저를 받을 수 있는지 등에 따라서는 AMD가 나을 수도 있거든요. 

코어는 그대로 클럭을 최대한으로 높이고 메모리를 잔뜩 실어버리면 처리할 수 있는 양이 늘어나 상대적으로 처리당 코스트로 따지면 역전도 할 수 있습니다.

전체 효율을 수치화 하고, 그 서버에 들어가는 OS부터 각종 소프트 라이선스 비용을 계산 후 최대 처리수를 연산한 뒤에 1인당 코스트를 계산해서 제출하여 고객이 고객의 눈높이에서 판단하기 쉽게 근거자료를 주어야 하지요. 



어떤 고객도 굳이 용어 공부 하려고 비싼 돈을 들여 컨설턴트를 부르는게 아니라,
이 투자로 얼만큼의 유저를 받아서 매출에 얼마나 공헌할 지를 계산하고 싶을 뿐이거든요. 

이 뿐만이 아니라 지금같은 클라우드 시대에는 거의 상관 없어졌지만 RAID 10과 01의 결정적인 차이라던가, 

GLB와 L4, L7의 차이라던가.. 

이 서비스에 NoSQL이 RDBMS를 대체할 수 있는 것인지.. 라는 말도 안되는 질문에도 대답을 해야 하구요.. 

인프라는 엄청나게 많은 유사 개념들이 있어서 개발자의 능력만으로는 구분할 수 없는 것들이 많습니다. 심지어는 사용 언어에 따른 효율이나 코드 베이스 효율까지 계산하기도 하지요. 

제가 아주 많이 싫어하는 사람들이 있습니다. 물론 컨설턴트라 불리는 사람들 이나 유식하거나 높은 지위에 있다고 착각하는 사람들이 많이 하는 행동인데요.. 

고객 또는 상대가 알아 먹을 수 없는 어려운 단어만 나열하고 이것도 모르냐 하는 식으로 고객을 위축시키는 사람들이 생각보다 많았습니다. 

내가 알아먹을 수 없게 설명하는 사람이 있다면 그 사람은 스스로도 그게 뭔지 모르지만 모른다고 하기 싫어서 굳이 어려운 용어를 나열해서 상대의 기를 죽이는 케이스가 99.9%라고 생각하고 있습니다. 

이런 경우 천진난만하게 늘어놨던 용어들을 다시 물어보면 되지요. 
그 때 설명해주려 하는 사람들은 그나마 조금이라도 지식이 있는 사람이고, 
그것도 모르냐 하면서 설명보다 질책을 하는 사람들이라면 그냥 주워들은 단어를 가지고 아는척 하는 것을 좋아하는 사람이라고 생각하시면 됩니다. 

클라우드 시대가 왔습니다. 

서버, 네트워크, DB, 스토리지의 경계가 애매모호해지고 있고, Low code, No code,  serverless나 container instance처럼 이젠 눈으로 볼 수 없는 가상환경이 늘어남에 따라 IT컨설턴트의 니즈는 날이 갈수록 늘고 있습니다. 

그 동안 자기 분야만 알면 문제 없이 20년 이상 살아왔던 사람들이 지금 패닉상태이거든요.. 

IT 컨설턴트라는 직업에 대해서 아주 빙산의 일각을 말해봤는데요.. 

컨설턴트로 취업을 하면 보통 800~1200만엔의 연봉을 받을 수 있고, 영어와 일본어를 네이티브 정도로 할 수 있으면 2000만엔도 넘기는게 어렵진 않습니다. 

고객이랑 영업을 할 떄 견적을 내는 입장에서는 스케일이나 컨설팅 범위에 따라 다르긴 하지만 1건에 1인당 1일 ~ 1개월 정도 단위로 100~250만엔 정도에 견적을 내는게 일반적인 컨설팅 비용입니다. 

IT컨설턴트는 IT담당자가 모르는 깊이까지의 경험과 지식으로 고객의 선택을 도와주어야 하구요, 고객의 업무 분석이 가능할 정도의 업무 지식이 없으면 쉽게 할 수가 없습니다. 
단적으로 온라인 게임에서 사용하는 데이터베이스 시스템과 방송국에서 사용하는 데이터베이스는 제품에서부터 유저당 트랜잭션, 초당 처리 요구량이 완전히 달라집니다. 그에 따라 최적의 제품의 선택에서부터 하드웨어의 선택을 할 수 있도록 도와주어야 고객이 만족해 하고 댓가를 지불 하지 않을까요?

뭐, 한국에서는 이런걸 정리해주어도 과기처고시 인건비 단가 기준 외엔 주지 않긴 하지만..
일본에서는 이 결정으로 인해 좌지우지 되는 인프라 비용만 경우에 따라서는 단일 고객이 연간 4조원씩 되는 환경에서도 일을 해봤는데.. 한달에 5천만엔쯤이야 연간 1~2조엔 차이를 내는데는 아주 저렴한 댓가가 되겠지요. 

아, 한국은 안그러냐구요?
한국의 IT Outsourcing규모가 약 10조원 조금 안된다고 하네요. 이 중 94%가 국가기관 및 100대 대기업의 발주이구요.. 민간 기업에서는 약 6% 정도로 치열하게 싸우는게 한국의 시장규모이지요. 



참고로 일본의 IT 아웃소싱 시장은 한국 돈으로 약 250조원 정도의 규모 입니다. 

일본에서 IT컨설턴트는 추천하는 직업입니다!
여러분은 어떻게 생각하시나요?


음성 : https://www.youtube.com/watch?v=fUNEuUfpSIQ&t=4s


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을 걸지 않으면 NoSQL처럼 느려터져 죽습니다.  양이 많은 DB에서 양이 적은 테이블을 가져와서 JOIN을 해야겠지요..  이렇게 해서 동접 10만명까지 커버를 했다 칩시다.  여기서 일반적인 동접의 기준도 서비스마

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 여기서 다운로드 이런 커넥터 들을 붙일 때마다 콘피그를 수정해 줘야 하지만, 몇 번만