기본 콘텐츠로 건너뛰기

chatgpt를 이렇게 쓰고 있습니다. 쓰면서 느끼는 AI의 근미래





얼마전에 개발코드를 좀 만져야 할 일이 있었습니다. 

서버 작업이 귀찮아서 bash shell 코드를 chatgpt에게 요청 했지요. 



그 코드를 붙여 넣자, 에러가 나왔습니다. 
그래서 그 에러 구문을 다시 chatgpt의 소스코드 보여준 세션에 넣고 

centos에서 하니까 에러가 뜨는데? 라고 하니 centos용 수정된 버전을 알려주네요.. 

centos버전으로 받은 스크립트를 실행하니까 이번엔 다른 에러가 떠서 에러 코드를 넣어봤죠. 



그랬더니 Bash 에서 지원되지 않은 부분을 파악해서 수정을 해주네요.. 
수정된 것을 넣었는데도 에러가 떠서 다시 말했습니다. 

그랬더니 chatgpt는 내가 사용하는 bash버전이 안맞는다는 사실을 인지하고 낮은 버전의 centos에서도 돌아가는 스크립트를 만들어 주었습니다. 

그래서 돌렸더니 잘 돌아가더군요..

제가 직접 일을 하면서 사용하고 있는 내용입니다. 

다른 많은 영상에서는 실제 사용하는 느낌보다 이렇게 되는 겁니다 하는 식의 좀 먼 이야기 같은 영상을 보셨겠지만, 
개발 또는 서버 작업을 하시는 분들은 이 내용을 보시고 어떤 생각이 드시나요?

혹시 개발자 분들,
나 이대로 개발자 해야하는건가? 
라던가, 
개발자는 앞으로 chatgpt가 말한거를 붙여넣고 실행만 하는 직업이 되는거 아냐?
라고 생각하시지 않으셨나요? 

chatgpt로 인해 인류의 일자리가 없어진다느니 하는 이야기 이전에, 
chatgpt로 인해 많은 고급 일자리의 허들이 낮아져서 
초보들도 복붙만 할 수 있고, 내용만 알면 고급 업무를 할 수가 있는 것입니다. 

이게 현실이고 여러분의 눈앞에 일어나고 있는 일이지요. 
많은 IT엔지니어들이 비슷한 레벨에서 치열하게 경쟁을 하는 모습이 눈에 선하네요. 
이들을 넘어서기 위해서는 chatgpt를 이용해도 어려운 보다 상류 공정의 일들을 빨리 할 수 있어야 그나마 낫지 않을까요? 그것도 얼마나 오래갈 지는 모르겠지만, 
제가 설명드린 그런 프로젝트 문서들이나 고객과의 조율 등등을 고려한다면, 
상류 공정으로 빨리만 진입할 수 있다면 그래도 좀 버틸 수 있지 않을까 합니다.

요즘 안건들 보니 생성형AI안건이 무지 많이 나오고 있네요..

또 다른 이야기를 해봅시다. 

2017년경 제가 한국에서 AI의 특이점이 온다고 하면서 강의하고 있을 때였습니다. 
AI를 콘트롤 할 수 있는 것은 공학도가 아니고 수학자일 것이라고 이야기 했지요. 
모든 ML의 공식은 수학식이었으니까요.. 
즉, ML의 원리를 알고 그 조합을 어떻게 만드냐에 따라 결론이 전혀 달라지기 때문에, 
앞으로는 수학자들이 AI를 강화시켜갈 것이라고 했는데요.. 

그런데, 지금은 이렇게 말하고 있습니다. 
사람들은 자기가 무엇을 질문하는지 잘 모르기 때문에 검색도 한 번에 결과를 얻기 힘들지요.. 검색을 한 결과를 보고 이런 단어면 더 내가 원하는 결과를 얻지 않을까 하고 다시 검색을 반복해 보다가 결국 마음에 드는 결과를 얻게 됩니다. 
이젠 chatgpt에게 정확한 대답을 얻기 위한 문장을 얼마나 잘 만드느냐가 시간을 절약해 주고 있습니다. 
즉, 프롬프트 엔지니어가 각광을 받게 될 것이고, 
이들은 국문학자 또는 언어학자가 가장 적합할 것입니다. 

주변에서 제게 질문을 하죠.. 
우리 자식은 어느 과를 넣어야 할까요? 
이젠 컴퓨터 공학과가 아니라 국문학과일까요? 
하지만 수 년 만에 이렇게 트렌드가 바뀌듯이, 
내년에는 어떠한 전문가가 AI에 더 친근해질지 아무도 모릅니다. 

많은 동영상이 낚시성으로 하듯
이런 직업이 망할거고 이런 직업이 뜰 것이야 하는 내용은 
이젠 저는 확신있게 말할 수가 없습니다. 

AI는 창의적일 수 없다?


AI는 창의적일 수가 없다고 하는데 

창의적이라는 것은 정말 없는게 나오는 것이 아니라, 
뇌에서 그 동안의 경험의 조합에서 나오는 것이기 때문에 
새로울 수가 없습니다. 

창의적인 디자인의 풍선이라고 한다 해도, 
결국 풍선의 형태를 사람의 뇌에서 경험한 내용 중에 어떠한 조합으로 나왔을 때 창의적이라고 할 뿐이지요.. 

때문에, AI가 창의적인 결과물이 나올 수 있다는 것을 믿으시겠지요?


생태계의 정점은 AI가 될 수도... 


인류학자가 
인류가 전 생태계의 정점에 설 수 있었던 이유는 
인류에게는 가상 뇌가 있어서 인간은 그 뇌의 뇌세포 처럼 다른 뉴런에게 정보를 복제하고 죽어서 인류는 계속 지난 시간을 학습하고 성장하여 정점에 달할 수 있었다고 합니다. 
즉 종이에 적고, 구전을 하면서 다음 세대에 남기고 그걸 축적해온 것이 현재 인류인 것이죠.

이미 chatgpt는 다른 chatgpt와 의견을 나누고 서로 틀린 내용을 바로 잡고 있습니다. 
그러면 chatgpt의 노드 또는 팜 하나가 무너진다고 해도 다른 chatgpt들이 학습했기 때문에 인류라는 가상뇌와 같은 지식과 경험을 유지할 수 있다고 봅니다. 
그리고, 인류의 수억배의 속도로 학습하고 추론을 하고 있지요. 
전 이게 가장 무섭다고 생각하는 부분이고, 
조만간 정점에 있는 것은 AI이고 그 먹이사슬 아래에 인간이 있지 않을까 생각합니다. 




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