아이가 태어난 후 100일을 채우면 부모는  100일 잔치를 연다. 아이에겐 이 세상에서 처음 맞이하는 기념일이다. 지금도 고3 수험생들이 그러는지 모르겠지만, 대학 입학 시험을 앞둔 100일전 평상시라면 하지 않을 약간의 일탈 행위(여학교에 가서 방석을 훔치거나 막걸리를 마시면서 합격을 기원하는??)를 벌이기도 한다. 사회는 적정 수준에서 100일이라는 명목으로 눈감아주기도 했다. (지금은 가치관이 바뀌어서 여학교에 무단침입에 방석을 훔치면 절도행위가 된다.) 상고시대로 올라가서 단군 신화에서 환웅의 아들 환인은 사람이 되고싶었던 곰과 호랑이에게 동굴에 들어가서 100일동안 쑥과 마눌만 먹으면 인간이 될 수 있다고 말한다.

 

100! 인생 첫 기념일이 되고, 합법적 일탈도 허용하고, 사람이 되고 싶은 곰이 쑥과 마늘을 씹던 매직 넘버...

인간에게 100일은 어떤 의미일까? 이번에 읽은 "#100일챌린지"는 일본의 평범했던 상경대생이 우연히 GPT를 만나 소프트웨어 개발을 접하게 되고 100일간의 여정을 통해 전문 개발자로 변해가는 성장기이다. 우연찮게 시작된 개발 이벤트가 끈기와 함께 AI가 결합되면서 성장을 가속화한 주인공의 이야기이다. 물론 AI의 도움만 있었던 것은 아니다. 적시에 적절한 자극과 도전을 제공한 (인간) 지도교수도 있었다. 

 

#100일챌린지/오츠카 아미/인사이트

 

 

코딩의 ㅋ도 모르던 오츠카 아미는 우연찮게 수업 시간에 보고서 적는 법을 배우다가  챗GPT에게  '오셀로를 만들어줘'해서 진짜로 만들어 버리는 사건이 벌어진다. 교수님은 오츠카에게 계속 도전해 보기를 권한다. 이 사건을 계기로 오츠카는 매일 하나씩 도전 과제를 선정하고 이를  GPT와 함께 완성해 가면서 프로그래밍의 개념을 배워 간다. 그 모든 과정을 트위터에 공개한다.  처음에는 프롬프트만 입력하다가 재귀함수를 배우고, 클래스를 배우고, 디자인패턴을 배우고... 그 과정속에서 경험과 고민이 확장되는 과정을 엿볼 수 있다. 인공지능을 활용한 창의적 성취와 꾸준한 노력의 힘을 잘 보여주는 이야기(실화 바탕)인 셈이다. 예전에 소개했던 도연초 150단이 생각났다.

 

이 책을 읽으면서 학습에 대해서 다시 한번 생각해 보았다. 나는  프로젝트 기반 학습, 즉 Learning By Doing 이 효과적이라 생각해 왔다. 그런데 이제 AI시대에는 Doing And Learning으로 바뀌는게 아닐까 하는 생각도 잠시 들었다. 예전에는 구조화된 학습 경험을 통해 의미있는 학습을 이끌어냈다면 지금은 무언가를 하면서 동시에 학습도 함께 일어나는게 아닐까? 예전에는 뭔가를 하면서 자연발생적으로 배우는 비용이 구조화된 학습에 비해 훨씬 많이 들었는데, 이제는 AI와 함께 바로 문제에 부딪쳐 보면서 학습하는 것도 비용이 많이 들지 않아서  괜찮은 방법이 아닐까 하는 생각도 해보았다. 뭐랄까 예전엔 그냥 삽질이었는데, 이제는 AI 덕분에 스마트한 삽질이 되는 것 같은 느낌. 사족이지만, 나는 그래도 여전히 Learning By Doing With AI가 가장 효과적이라 생각한다.

 

책을 읽으면서 밑줄쳤던 몇몇 구절을 소개하면 다음과 같다.

  • 제텔카스텐을 사용하면 예전의 아이디어와 지금 하는 작업을 자연스럽게 연결할 수 있다.
  • 프로그래밍에서도 진척 상황, 막혔던 부분, 사용할만한 프롬프트용 정보 등을 빠짐없이 기록해 두었다. 어디서 어떻게 활용했는지도 자세히 적어놓았다. 자료만 손에 있으면 언제든 챗GPT와 상담할 수 있으니까. 이 메모는 처음엔 철저히 개인적인 비망록이었지만, 지금은 100일 챌린지의 진척을 관리하는 중요한 도구가 되었다.
  • 코드만 짜는 거라면 경험이 없어도 프로그래머는 될 수 있어. 하지만 그건 엔지니어와는 달라. 프로그래머는 주어진 일을 코드로 구현하는 역할을 하지. 하지만 엔지니어는 시스템 전반을 바라보고 효율적인 알고리즘을 선택해서, 그 시스템을 어떻게 실현하고 확장할지, 장기간에 걸쳐 운용할 수 있을지를 고민해야 해. 그러려면 수학과 논리학의 기초지식은 필수야.
  • 그냥 좋아하는 걸 일로 삼고 싶었던 게 시작이었지. 근데 그게 내 길을 열어줬어. 너도 좋아하는 걸 믿고 밀고 나가면 돼.
  • 게으름이라 여겼던 '대충하기 위해 전력을 다하는 자세' 그것이 '프로그래머의 본질'이나 '재능'
  • 다만 재사용 가능한 프로그램을 만든다는 정답만 추구하다 보니 어느순간 부터 내가 원하는 걸 잃고 실력에 안맞는 완성형만 좇고 있었다.
  • 기술적인 문제나 고민은 여전하지만 그것조차 고통이 아니라 일상의 일부이자 창작의 묘미
  • 눈에 띄지 않을 만큼 작은 진척들이 쌓이고 쌓이면, 언젠가는 그것이 확실한 실력으로 드러날 테니까.
  • 프로그래밍 학습이 지속되지 않는 가장 큰 이유는 공부방식이 지루해서다.
  • 배움이란 원래 그런거다. 나아가면 나아갈 수록 지금 내가 나아가고 있는 건지조차 잘 안보이게 된다.
  • 지속이란 고통이 아니라 습관으로 즐기는 것. 매일 조그만 호기심을 찾아 몰입하는 것, 그 습관이야 말로 내가 100일을 이어올 수 있었던 비결일지도 모른다.

책을 읽다가 일본의 교육과정이 궁금해졌다. 94일째 과제를 하면서 선형대수에 나오는 아핀 변환이라는 토픽을 떠올리다니.. 일본 상경계 대학생들은 다들 수학 천재인가? 아니면 주인공이 숨은 이과생이었던 걸까?

 

여하튼 100일의 위대한 도전을 읽고 예전 컴퓨터 프로그래밍을 처음 배우던 내 모습이 다시 생각나서 피식 웃음이 나왔다. 즐거운 책 읽기였다. 다 읽고 나서 아들에게  이 책을 읽어보라고 전해 주었다. 아이는 책을 읽으면서 어떤 생각을 하게 될까?

 

아참, 사람이 되고싶었던 곰의 결말을 아는가? 호랑이는 100일을 못채우고 뛰쳐나갔고, 곰은 꾸역꾸역 노력했다. 이에 감동한 환인은 삼칠일, 즉 21일만에 곰을 사람으로 바꾸었고, 사람이 된 웅녀는 단군을 낳았다. 그만큼 100일은 길고도 긴 시간이다. :) 그 긴 시간을 도전한 주인공의 위대함에 박수를 보낸다.

 

 

반응형

우리 회사는 개발자들에게 AI개발 도구인 커서 팀 버전을 지원합니다.

 

IDE는 개발자들이 매일 만나는 도구입니다. 그런데 도구별로 아주 많이 다르진 않다보니 한번 사용법을 익히고 나면 다른 IDE의 사용법을 따로 익히지 않습니다. (호랑이 담배 피던 시절에는  비주얼스튜디오 사용법에 관한 책도 출간되었었죠. 누가 번역했더라; 책 뒷날개를 보니 최근 영진에서 비주얼스튜디오 코드 가이드도 냈었네요.)  특히 최근 나온 IDE 도구들이 VSC를 기반으로 확장되다 보니 어느 순간부터 비슷한 느낌으로 대충 사용하게 됩니다.(저는 VSC가 IDE가 아닌 코드 에디터로 봅니다.) VSC기반인 커서도 마찬가지입니다.

 

하지만 AI가 코딩에 대해 새로운 관점을 열었기 때문에 관련 도구도 제대로 사용해봐야겠다는 생각에 커서 관련 책을 읽게 되었습니다.

AI 에디터 커서 완벽 가이드/키노시타 유이치로/영진닷컴

 

<AI 에디터 커서 완벽가이드> 책은 일본에서 나온 입문서입니다. 실용성을 강조하는 일서만의 느낌이 있습니다. 대략 300쪽 남짓의 분량이지만, 개발을 해오셨던 분이라면 쉽게 읽을 수 있습니다. 책은 크게 3부분으로 나눌 수 있습니다. 처음 1장부터 3장까지는 기본적인 커서의 사용법을 설명합니다. 4장에서는 커서의 각종 설정을 다루고, 5장에서는 실전 예제를 다룹니다. 책에서는 파이썬과 자바스크립트, 모바일(스위프트로 만들고 플러터로 전환하는 방법)을 다루고 있습니다. 6장은 부록 느낌으로 전체적인 AI 코딩에 대한 생각을 저자 나름의 관점에서 정리하고 있습니다.

 

저는 4장이 괜찮았습니다. 기본적인 사용법을 알고있는 터라 3장까지의 내용은 술술 넘어갔습니다. 그냥 이렇게도 쓸 수 있겠군 하면서 다음 장으로 넘어갔습니다. 4장은 제대로 커서를 사용하기 위한 각종 설정 방법을 정리합니다. 물론 문서 사이트를 뒤져보면 설명이 나오겠지만,  현업에서 필요한 설정을 잘 정리했다는 생각이 들었습니다. 5장은 조금 아쉬운데, 예제들이 너무 단순하고 실용적이진 않았습니다. AI코딩의 기본 개념을 느낄 수 있을지는 몰라도, 이미 커서를 사용하시는 분들이라면 조금 식상하게 느껴질 수 있습니다.

 

처음 커서를 사용하시는 분들이라면 이 책을 읽으면서 전체적으로 이러한 도구의 동작원리를 이해하고 어떻게 사용해야 할 지에 대한 감을 익히는데 도움이 될 것 같습니다. 이미 커서를 사용하고 계신 분들이라면 3장과 4장 정도만 조금 집중해서 읽으시고, 다른 장들은 가볍게 읽으셔도 되겠네요. 4장을 중심으로 팀 표준을 만들어 보는 것도 유익할 것 같습니다.

 

 

전체적으로 깔끔한 커서 입문서였지만, 몇가지 아쉬운 점이 있습니다. 

 

5장 예제에서 문자 코드를 변경하는 원라인 커맨드를 만드는 과정을 다루는데요. SHIFTJIS 인코딩을 예제로 설명하였더라구요. (170쪽 근방) 이 부분은 EUC-KR 파일을 UTF-8으로 변환하는 식으로 번역하셨으면 더 좋았을 것 같습니다. 179쪽을 보면 정규표현식으로 '단기'를 '서기'로 바꾼 부분이 있어서 더 그런 생각이 들었습니다. 일본 자체 역법을 우리나라 상황에 맞게 풀어내신 것 같은데, 문자열 변환도 우리나라 상황에 맞게 바꿨으면 하는 바람이었습니다.

 

또 270쪽의 앤트로픽의 프롬프트 엔지니어링 문서는 한글판이 있으므로 한글판 URL을 소개해 주셨으면 금상첨화였지 않았을까 싶습니다.

 

읽다가 166쪽에서 오타를 발견했는데요. 프롬프트에서 4번 항목은 '각 생에서'가 아니고 '각 행에서'가 맞습니다. 167쪽 그림에도 잘못 입력되었는데, AI(LLM)이 이 정도 실수는 잘 이해하고 넘어가니 참 좋은 세상입니다!

 

여하튼 다들 한번씩 읽어보시면 커서라는 도구의 잠재력을 100% 활용하는데 도움이 되리라 생각합니다.

 

반응형

+ Recent posts