맨땅에 헤딩한다는 말이 있다. 아무것도 없는 상태에서 문제에 부딪히면서 결국 해결해낸다는 뜻이리라.

 

언젠가 유퀴즈였던 것으로 기억하는데, 한 출연자가 기업에서 받은 어려운 과제에 대해 바로 답을 내놓을 수 있는 이유는 미리 그 문제와 비슷한 문제에 대한 고민을 해봤기 때문이라고 말하는 장면이 기억난다. 결국 한번 해본 문제는 더 좋게, 잘 해결할 수 있다.

 

개발자들에게는 그러한 역량이 뭘까? 결국 직접 만들어본 경험이라 생각한다. 책으로 지식을 쌓고, 프로젝트를 통해 적용해 보면서 경험하는 것. 그로 인한 Lessons Learned를 얻는 것. 이 과정이 개발 지식을 제대로 소화하는 과정이 아닐까?

 

최근 제목에 '밑바닥부터' 또는 '직접 만들어보는'이 들어간 IT서적들이 보인다.  

특히 최근 주목받는 두 권이 있는데, 하나는 길벗에서 나온 <밑바닥부터 만들면서 배우는 LLM>, 또하나는 한빛미디어에서 나온 <밑바닥부터 시작하는 웹 브라우저>이다. 둘다 파이썬으로 LLM과 웹브라우저를 만든다.  밑바닥 시리즈는 딥러닝아닌가 싶긴 한데.. 여하튼 결국 개발자/엔지니어에게 학습 경험이란 뭔가를 따라하면서 만들어 보고, 그것을 수정하면서 고장냈다가 고쳐보고, 그 과정에서 전체적인 모델이 마음속에 그려지는 과정이지 않을까하는 생각이 들었다. 하긴 소프트웨어의 개발 풀 과정을 경험해 보기 위해 사이드 프로젝트를 하는 것 아닌가.

 

 

 

덤으로 에전에 트위터에서 봤던 직접 만들기 웹사이트도 찾아서 기록해 둔다.

레디스같은 키-밸류 캐시 만들기: https://www.build-redis-from-scratch.dev/en/introduction

 

Build Redis from scratch

How to Build an In-Memory Database like Redis from Scratch with Go

www.build-redis-from-scratch.dev

 

엇. 예전 알던 자신만의 레디스 만들기 사이트 갔더니, 레디스 뿐만 아니라 쉘, grep, 인터프리터, 토런트, 카프카, SQLite, HTTP 서버 만들기가 생겼다.추석때 해보자(추석때 해야할 게 너무 많구나....)

https://app.codecrafters.io/catalog

 

The Software Pro's Best Kept Secret.

Real-world proficiency projects designed for experienced engineers. Develop software craftsmanship by recreating popular devtools from scratch.

app.codecrafters.io

 

반응형

 

소프트웨어 개발자로서 우리는 끊임없이 새로운 기술을 배우고, 실험하며, 고민하는 삶을 살아갑니다. 기술은 빠르게 변하고 발전하기 때문에 항상 새로운 정보를 습득하고, 기존의 지식을 업데이트합니다. 저는 이러한 학습 과정을 매우 중요하게 생각하며, 이를 위해 다양한 기술 서적을 많이 읽는 편입니다.

전통적인 학습 방식

기술 서적은 깊이 있는 지식을 체계적으로 제공해 주지만, 많은 경우 참고 문헌도 함께 제공됩니다. 하지만 솔직히 말하자면, 지금까지 저는 이 모든 참고 문헌을 찾아보거나 읽어본 적이 드뭅니다. 각 참고 문헌을 일일이 찾아 읽는 것도 시간과 노력이 많이 들기 때문입니다. 그래서 종종 이런 참고 문헌을 부록처럼 무시하고 넘어가곤 했습니다.

생성형 AI와의 만남

그러던 중, 생성형 AI가 등장하면서 제 학습 방법에 큰 변화를 가져왔습니다. 특히 챗GPT와 같은 AI를 사용하면서 참고 문헌을 보다 효율적으로 활용할 수 있게 되었습니다. 요즘은 책에서 제공되는 참고 자료 URL을 챗GPT에게 요약해달라고 요청합니다. 그러면 해당 본문의 보조 내용을 추가로 얻을 수 있게 됩니다. 생성형 AI는 무언가를 찾아주는 것보다는 주어진 콘텐츠를 요약하는 데 탁월한 도구라고 생각합니다.

 

예를 들어 인사이트 출판사에서 펴낸 <대규모 시스템 설계 기초> 책의 각 장별로 참고 문헌 정보들이 많이 제공됩니다. 이 참고 문헌에 접근하는 정보를 깃허브나 홈페이지를 통해 제공하고 있습니다. 이 책의 경우 https://github.com/alex-xu-system/bytebytego/blob/main/system_design_links.md 문서에 참고 문헌 정보가 있습니다. 예를 들어 7장의 분산 시스템에서의 고유 식별자 생성 시스템 설계를 공부했는데, 좀 더 자세히 이해하고 싶다고 가정해 보겠습니다.

 

가장 단순한 형태의 프롬프트를 사용해서 질문을 했습니다. ChatGPT 4o와의 대화가 여러차례에 걸쳐 있었습니다만, 스크린 샷을 위해 하나로 모아가면서 질문한 결과입니다. 이런 방식으로 저자가 제공하는 추가 정보를 얻어서 책 본문 학습을 강화할 수 있습니다.

학습 방법의 개선

이런 방식으로 저는 학습 방법을 개선하고 있습니다. 생성형 AI를 통해 얻은 요약본은 제가 놓쳤을 수도 있는 중요한 정보나 인사이트를 제공합니다. 이는 단순히 책의 본문에 주어진 내용을 읽는 것보다 훨씬 더 깊이 있는 학습이 가능해 집니다., 생성형 AI의 도움을 받으면 보다 체계적이고 효율적으로 학습할 수 있습니다.

 

맺음말

소프트웨어 개발자는 끊임없는 학습과 실험, 고민이 필요합니다. 기술 서적을 통해 깊이 있는 지식을 얻는 것도 중요하지만, 생성형 AI를 활용하여 학습 방법을 개선하여 활용하는 것도 좋은 방법이라 생각합니다. 앞으로도 계속해서 새로운 학습 방법을 시도하고, 제 학습 방식을 개선해 나갈 것입니다. 여러분도 생성형 AI를 활용하여 보다 효율적인 학습 방법을 찾아보시길 권합니다. 함께 더 나은 개발자가 되기 위해 노력해봅시다. 끄읕~!

 

반응형

+ Recent posts