제가 어제 저희 회사 개발자들의 프로그래밍 상황을 보다가 좀 충격을 받았습니다.
개인적으로 저는 30년 가까이 프로그래밍으로 먹고 살았고, 하드웨어 개발자로도 20년 이상 외주 개발을 하면서 먹고 살았습니다.
삼성전자 내부에서 해결하지 못하는 디버깅도 해주고 나름 자부심을 느끼면서 산다고 생각하고 있었는데...
어제 조금 충격 받았습니다.
원래 제가 후배 개발자들에게도 좋은 소프트웨어가 나오려면 처음부터 컴퓨터 앞에서 코딩하지 말고, 종이와 연필로 먼저 프로그램 사양을 최대한 명확하게 또 최대한 효율적으로 정의를 한 후에... 그것을 인터페이스에 맞춰가면서 코딩으로 옮기라고 가르칩니다.
그래서 저희 회사는 선임과 후배가 약간 프로그래머와 코더의 역할을 하는 형식이었고, 버그 트래킹도 프로그램 파트는 종이를 검토하고, 코딩 파트만 실제 코드를 보면서 합니다. 그래야 좀 빠르게 버그를 찾는다는 느낌이었습니다.
저희 사업이 오작동 일으키면 인명 피해가 발생할 수 있는 faultless가 매우 중요한 프로그램들이어서 더 프로그램 사양 정의를 강조했었는데...
근래 많은 직원들이 프로그램 사양 정의에 집중하는 모습을 보고 꽤나 뿌듯해 했었습니다.
그런데... 이게 프롬프트 작업이었던 겁니다. 프로그램 사양만 아주 구체적으로 정의하니... 프로그램 코딩이 진짜 1초면 나옵니다. ㅠㅠ 충격적입니다. 더욱이 프롬프트를 아주 명확하게 짜니... 프로그램 품질도 좋습니다. 메모리도 적게 쓰면서 인스트럭션도 적게 씁니다.
물론 각 모듈별 인터페이싱은 개발자의 손길이 들어가지만... 예전에 비하면 이건 정말 아무것도 아닙니다. 대박이라고 생각했습니다.
저희는 C, C++ 코딩이 많아서 List map을 보거나 ASM으로 확인하면서 instruction 갯수도 새고 그랬는데... 정말 세상이 바뀌긴 바뀌나 봅니다.
그래서 업계에서는 LLM을 더 놀랍게 받아드리는것 같습니다.
저도 간단한 파이썬 짤 때는 그렇게 많이 이용하고
asm으로 된 함수는 복사해서 ‘c로 바꿔줘’로 해결했던 경험이 있네요. 이건 3.5 시절이고
지금은 더 놀랍죠.
그걸 인간보다 더 잘써줍니다...
gpt는 코딩보다도 기획과 브레인스토밍 아이디어회의를 훨씬 더 잘합니다.. gpt의 결과물에서 조금만 바꿔주면 됩니다.
프로그램 언어가 더 규칙적이고 체계적이라서 선행학습하기 제격이기 때문이라네요
설계와 매니징 역활이 중요하리라 봅니다
예를 들면 지금이 10월인데 내년 3월까지 개발해야 합니다. 라고 하면 6개월이라 충분히 보이겠지만..
이래 저래 계약을 밀더니 12월 말쯤에 계약을 해주고 우리가 3월까지 해야한다고 하지 않았느냐... 라고 다그치는 회사들도 많죠.
견적서에 발주 후 6개월.. 이런건 의미를 두지 않는 회사들이 많죠.
계약 기간 밀린거 얘기하면 뭐 어쩌고.. 뭐 저쩌고.. 근데 우리는 d-day 얘기하지 않았느냐... 라고.
요즘은 각종 소프트웨어 산출물에 소스코드 정적분석, 동적분석까지 진행을 해야합니다. 된장..
물론 모든 것이 그런건 아닌지라 검증이 필요하겠지만요 ㅎㅎ
사람 팀원한테 일 잘 시키는 사람이 인공지능한테도 일 잘 시킵니다.
결국엔 다 이렇게 바뀌지 않을까 싶습니다.
진짜 괜찮게 나오더군요 ㄷㄷ
구글 검색 시절 대비해서 생산성이 엄청 올라갔습니다.
신규 채용이 필요한가 싶습니다
프로그래머가 아니라 기획쪽에서요
최근 프로그래밍 외주 일감들이 씨가 마르고 있다고 합니다
- Andrej Karpathy
AI가 만든 코드를 검수할 능력이 있어야 되는데, 훈련이 제대로 안 되어 있는 단계에서 AI를 사용하기 시작하다보니 그냥 믿고 쓰더라고요. 단편적인 코드는 맞지만 전체 비지니스 로직이 틀렸는데도 이게 ChatGPT를 사용해서 만든 코드라고 자랑스럽게 적어놓은 것을 몇 번 봤습니다. 도구를 자랑할게 아니라 그 결과물의 품질을 자신이 보장할 수 있어야 될텐데 말이에요.
주니어때는 타이핑 노고 줄여주는 자동완성 정도 AI에게 맡기고 자기가 직접 작성하는 훈련을 해야합니다. 코드 생성을 맡기기 보다는 AI와 개발방향에 대해서 논의를 같이 하거나 AI에게 코드리뷰를 받는게 주니어에게는 좋다고 생각합니다.
설계의 정도? 깊이는 사람이 해야 정해야 해서 설계랑 검증은 살아 남을 것 같습니다
똥인지 된장인지도 모르고 프롬프트도 제대로 못쓰는 주니어개발자가
온보딩때 과제랍시고 들고와서 우기는 걸 보니 착잡하더군요
나름 국내 탑안에 들어가는 수학과 석사 출신인데..... 휴...
개발자 자리가 줄어든다 vs 기획자 자리가 줄어든다
둘 다 줄어들겠지만 사장님 입장에서 둘중에 누굴 더 많이 채용해야할지를 생각해 봐야할 문제인듯 합니다.
지금은 개발 vs 기획 "비율" 은 큰 차이 없을 겁니다.
극한의 미래에는 사장 혼자 하겠지만, 개발은 클라우드 기반이라고 해도 만들고 검수하고 유지보수 까지 생각하면 절대 필요 인력이 있긴 할 것 같습니다. 장애는 일어나거든요.
뭐 더 먼 미래에는 기획과 개발/ 운영도 AI 가 하는 자동화 서비스를 쓸지도....
주니어급들이 GPT 사용해서 코드 생성하는 것은 처음엔 좀 충격이었고요,
주니어가 3개월 정도 수정하면서, 잡은 구조가 십년넘게 작업해 온 엔진하고 유사하게 진행되는 것 보고 처음에 많이 놀랐습니다
.
그런데, 어차피 엔진급의 코어 관련해서는, GPT든 뭐든 못 만듭니다.
주니어급들이 이런 식으로 완전 붕괴되고 나면, 나이 70 먹고도 현역에서 높은 연봉받고 일하게 될거 같습니다. 고급 프로그래머는 언제나 대우받습니다.
편하고 좋긴 한데....헤딩을 어느 정도 해봐야 배운다고 생각하는 꼰대다 보니....
그런데... 이제 점점... 그게 왜 필요해요?라는 말에 대응할 수 없게 되고 있습니다. ㅠㅠ 근데 저는 아직도 고급 프로그래머가 되려면 하드웨어, CPU, 심지어 VLSI 설계까지도 알아야 한다는 입장이라서... ㅠㅠ
"이제 점점... 그게 왜 필요해요?라는 말에 대응할 수 없게 되고 있습니다."
이 부분이
시니어 입장에서 미치고 팔짝 뛸 노릇입니다...
프로게래밍쪽에서 어떻게 먹고 살아야 하는지...방향이 내부적으로 필요할것 같네요
신입들에게 안타깝기도 하고;
열심히 준비해서 언제든 은퇴할 수 있는 자세로,
좋아하는 개발 하며 살게 될거 같아요.
놀면서 하는데도 GPT 도움 조금만 받아도 생산성이 오르는게 느껴지는듯 합니다.
저도 작년에 처음 접했을때 놀라움의 연속이었습니다.
지금은... 이놈이 귀차니즘을 증폭시키고 있다는 걸 깨닭고 있습니다. ㅋㅋ
아무나 다 생각만 해도 설계가 다 끝날 것 처럼 광고해 왔지만 현실은
처음부터 끝까지 전체 프로세스를 이해하고 머리속에서 모두 시뮬레이션 할 정도 되어야 제대로 된 기획과 오더를 내고 완전한 결과물을 내놓을 수 있었습니다.
초기엔 당장 오너들의 환심을 사 비싼돈주고 구입해 놓구서도 결국 불편해서 일부 기능만 활용하며 다시 옛날 방식으로 돌아가고 .. 그런식으로 작업방식이 조금씩 발전해가더군요.
(현장 경험없는 초보들이 억지로 소프트웨어만 익혀서 밀어붙여 본들 대부분 현실성 없고 터무니없는 결과만 나오더군요.)
컴퓨터 기술이 발전하면 할수록 결국 그걸 컨트롤 하는 인간의 "철학, 논리, 역사"같은 지식(지혜?)이 더 중요해 질 것 같다는 느낌입니다. 그래야 제대로 된 결과물을 도출할 수 있는 "의도에 맞는 정확한 오더"를 입력할 수 있으니...
요즘 A.I에 맞춰 오류를 없애고 정확하게 질문하기 위해서라도 인간의 지능이 더 발달되고 정리되어 갈 것 같은 느낌입니다.
단백질 구조를 사람이 하는거보다 몇백배 높혀뒀으니..
필요한 인원수가 적어지는거지 사람이 편해질까...? 하는게 궁금해요
모델을 정의하고 그 모델에 어떤 역할을 하는지 얘기하고 비지니스 로직을 뽑는건 아직 개발자의 논리적인 이해력을 거쳐야하더라구요.
typescript로 특정 기능적인 부분을 뽑아줘 라고 하면...코딩은 해주는데
음...코드가 불만족 스러울때가 많습니다.
코딩 막 시작한 사람이 만들어줄법한 코드를 뽑아줄때가 있어서 다시 해달라고 해도 별로 개선이 안되는 경우가 있더라고요.
치명적인건 버그있는 코드를 내놓을때도 있고요. 이걸 구분하려면 어느정도 코딩실력이 되어야되겠구나 싶더라고요.
이제 코딩 막 시작하는 친구들이 GPT를 보면 "아 코딩은 끝났나..." 싶을거 같긴한데
중급 이상 개발자들 사이에서는 "아직 조금의 시간은 남았구나" 라는 안도감이 들기도 합니다.
물론 2~3년뒤에는 더 좋은 품질이 나올거라서 중급 개발자들도 엄청 긴장해야할거 같아요.
그리고 어느정도 중급이상 코딩의 결과물을 바랄때는 GPT보다는 클로드가 좀 더 나을때가 많았습니다.
로봇도 몇년 안 남았는데 빨리 대책을 세워야 합니다.
생각 없는 대통령부터 바꿔야 합니다.
실력있는 신입 사원에게 일 시킬 때처럼 prompt를 작성해야한다..라고 교육자료에서 봤네요 ㅎ
그걸 실제 경험하신거군요 ㅎㅎ
제대 후 비주얼 스튜디오 처음 써보고 충격에 빠져 '코더는 돈 주고 사 쓰면 된다. 기획을 하자.'라는 판단을 했지요.
터보C 2.0에 각종 라이브러리 붙여서 인터페이스 까지 직접 짜던 건 바보 짓이었어요.
이젠 인터페이스 뿐 아니라 코어도 프롬프트만 잘 넣어주면 뚝딱 아주 깔끔하게 만들어 주더군요.
심지어 퀄러티도 평균이상이고 결과까지 일정하고...기획기간동안 업무로딩 늘어나도 불평없고 책임지지도 않을 똥고집도 안부리고..결과물도 거의 무한대로 뽑아내니 편합니다....
심지어 수백개의 결과물중 빅데이터를 이용해 최종선택하는 부분까지 가능하더군요...
인공지능이 인간을 통제하는 시기가 생각보다 빨리 올 수 있겠다 느꼈습니다...
본문처럼 용어도 생소하지만 그때의 커멘드 프롬프트나 에디터 브아이 같은 추억이 새록 납니다.
한가지 우려되는건 신입개발자들 코드 질은 좋아졌는데 정작 본인들의 지식은 얕아졌더라구요.
과정에 대한 몰이해한 상태에서 결과만 뽑아내니 과정에 대한 설명도 제대로 못하고, 파생되는 문제도 잘 못 잡더라구요.
혹시 이것 관련해서 교육이나 좋은 유튜브 채널이
있을까요?
교육용으로는 어느 정도 괜찮겠지만...
현업에서 바로 써먹긴 어느 정도 한계가 있지 않나 생각합니다.
VSCode에서 메소드 추천 정도 해주는 기능도 괜찮을거 같기는 합니다.
사람이 실수하죠.
하찮은 일용직 돌아댄기는 놈입니다만…
테이터투명성이나 간단한 제어문 조작도 이해 못하는 사람이 너무 많긴합니다만…
이걸 인공지능에게 시키려고해도…
뭘 시킬지 알아야 시키죠 ^^;
이러니 저러니해도 요즘 개발환경에서 제일 답답한건 요구사항이 공중그네인거라고 생각합니다.
“거 왜 있자나요 그거~ 좋은거~”
도스로 명령어치면서 이동하다가 윈도우로 넘어간 느낌인거죠...
명필 아니고 도장찍는법 몰라도 문서결제나 회계처리 할수 있고
윈도우 쓰면서 도스 명령어 몰라도 작동 되듯이
코딩언어를 몰라도 ai를 통해 프로그램을 만드는 시대가 된듯합니다.
똑같이 짜서 올리는걸 보고 아 이미 다들 이렇게 일하기 시작했구나 하는 생각을 했습니다.
반응실험이 필요한 분야는 거의 무용지물인 경우가 많죠.
시뮬레이션 결과 자체가 현실과 다른 경우가 많거든요.
계속 AI에 의존하니까, 반대로 제가 리뷰하는 대부분의 코드가 이미 AI가 만들어준 코드를 리뷰하고 있고, 이걸 되물으면 모르더라구요
전 훌륭한 선생님 모시는 기분입니다.
모르는 분야가 나오면
개념 설명해 주세요.
어떻게 구현하면 되나요?
오늘도 도움 주셔서 고맙습니다.^^
전 AI에게 항상 감사와 아부를 하고 있습니다.
친하게 지내려구요.
그런 과정이 생략되면서.. 컴퓨터 공학의 본질을 망각하는 일이 생겨버리겠죠. 기업들은 기다려주지 않으니..
AI를 통해 과정 없는 결과를 찍어내다보면..... 결국 사람은 성장을 못하죠. 아마 어느 시점 부터는 고급 인력 부족으로 난리가 날 듯..
충격받으실 게 아니라 오히려 효율이 많이 올라가는 거라 잘 활용하시면 좋을듯 합니다. ㅎㅎ
중간 댓글에도 있지만, 이건 주니어나 프로그래밍을 모르는 사람들에게 독이라는 점을 주의해야 하죠. 확실히.. 경력자들이 아닌 이제 시작하는 주니어들은 기초가 더 부실해질 수 있겠어요...