AI 시대에서 살아남는 방법
Working like AI 요즘 내가 갖추고 있는 자세이다. 24시간중 16 coding 7 sleep 1 work out을 지키고 있다.
16 coding엔 실제 코딩이기도 하고, 책을 읽기도하고 아티클을 조사하기도하고 어찌되었건 컴퓨터 공학을 하는 활동이다.
AI 시대에서 살아남는 방법이라는 질문을 다들 아주 많이 하는 것 같고, 나 역시도 고민을 해봤다.
그러나 결과적으로 소프트웨어 개발에서 본질적으로 바뀐것은 존재하지 않는다.
과거 컴파일러를 통해 시스템을 개발하고 컴퓨터가 기계어로 해석되게 하는것을 성공했을때, 나는 컴파일러가 개발해줬어요 라고 말하는 사람이 없듯
AI도 결국엔 수단일 뿐이고, 본질적으로 AI로 생산한 코드는 source of truth 이며, 그 구조를 이해하지 못한다면 문제가 발생할 것이다.
AI로 인해 아주 많은 코드들이 찍히고, 인간은 그걸 그대로 읽기 힘들기에, 그 해석과 품질 게이트, 코드 리뷰, Lint 등도 AI에게 위임한다.
그래서 내가 갖고있는 생각은 이제 모든 개발자들은 테크리드 or CTO 처럼 일해야 한다. 인 것 같고, 매니징의 대상은 AI이다.
물론 AI를 쓴다고해서 사람과의 관계 협업하는 자세가 부족해서는 안된다, AI로 인해서 협업하는 인원수가 줄어든 것 뿐이지, 어찌되었건 조직 내에서는
또 사람들과 소통을 하고 개발을 할 것이다, AI로 쌓아온 시스템에 새로 조인한 멤버가 들어오면 그 멤버는 바로 그 시스템을 이해할 수 있을까?
그리고 우리는 그 시스템을 이해시키려면 어떤 고민을 해야하고 어떤방식으로 온보딩을 해줄 수 있을까? 이런 질문자체도 AI한테하면 뚝딱 해결해주지 않을까 싶다.
AI는 마약인가? #
AI는 마약이 아니다. 왜냐면 마약은 하면 기분좋고 개꿀인데 부작용이 심하며 바로잡으려면 스스로의 힘이 필요하고 그거마저 어렵다.
AI는 살짝 다르다. 개꿀이고 생산량도 많아지고 겉잡을 수 없이 커지지만 그거 자체도 AI한테 제어해달라고 요청할 수 있기 때문이다.
과거 AI가 존재하지 않을때는 시스템 본질적인 깊이에 대한 low level system fomo를 갖고있었던거 같다.
백엔드 개발자들이라면 운영체제나 컴퓨터 시스템에 대한 이해는 중요하지만 서비스 개발자로서 cpu의 clock 같은게 어떻게 이루어지고 몇싸이클에 얼마나 처리하고
이런것들은 알면좋지만 필수는 아니다. 그거 아니여도 어느정도 적당한 규모의 서버 시스템은 쉽게 만들 수 있을 것이다.
지금은 AI 시스템을 이해하기 위한 AI 지식 low level fomo도 존재하는 사람들도 있지만 좀 다른 유형의 fomo를 몇번 관측해본 것 같다.
내가 이 시스템을 AI를 통해 쌓고나서 이 구조를 이해하지 못할까봐 하는 미래에 관한 fomo랄까, 그거 신경쓰지말고 일단 만드는게 어떨까.
회사 내에서 보안적으로 그리고 또 가용성과 신뢰성이 많이 중요한 시스템에선 고민은 해보긴 해야겠지만, 신뢰성이 중요하다고 해서 아예 도입하지 않는것은 아닌거같다.
시대는 바뀌고 세상은 발전한다, 그거 자체가 과제이지 않을까.
AI 시대에서 갖춰야할 강점은 무엇일까 #
나는 개인적으로 가속성이라고 생각한다. 음? AI가 가속성을 챙겨주고 있는 것이 아닌가? 라고 생각할 수 있다.
한 서비스를 만들면 그 서비스를 시장에 내놓고 피드백을 받으며 수정하고 다시 내놓고의 싸이클이 기본적인 서비스 시장에서의 전략인데,
AI로 인해서 시장에 내놓고, 수정하고 라는 것에 대해서 시간적 제약이 0에 수렴하게 될 정도로 (특정한 정책안에 막히지 않는다면) 쉬워졌다.
직관적인 예시로 100줄의 코드 수정이 한번의 피드백에 필요하다고 쳤을때 기존에는 하루에 100줄정도 짠다고 가정하자.
근데 기본적인 보폭이 이제는 하루의 1만줄 10만줄도 짤 수 있게 세상이 바뀐것이다. 그럼 기본 보폭이 1만줄인데 아직도 그 100줄만 빨리 짜게 일할것인가?
아니다. 기본 보폭을 100줄이 아닌 1만줄로 잡고 더 많은 수정과 시도들을 진행해야한다. 연락을 받는것도 많은 사람들에게 연락을 돌리는것도
이제는 인공지능 에이전트에게 맡기고 그 의견을 패스하고 드랍하고 등등등을 또 인공지능에게 맞기며 최종적인 검토와 그 패스/드랍의 기준을 세우는 것이 지금 개발자의 역량이다.
그리고 그런 시스템을 구축하는 나만의 워크플로우와 파이프라인을 구축하는것이 지금 갖춰야할 강점이고, 이는 가속성을 늘리기 위한 활동임을 의미한다.
AI 시대에서 공부하는 방법 #
나는 개인적으로, 책 읽기를 아주 고평가한다. 전공서적, 인문학, 자기계발서 등등 할거없이 한달에 적어도 4~5권은 읽고있는데,
인공지능 시대라 위대하신 LLM님께 어떠한 개념에 대해 질문하고 꼬리질문하고 꼬리질문해서 학습하는 방식도 좋다고 생각한다. 이는 DFS의 학습이다.
그런데 가끔가다 병목이 있을 수 있다. 예를들어 백엔드 개발자에서 AI엔지니어로 전환하는것과 ML 엔지니어에서 AI엔지니어로 전환하는 것중에
기초적인 너비와 기본적인 BASE가 다를것이고 후자의 경우에는 LLM 기반 DFS 학습이 쉬울것이다. 백엔드 개발자도 불가능한 것은 아니지만,
그리고 그냥 읽기만 하지않고 질문을 입력하는 context switching이 양날의 검이라고 생각한다. 장점은 내가 무엇을 모르는지에 관한 메타인지를 잘 할 수 있다는 점이고
단점은 그것이 비용이고 귀찮아 하는 사람은 하지 않는다는것, 아까 본 전자의 경우에는 내가 뭘 모르는지조차 모를 수 있기 때문에, 책을 읽는것을 추천한다.
메타인지라는 것은 중요하지만 반대로 어렵다. 그렇기에 많은것을 모를때 기초 배경지식을 쌓는것은 중요하고 나는 책읽기를 고평가한다.
질문을 던져주고 개념을 알려주고 활용을 시켜주기 때문이다, 책이라는 작자는 질문 자체를 던져준다는 것에 나는 고평가를 하고있는 것이다.
그저 읽고 많이 읽으면 어느순간 나는 강화되어있는 마법을 느끼게 해준다. 그리고 새로운 작업을 할때 새로운 시야로 무언가 문제를 바라볼 수 있게 되기 대문이다.
두번째로는 온디맨드 학습인데, 안드레 카파시가 온디맨드 학습 즉 어떠한 소프트웨어를 만들지 목표를 세우고 개발을하고 막히는 부분에 대해서
파고들면서 학습하는 방식을 강조했다. 이는 이 방법만이 좋다기보다는 이것도 결과적으로 메타인지로 수렴하는데 뭘 모르는지 알고있기 때문이다.
그리고 개발을 하면서 맞이하는 질문은 웬만해선 시장에서도 필요한 질문들일 것이고, 내 역량 강화에 좋을 것이다.
음 이것도 근데 비용이 있다 바로 개발을 해야한다는 것이고 AI가 그걸 지금 잘 줄여주고 있다는것인데, 인간은 적응을하고 더욱 불평하는 오만한 동물이라서
AI한테 프롬프트 하나 치는 것 만으로도 귀찮아 하는 사람이 있을 수 있다. 하지만 음.. 일단 아래에 세가지를 언급했는데 공부하는 법으로 정리해보면
- 책읽기
- LLM DFS
- Project OnDemand
여기서 책읽기 -> LLM DFS -> Project OnDemand 로 넘어가면서 늘어나는 것은 내가 물음표를 얻기위해서 하는 비용이 높아지는것이고 그 질문에 대한 가치도 따라서 높아진다는 것이다.
여기서 가치는 지식 자산 자체의 대한 가치보다는 나 자신이 지금 가장 필요로 하는 우선순위를 의미한다.
그렇기에 AI 시대에 공부하는 방식은 내가 메타인지를 하기위해서 쓸수있는 비용과 얻을 수 있는 지식, 몰입할 수 있는 환경등을 잘 고려해서 알맞게 학습하는것이 중요하다.
결론적으로 #
결론적으로 개발자가 갖춰야할 것은 바뀌지 않았다. 기본적인 보폭이 바뀐 것 뿐이다.
도메인 지식이 고평가되며 동작원리와 핵심적인 학술을 연구하는 사람들은 더욱 강점을 갖게 될 것이다.
어쨋든 학습을 해야해나가야한다, 너무 자주 바뀌기도한다. 그 자주 바뀌는것을 빠르게 모으고 반영하기 위한 유연성을 갖춰야한다.
그 유연성은 어떻게 갖출까. AI한테 시키자, 모든 질문에 대한것과 내가 갖고있는 문제를 인지하는 메타인지를 세우고 그 인지를 AI에게 해소시켜달라하자.
시대가 발전함에 따라 우리는 그저 더 많은 물음표를 생산해야할 뿐이다.