기본 콘텐츠로 건너뛰기

IT컨설턴트에게 필요한 자질





일본에서 IT컨설턴트 라는 직업이 되기 위해 필요한 스킬로서 
눈에 보이는 자격증 등과 
눈에 보이지 않는 능력에 대해서 궁금하다는 질문이었습니다. 

두 번째 질문은 눈에 보이는 자격 증 등의 대답에서 같이 해드리면 될 거 같구요.. 

세 번째 질문은 IT컨설턴트 말고 전체에 적용되는 
일본에서 취업할 때 학벌과 나이가 중요한지? 
에 대한 대답을 해드리겠습니다. 

우선 IT컨설턴트 라는 직업은 

IT전문가 와 컨설턴트 라는 업무 전문가를 합칭 말입니다. 

때문에 필요한 것은 전문적인 IT지식과 현업의 업무 지식이 필요한 것이지요. 
IT전문가로서 필요한 스킬을 보자면

프로그래밍 능력이 필요합니다. 이는 스스로 개발을 하지 않더라도 최소한 언어별 차이를 깊이 있게 알아야 겠지요. 예를 들면 C언어는 보다 어셈블리에 가깝기 때문에 OS의 아주 세세한 레벨까지 컨트롤이 가능하고, 거의 어셈블러에 가깝게 컴파일이 되기 때문에 CPU의 명령어 인식에 리소스가 많이 필요하지 않습니다. 
이 때문에 저스펙에서도 가볍게 돌 수 있는 프로그램을 만들거나 하드웨어 컨트롤 하는 프로그램, 
고 사양이 필요한 어플리케이션을 고효율로 만들 수 있는 장점이 있지요. 
Java같은 경우는 처음부터 MCU같은 보드에 가볍게 넣고 밥솥이나 냉장고 등을 컨트롤 하기 쉽도록 만든 언어였는데, 다른 가전 벤더에서는 자기네들만의 프로그래밍 툴이 있었기 때문에 인기가 없었죠. 
하지만, 적은 메모리에서 가볍게 움직인다는 장점이 가벼워야 할 브라우저에서 최적이라는 판단으로 웹 으로 넘어오면서 아주 좋은 효율을 냈지요. 하지만, 처음부터 용도가 다른 언어였는데 그걸 무리하게 점점 커지는 요구에 맞추어 복잡하게 되다보니 한계를 억지로 넘긴 기능들이 속출하다가 많은 버그를 만들기도 했지요. 
그래도 node.js까지 발전하면서 고스펙 하드웨어가 기본이 된 현재에는 엔진이 복잡한 것은 이유가 되지 않고, 복잡하더라도 MSA가 가능해진 요즘 더욱 부각되는 언어가 되었습니다. 
그 밖에 Basic언어의 위치나 사용편의성, Python은 2.5와 3.0이 완전히 다른 언어처럼 되버린 개발자의 철학에 대한 이야기 등등 이런 많은 개발 언어의 흐름을 읽지 않으면 고객이 이번에 올리는 서비스에 어떤 언어로 가야 한다는 충분한 근거를 대지 못하면 IT전문가라고 부르기가 어렵죠. 
한국에선 IT전문가가 쉽잖아요? 그냥 PHP는 소규모이고 Java가 대세니까 그거 쓰면 되요. 요즘은 React만 써야 해요 하는 식으로 말하면 끝나거든요. 
하지만 일본에선 왜 그 언어를 당신네 서비스에 써야 하는지 설명할 수 있어야 하고, 지금 쓰는 언어를 개발팀이 바꾸자고 하면 사장이 정말 바꾸는게 맞는지를 물어보는데 개발자의 주장이 맞는지를 경영자의 입장에서 판단을 할 수 있는 근거를 마련해주는게 IT전문가 입니다. 
고객사 개발팀들 앉혀놓고 개발자들은 자기네들이 자부하고 있는 언어를 못쓸까봐 엄청 공격하는데요.. 단순히 수긍만 하면 고객이 미덥지 않게 보지요. 
예전에 몇몇 중대형 게임사의 개발팀장이 Java의 Memory leak을 해결하려고 여러가지 방법을 썼는데 그거에 대한 대안이 있는 언어가 있느냐 라는 질문을 하거나, 
초고속 처리를 위해 Pure java code로 짠 소스를 보여주면서 가장 적합한 인프라 구성을 제안할 수 있느냐 하는 식의 이런 것도 모르면서 컨설턴트냐 하고 까부수려는 공격도 한 적이 있는데요.. 
이런걸 잘 해석하고 받아칠 정도의 능력은 있어야 하는 것 같습니다. 

두 번째 IT전문가로서의 능력은 시스템 아키텍쳐의 이해력입니다. 
개발자가 사양서나 서비스 구성도를 가져오면 그걸 보고 어떤 문제가 있고, 몇 명의 유저가 어떤 액션을 취할 때 시스템 구성에 어떤 구멍이 생길지를 설명할 수 있어야 합니다. 
즉, 네트워크, 서버의 구성 및 OS의 특징, 요즘은 클라우드 환경이 되면서 Serverless 구성과의 비교에서부터 앞단에 LB를 L4만 쓸거냐 L7을 쓸거냐, 라우터만으로 될거냐 CDN기술이 낫느냐 하는 것도 서비스의 특징 및 성장에 따른 구성의 차이 및 한계등을 설명할 수 있어야 합니다. 
심지어는 GCP, Azure, AWS의 각각의 특장점을 알아서 고객은 Azure를 쓰고 싶은데 개발자가 GCP를 쓰겠다면 누구 편을 왜 들어줘야 하는지를 객관적으로 제시할 수 있는 능력이 필요하지요. 
저의 경우는 SSD, HDD 및 SAS, SATA의 하드웨어 구조의 차이에 따른 RAID의 특성 차이, HPFS, GFS, ZFS, NTFS, NFS등등 다양한 디스크의 포맷에 따른 성능 및 안정성의 차이등도 같이 제시하고 DAS, SAN, NAS로 가져갔을 때의 차이등도 고객의 예산에 맞추어 선택가능한 몇 가지 안을 이유와 함께 제시하고 있습니다. 

여기까지가 IT 전문가 스킬이구요.. 

컨설턴트이기 때문에 필요한 업무 스킬이 있습니다. 

고객의 업무를 빠르게 파악하는 능력이 필요합니다. 
이는 업무를 해보지 않으면 불가능하지만 대부분의 고객은 자기 일을 10년 이상 해왔던 사람입니다. 물류와 방송, 항공, 인터넷 서비스 등등 수십 수백의 업무 패턴에 따른 업무의 고객 고민을 고객의 입장에서 이야기 합니다. 이걸 엔지니어의 관점에서 들으면 이해가 안가는데, 이러한 고객의 입장에서 고객의 전문 용어를 들어가며 업무를 IT화 할 수 있는 분석 능력이 필요한 것이지요. 

그리고 고객이 그 업계의 어떠한 위치에 있고, 어떤 부분을 개선해야 하는지를 파악할 수 있어야 합니다. 
대부분의 발주고객은 IT문외한이 많기 때문에 고객이 불편하다고 말하는 것이 정말로 그것만 해결하면 되는게 아닐 수 있습니다. 
예를 들어 고객은 매일 들어오는 송장의 입력이 불편해서 빨리 입력하는 시스템을 만들어달라고 의뢰합니다. 
하지만 업무를 분석해나가다 보면, 송장을 굳이 입력하지 않아도 다른 곳에서 송장 입력에 필요한 정보들이 있으니 거기서 가져와서 확인 버튼만 누르면 송장 입력 처리가 완료되거나, 
아니면 굳이 송장을 해당 고객은 패스해버리고 종착지에서만 송장을 전송만 하게 될 수도 있습니다. 
현재의 업무를 파악하기 이전에 그 업계의 업무 흐름을 알고 있는 사람과 알고 있지 않은 사람의 결과물의 차이는 극명해지는 것이지요. 
여기서 한국과의 아주 큰 차이가 있는데요.. 

제가 한국에서 IT컨설턴트를 위한 책을 찾는데 못찾겠는 겁니다. 
그래서 인터넷에서 검색을 해봤죠.. 



한국에선 IT컨설턴트 가 되고 싶은 사람이 없나봅니다. 

그럼 일본에선 어떨까요?


엄청난 책들이 쏟아져 나오고 있구요.. 
제가 처음 접하는 업계의 컨설팅에 들어가는 경우는 반드시 서점에가서 찾아보면
IT컨설턴트를 위한 OO업계 같은 책이 꼭 있더라구요. 

그럼 그 책을 사서 보면 
초보를 위한 해당 업계의 용어에서부터 업무 절차, 그리고 IT컨설턴트라면 알아야 할 지식들을 한 권의 책으로 완결을 지어 놓습니다. 심지어는 각 업무에 필요한 서류 양식까지 있어서 DB설계도 미리 해볼 수 있을 레벨입니다. 

그리고 또다른 능력으로는 고객과의 커뮤니케이션 능력이 가장 중요합니다. 
고객의 말을 못알아듣고 딴소리를 하게 되면 바로 거기서 잘리게 되죠. 
중간에 잘리는 사람들 가끔 보는데요.. 대부분이 고객이 답답하다고 교체를 요구하게 됩니다 그러면 어쩔 수 없이 교체를 하게 되죠. 
커뮤니케이션 능력의 가장 중요한 포인트는 고객의 말을 우선 듣고 여러번 곱씹어 고객이 정말로 말한게 그거였는지를 확인하는 능력입니다. 
요즘 들어 문해력이 떨어지는 사람들이 늘고 있다는 방송도 있는데요. 상대방이 이야기하는 내용을 듣자마자 자기 해석을 하는 사람들이 늘고 있는 듯 합니다. 
즉, 고객은 A라고 했지만 듣는 순간 이미 자기의 경험과 지식을 바탕으로 A'라고 들었다는 기억이 남게 되지요. 그게 점점 벌어져서 나중엔 고객이 화를 내게 될 수 있습니다. 
이런 성향이 조금이라도 있거나 기억력에 자신이 없는 분들은 반드시 미팅은 녹음을 하고 녹음한 그대로를 적은 뒤에 어려운 표현이면 스스로 풀어쓰고 그 내용을 확답을 받는 부지런함이 필수 입니다. 
이 것 때문에 많은 사람들이 고생한 프로젝트를 많이 봐왔으니까요.. 

이렇게까지 하고나면 IT컨설턴트는 날로 먹을 수 있는데요.. 
그 전에 포기하겠다구요? 
아녀요.. 얼마나 쉬운데요.. ^^;;

우선 IT컨설턴트는 자격증이 없습니다!
물론 PMP(Project Management Professional)나 ITIL(IT Infrastructure Library), ITSM(IT Service Management)같은 이상한 자격증을 가지고 있는 사람들도 있지만, 
IT컨설팅은 해당 분야에서 일한 경험과, IT스킬, 프로젝트 관리 경험 정도만 보면 참여 가능하기 때문에 경험이 장땡입니다. 

많은 프로젝트를 경험해보신다면
저 말도 안될거 같은 스킬이 자연스럽게 경험으로 오게 됩니다. 
물론 제 영상에서 누누히 이야기 하지만, 
떠먹여주세요 하는 사람은 절대로 이 분야에선 살아남을 수 없습니다. 
언제 무슨 의뢰가 올지 모르기 때문에 항상 최신 기술 트렌드에서부터 시장 동향 등등을 빠삭하게 알고 있어야 합니다. 

그 밖에도 제가 매년 초가 되면 사서 보는게 있습니다. 
업계 지도라는 책인데요.. 

일본 모든 업계의 동향에서 규모 등등이 수십개의 출판사에서 독자 루트로 알아낸 알짜 정보들을 책으로 만들어 내고 있습니다. 가격도 1500엔에서 2000엔 사이의 아주 저렴하구요.. 맘에 드는거 두어권 사두면 고객이 왔을 때 시장의 규모에서 그 고객의 위치, 그리고 노려야할 시장 사이즈를 이야기 하고 그 시장 사이즈에 맞는 시스템 구성도 하나 그려서 주면 절 뺄 수가 없게 되는 것이지요. 

사실 일본에서도 대부분 IT컨설턴트라고 하는 사람들이 이 정도까진 준비 안해요.. ^^;;
앞에서 많이 겁을 줬지만, 제가 일본에서 20년간 상류 사람들을 많이 만나왔지만,
앞에서 제시한 허들에 도달한 사람은 한 명도 못봤고 40%정도의 지식과 경험이 있는 사람들이 팀으로 어떻게든 해오고 있었기 때문에 걱정 안하셔도 됩니다. 
너무 겁을 줬다면 죄송합니다. . ^^

일본 컨설턴트는 IT 경험 자체가 저에 비해서는 엄청 낮기 때문에 처음부터 경험으로 누르고 들어가고 있어요.  
저를 어필할 때 숫자만 열거합니다. 

4000만 DAU를 커버하는 시스템 설계 및 구축 해봤습니다. 
DAU는 Daily Access User라고 하여 하루 유니크 방문자를 이야기하구요.
순간 300Gbps의 트래픽 로드밸런싱 해봤다고 합니다. 
300만 유저가 초당 60만 클릭을 처리한 적 있다고 합니다. 
1.76PB ML용 시스템 구축을 했다고 합니다. 
전 세계 2억대의 모바일 디바이스 펌웨어 다운로드를 위한 CDN네트워크 구성을 했다고 합니다. 

그밖에도 설명할게 많은데요.. 
이런 경험을 이야기 하면 어느 누구도 태클을 못답니다. 
그리고 저 모든 경험은 한국에서 했구요.. 
제가 한국 IT무시 엄청 하지만요.. 
사실은 한국은 미친 부하의 환경에 비경험자도 손만 들면 해주게 하기 때문에 경험하기 좋은 나라 입니다. 

물론 서버 대수만 따지면 일본에선 수 만대의 서버환경이 심심치 않게 나오지만..
한국은 딱 두 개 정도 회사가 수만대 서버를 가지고 있죠? 
그래서 가장 이상적인 것은 각오만 되어 있다면 한국에서 한 10년 대규모 환경에서 죽도록 굴러먹고 일본에서 좋은 대우를 받는 것을 추천하지만, 

자기의 의지만 있다면 일본에서 탄탄한 구조로 빨리 성장만 할 수 있다면 훨씬 크고 체계적으로 성장할 수 있습니다. 


꼭 일본이 아니더라도 해외를 적극 장려하는 저로서는 
똑같은 경험을 하더라도 고생을 더하지만 
10년 뒤에 보면 다른 사람에 비해 최소한 언어라는 중요한 무기 하나를 더 얻을 수 있다는 점. 
그리고 한국보다 큰 규모의 국가에서 경험을 쌓으면 다시 한국에 들어갔을 때도 큰 도움이 됩니다. 
간단하게 예를 들면, 
국민연금이 한국에선 하루 동접이 가장 많습니다. 저 위에 4000만 DAU가 바로 그건데요.. 왜냐하면 전국민의 많은 수가 국민 연금을 내거나 실업급여를 타거나 헬로워크에서 일을 찾거나 나이들어 연금을 받으면서 들어가는 사이트이기 때문입니다. 

그럼 인구 1.25억명의 일본이라면 DAU가 9000만 정도가 되는 것이지요. 
쪽수를 무시 못하는게 바로 여기 입니다. 
모 게임 서버가 일본에 120대로 시작을 했을 때 
한국은 2년 동안 성장한게 120대였구요, 
중국은 1년만에 1600대를 사용한 것 처럼.. 
쪽수가 큰 곳에서 시스템을 만지면 달라도 많이 달라집니다. 


세 번째 질문은 일본취업에서 학력과 나이를 중요시 여기는지에 대한 질문인데요.. 
이건 대기업 정사원 신졸이나 중도 채용의 경우는 예스 입니다. 
만약 저같이 프로젝트만 따라다니는 사람은 노 입니다. 

그래서 대기업 프로젝트를 들어가다보면, 
정사원은 30대인데 프로젝트 참여자중 상류 사람들이 5~60대인 경우를 종종 보는데요.. 
이 경우 젊은 정사원은 나이많은 외주들에게 반말을 합니다. 
처음엔 적응이 안되었지만, 이게 보통이더라구요.. 

조금 적더라도 안정적인 직장으로 오래 다니실 분들이라면 일본 대학 또는 대학원을 한 번 더 가시는 것도 좋구요, 한국 대학을 졸업후 일본에서 직장을 다니다가 중도 채용으로 들어가는 방법도 있습니다. 

만약 일본에서 성공하고 싶으시다면, 
독립해서 일본에서 사업하는 것도 추천드려요.. 
이유는 인구는 2.5배 많지만 웬만한 분야의 내수 시장 사이즈가 10배 정도 하거든요.. 
즉, 한국에 비해 5배 가까이 큰 시장이라 그렇게 과다 경쟁이 필요없고, 
아이디어랑 노력만 있다면 주워먹기 쉬운 시장이 많다는 것입니다. 
실제로 지인 들 중에는 사업해서 누구 부럽지 않게 사는 사람들이 꽤 있으니까요.. 

물론 IT컨설턴트라면 어딘가 속해도 충분히 좋구요, 
그냥 독립해서 프로젝트만 뛰어도 충분히 벌 수 있습니다. 

그럼 좀더 IT컨설턴트에 대해서 잘 알게 되었길 바랍니다. 


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