기본 콘텐츠로 건너뛰기

AI시대에 개발자에게 요구되는 것은? 일본 IT컨설턴트가 말하는 개발자의 요건




많은 개발자 채널에서는 개발자의 시선에서 AI를 활용하는 방법이 많이 소개되고 있죠?
전 컨설팅이나 프로젝트 매니징을 하고 있다보니 조금 시선이 다른 듯 합니다.

그래서 실제 현장에서 느끼는 현재의 AI의 현실감에 대해서 설명을 드리고자 합니다. 

현재 제가 관여하고 있는 프로젝트는 
크게 개발 프로젝트 하나와
기 개발된 서비스의 운영 프로젝트, 
그리고 데이터베이스 시스템의 클라우드화 프로젝트를 하고 있구요.. 

그 밖에도 몇몇 소규모 프로젝트에 조언을 구하거나 
직접 코딩하는 곳도 있습니다. 
모두 많게든 적게든 AI를 사용하고 있습니다.

데이터베이스 프로젝트에서는 
데이터베이스의 구축, 운영을 개발팀 내에서 해결하고 있습니다. 
현재 우린 DBRE팀이라고 해서 
개발자들이 DB를 운영할 때 퍼포먼스 저하가 일어날 부분을 조언해서 도와주고, 
전체적인 성능 개선을 위해 인프라, 네트워크 또는 DBMS의 교체나 분산 등을 제안하고
보다 안정적인 성능을 사용할 수 있게 도와주고 있습니다. 

이 경우는 개발과 직접 관련이 없지만
4명의 엔지니어 중에 AI를 사용하는 두 명의 엔지니어가 두각을 나타내고 있구요, 
이들은 기존 대비 몇 배의 업무량을 처리하고 있습니다.  
심지어는 다른 사람의 쿼리튜닝에 대한 리뷰나 
Terraform으로 AWS인프라 설정을 한 내용이 요청에 맞도록 되었는지 리뷰하는 곳에 AI를 사용하고 있습니다. 
이젠 쿼리나 코드를 읽는 시간이 10배 이상 빨라지고, 실수를 쉽게 찾아낼 수 있죠. 
서버 작업 역시 AI가 짜준 쉘스크립트를 이용합니다. 
하나하나 커맨드를 찾아가는 시간이 줄어들었죠.. 

이건 개발자랑 관련이 없는 내용이죠??

다른 프로젝트인 
개발 프로젝트에서는 AI의 비율이 엄청나게 높습니다. 
저희 팀은 
개발자는 언어를 가리지 않는다. 
라는 모토를 기반으로 그 모토에 수긍하는 사람들이 모여있죠. 

이번에는 AI연결은 파이썬과 프론트는 VueJS를 사용하고 있는데요.. 
Python은 다들 이번에 처음 만진다고 하는데, 
코드를 배워가면서 만들고 있다고 합니다. 
AI를 사용하면 내가 알고 있는 코드를 다른 언어로  쉽게 바꿀 수 있으면서
각 코드의 주석이나 기타 효율적인 관리 방법에 대해서 조언을 같이 들을 수 있기 때문에
언어를 더욱 신경 안써도 됩니다. 
에러가 나면 에러에 대해서도 해결을 해주고, 
왜 에러가 났는지 설명을 듣기 떄문에 판단에 도움이 됩니다. 
내가 로직만 명확하면 그에 맞는 로직대로 만들어주니까 
개발설계에 대한 베이스만 있으면 
개발 언어는 그냥 코드일 뿐이니까요..

즉, 개발 프로젝트에선 이젠 어떤 언어를 잘하는 사람을 특정지어 뽑는 것이 아닌, 
개발 설계를 잘하고 MSA의 구조에 능숙하며
요건을 논리적으로 설명을 잘하는 사람이 
개발자로서 평가를 받게 될 거 같습니다. 

심지어는 AI Agent니 MCP니 하면서 
이젠 텍스트로 코딩을 하는 세상이 되었잖아요?

여기서 메모장으로도 개발을 잘하는 사람이 진짜야 같은 
구시대 유물적인 이야기를 하면 
정말 안되는 것이죠.. 
이젠 세상이 달라졌거든요.. 

때문에 이젠 개발 프로젝트를 만들때도 
코더는 한 명 이나 0으로.. 
그리고 개발자가 한 명만으로 하나의 프로젝트를 담당할 수 있게 되었습니다. 
만약 중요 프로젝트라면 개발자 두 명이서 역할 분담 하기도 하고 
한 명이 업무를 지속할 수 없는 사태에 대비하여 
다른 한 사람이 전부 커버할 수 있는 체제로 움직일 거 같습니다. 

옛날이라면 
코더로 들어가서 몇 년 경험을 쌓고 나서 
개발자로, 그리고 아키텍트로 가는 수순을 밟아야 했잖아요?

이젠 코더가 사라지니 무경험자들은 어떻게 해야 할까요? 

저희도 신입 면접떄 언제나 물어보는게 있습니다. 
혼자서 또는 두어명의 소수로 개발을 해서 
완전한 제품으로 앱스토어 같은데 올려본 적있느냐?
또는 완전한 웹사이트로서 서비스 가능한 레벨까지 올려봤느냐?

그럼 혹자는 이렇게 이야기를 하더라구요.. 
그게 되면 혼자 만들어 혼자 서비스하지 누가 회사에 들어가냐?
라구요..

맞는 말입니다. 
하지만, 해보면 
서비스라는게 아무나 하는게 아니라는게 바로 느껴질 겁니다. 

서비스는 시장조사, 기획, 마케팅, 개발, 사업까지 모든 분야에 
나름 경험을 충분히 가진 사람들이 모여서 만들기 때문에 
한 두명이 만든 것으로 대적하기 어렵습니다. 

물론 혼자서 만들어 성공한 사람이 한 두명은 있지요.. 
그렇다고 대부분이 그거 따라해서 성공했을 까요? 
앱스토어만 예를 들어도 1년간 1억원의 매출을 내는 회사는 2%미만이라고 합니다. 
즉, 100개중 98개의 기업 또는 개인은 적자일 가능성이 높구요, 
통계적으로 기업들이 개인(또는 팀)에 비해 성공율이 3배라고 합니다. 
그리고 개인 팀 중에서도 전문 팀이 아닌 개인이 성공할 확률도 약 3배로 계산한다면 
미경험 개인이 앱을 만들어 성공할 확률은 0.1%정도라고 보시면 됩니다. 
1000개는 올려야 그 중에 한 개가 될까 말까 라는 거죠.. 

6개월 이상 개고생해서 하나 올렸는데 성공하지 않는 걸로 
실망하실 필요는 없다고 생각합니다.  
아무리 실력이 좋은 개발자가 아주 좋은 제품을 만들었다고 하더라도
그 시대의 사람들에게 운이 좋아 먹히지 않으면 안되는 것이구요.. 
아무리 기술력이 좋다고 해도 사람들의 트렌드에 맞는 UX를 설계하는 것과는 다른 이야기 입니다. 

가끔 그걸 혼동하고
자기가 회사에서 참여한 프로젝트가 저 확률을 뚫고 성공했는데
자기 실력이라고 자만하여 자기 공을 인정안한다고 
회사를 박차고 나가서 망하는 케이스 참 많이 봤죠. 

또 마구 새 버렸는데요.. 

이런 경험을 위해서라도 회사라는 곳에서 
대규모 프로젝트의 경험을 쌓아야 하는 것이구요.. 

그걸 위해서 개인 프로젝트를 만들어서 
서비스 런칭까지 해보는게 굉장히 중요합니다. 

그리고 이젠 AI시대가 되면서
더욱더 취업에 중요한 열쇠가 되는 것이죠. 

회사를 들어가서 경험을 쌓고 독립하는거냐
혼자서 서비스를 만들고 회사를 들어가느냐.. 

닭이냐 달걀이냐가 아니고
먼저 개인 서비스를 만들면서 풀스택으로 경험을 쌓고
그걸 회사에서 팀으로 완성을 시키는게 
앞으로는 필수 코스가 되지 않을까요? 

----

AI는 많은 부분을 도와줍니다. 

AI가 시장 조사를 도와주고, 
AI가 디자인 시안도 만들어주고 서비스 기획을 도와줍니다. 
AI가 개발을 도와주고
AI가 마케팅 방법을 알려줍니다. 
AI가 CS를 해주죠. 

그럼 AI가 모든걸 다하네?
라고 생각하실 겁니다. 

하지만 AI는 스스로 제로부터 하지 못합니다. 
사람이 AI에게 시장 조사를 시키고 서로 토론을 하는 것이고, 
사람이 AI에게서 받은 디자인 중에 선별하고 
기획에 대해서 묻고 많은 버전을 고민합니다.
사람이 AI에게 코드를 만들게 하지만 사람이 리뷰를 하고 승인을 하죠
사람이 AI에게 마케팅 방법을 듣지만 선정은 사람이 합니다. 
사람이 AI에게 CS대응을 시키지만 그 룰은 사람이 만듭니다. 

나중엔 사람이 하는 비율이 더욱더 줄어들겠지만, 
그 이야기는 적은 인원으로 더 많은 서비스를 만들 수 있는 것이지 
사람을 줄일 필요가 없는 것입니다. 

최근까지는 100명의 사람이 하나의 프로젝트를 만들어서 유지했다면
이제부터는 10명의 사람이 하나의 프로젝트를 만들고
멀지 않은 미래엔 1명이 하나의 프로젝트를 만들겠죠.. 

그럼 그 한 명이 되기 위해서는 무엇을 알아야 할까요?

제가 누누이 이야기 하는게 있죠. 
AI는 인간의 지식에 준하는 결과를 줍니다. 

예전의 전투기 파일럿은 두 명이 탑승하여 
한 명이 비행기를 조종하고 다른 한 명이 무기를 다루었죠. 

지금은 한 명이 비행기도 조종하고 무기도 다룹니다. 

그 만큼 비행조종술과 무기에 대한 지식을 잘 알고 비행기의 사격술도 알아야 합니다. 
파일럿 한 사람에게 요구하는 요구사항이 늘어난 거죠. 

앞으로는 사람이 줄어들지만
그 만큼 많은 지식을 요구하게 되겠죠. 
AI가 조사한 시장을 읽을 수 있는 능력이 없으면 안되고
AI가 제안한 디자인이나 기획이 시장에 얼마나 적합한지도 판단해야 하고
AI가 개발한 코드를 읽고 리뷰하고
AI가 제시한 마케팅 대로 하고나서 결과를 리뷰해야겠죠. 
AI의 CS가 문제 없는지 인간의 감성으로 확인도 해야죠.. 

아마 이걸 보시는 분들은 개발자를 목표로 하신 분들이 많을 겁니다. 
지금은 개발만 신경써왔던 여러분은 
각자 어떤 준비를 하면 될까요?
이 대답을 찾으신 여러분에게 한 마디 하겠습니다. 

잘 오셨습니다. 
AI에 의한 제 5차 산업혁명의 세계에.. 





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

댓글

이 블로그의 인기 게시물

일본 두바퀴 여행(바이크 편)

영상버전 : https://youtu.be/P3vC17iVu1I 이번에는 일본으로 넘어와서 일본 종주하시는 바이커들을 위한 정보입니다.  일본에서의 2륜의 정의가 면허와 도로교통법이 조금씩 다르다고 합니다.  그래도 그렇게 크게 신경쓸 건 없으니 딱 세 종류로 말씀 드릴께요.  50cc는 원동기 1종이라고 하여 3차선 이상 교차로에서 우회전, 한국에선 좌회전 같이 크게 도는 것이지요..  이게 불가능합니다.  직진 신호로 넘어간 뒤에 방향을 틀고 다시 직진으로 두번 꺾어 가야 하구요,  두 명이 타면 안됩니다.  그리고 맨 가장자리 길로만 가야해서 애매하게 끝에서 두 번째 차선만 직진인 곳들이 있어서 난감할 때가 있지요. 그런데에 직진하면 걸리는 곳이 있다고 합니다. 어느 정도까지 걸리고 안걸리고는 정확히는 모르지만,  직좌 마크가 아닌 좌회전 마크만 있는 곳이 은근히 많으니 조심해야 하겠더라구요.  최고 시속도 30km를 넘기면 안되어 천천히 달려야 합니다.  아뭏든 제약이 엄청나게 많으므로 60cc이상을 가져오시거나 렌트 하시는 것을 추천하구요,  125cc미만은 겐츠키 2종이라고 하여 두 명이 타도 되고, 3차선 이상에서 우회전이 가능합니다.  상당히 제약이 풀리는 대신 고속도로를 탈 수가 없지요.  만약 국도로 천천히 올라오신다면 125cc미만으로도 충분합니다.  실제로 일본인 바이커들 중에서도 국도 종주하는 모습을 많이 볼 수 있구요,  도심에 가면 125cc미만까지만 주차 가능한 바이크 주차장도 꽤 많기 때문에 도심용으로는 메리트가 큰 것 같습니다.  뭐, 125cc대는 곳에 큰 바이크를 대는 경우도 자주 보는데, 아무도 뭐라 안하긴 합니다.  그도 그럴 것이, 일본의 바이크 등록대수는 1031만대 인데도 바이크 전용 주차장은 턱없이 부족하다고 합니다. 바이크 주차장이 저렴하기 때문에 웬만한 ...

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

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