요즘 개발자들 사이에서 이런 이야기를 자주 듣는다.
"AI를 쓰면 생산성은 올라가는 것 같은데, 내가 점점 멍청해지는 것 같다."
문서를 먼저 열어보기보다 AI에게 먼저 묻고,
에러를 직접 읽기보다 로그 전체를 그대로 붙여넣는다.
어느 순간부터 헤매는 시간이 사라진다.
근데 원래 공부는 그 헤매는 시간 안에서 많이 남는다.
이와 관련해서 우아한테크코스에서 코치 활동을 하고 계신 동준님과 이야기를 나누었다.
동준님은 AI를 학습에 어떻게 반영할지 계속 실험하고 계셨다.
처음부터 AI에게 전부 맡기는 방식은 아니었다.
먼저 사람이 생각하고,
그 다음 AI로 정리하거나,
모르는 것을 찾아가며,
점진적으로 학습에 AI를 반영하는 방식이었다.
AI를 쓰지 말자는 것도 아니고,
AI에게 다 맡기자는 것도 아니었다.
핵심은 AI와 함께 배우되,
내가 직접 생각하고 판단하는 시간을 어떻게 남길 것인가였다.
동준님이 특히 중요하게 본 것은 "좋은 원천 소스를 다시 보게 만드는 구조" 였다.
요즘은 유튜브, 쓰레드, 블로그, 요약 콘텐츠가 너무 많다.
"AI로 딸깍하면 된다"는 이야기도 많고,
새로운 도구 소개도 매일 나온다.
근데 결국 오래 남는 학습은
좋은 공식 문서와 원천 소스를 스스로 읽고,
내 상황에 맞게 해석하고,
직접 적용해보는 과정에서 생긴다.
그래서 동준님이 잡은 방향이 흥미로웠다.
"AI Agent를 배우기 위해
나의 AI 학습 Agent를 직접 만든다."
예전에 TDD를 배울 때
TDD로 xUnit 같은 테스트 프레임워크를 직접 만들어보는 예제가 있었다.
테스트를 배우려고 테스트 도구를 만들고,
그 도구로 다시 테스트를 더 깊이 이해하는 방식이다.
동준님의 접근도 비슷하다.
AI Agent를 배우려고 나의 AI 학습 Agent를 만들고,
그 Agent로 다시 Anthropic 공식 문서와 커리큘럼을 학습한다.
내가 만든 학습 Agent는
공식 문서를 읽고,
어려운 개념을 다시 설명하게 만들고,
내가 놓친 부분을 퀴즈로 확인하게 만들고,
AI가 왜 그렇게 판단했는지 다시 설명하게 만든다.
단순히 "쉽게 설명해주는 챗봇"이 아니다.
내가 더 깊이 생각하게 만들고,
좋은 원천 소스를 다시 보게 만들고,
다음 학습으로 이어지게 만드는 도구다.
이렇게 하면 Claude Code 사용법 자체를 외우는 것보다 더 중요한 것을 다루게 된다.
"AI가 준 답을 어떻게 판단할 것인가?"
"좋은 원천 소스를 어떻게 계속 학습할 것인가?"
"내가 이해하지 못한 내용을 어떻게 다시 추론하게 만들 것인가?"
"내 학습 방식에 맞는 도구를 어떻게 직접 만들 것인가?"
이 질문에 계속 답하는 과정이 필요하다.
특히 취준생이나 주니어 개발자라면 더 그렇다.
AI가 아무리 코드를 잘 짜줘도,
면접에서는 여전히 깊이 있는 이해를 본다.
"왜 그렇게 구현했는지"
"다른 방식과 무엇이 다른지"
"어떤 트레이드오프가 있는지'
"AI가 만든 코드가 맞는지 틀린지"
설명할 수 있어야 한다.
AI도 잘 써야 하지만,
그 과정에서 내 실력도 남아야 한다.
---
이런 동준님의 고민과 실험을 직접 경험해볼 수 있는 4주 챌린지가 이번에 열렸다.
"만들며 배우는 AI 에이전트 워크숍"
작은 프로토타입에서 시작해,
Tool Use,
Thinking & Reasoning,
Agentic Systems 순으로 확장한다.
각자가 자기 앱을 만들고,
미션을 수행하고,
결과물을 공유하고,
피드백을 받는다.
녹화 강의를 혼자 보고 끝나는 방식이 아니라,
같이 만들고, 보여주고, 다시 고치는 시간에 가깝다.
AI를 쓰고는 있는데 결과가 됐다 안 됐다 하는 분들,
AI가 만든 답변이 맞는지 틀린지 판단하기 어려운 분들,
Anthropic 공식 문서를 혼자 읽으려다 몇 번 포기한 분들,
AI를 써야 할 것 같은데 정작 내 실력은 어떻게 쌓아야 할지 고민되는 취준생과 주니어 개발자분들이라면 정말 추천드립니다.
개발자로서 목표가 뭐냐는 커피챗 사전질문 받았다.. << 맨날 어려워함
그냥 프로덕트의 성공을 1순위로 두면서 팀에 시간 확보 잘 해주는 개발자 되고 싶음.
문제 정의 잘 하고 요구사항 현명하게 추리고.. 최신 기술에 현혹되지 않고 내부 상황에 맞는 도구/아키텍처 그릴 줄 아는..
https://t.co/gkFdXzxcMX
10x 엔지니어보다 더 중요하게 봐야하는것
1. 빠른 프로토타이핑/가설검증을 반복하는 사람
2. 문서화에 어려움이 없는 사람
3. 제품 개발에 애정을 가진 사람
4. 고객을 우선시하는 사람
5. 제품의 구성요소를 넓은 맥락에서 바라보는 사람
6. 같이 협업하기 좋은 사람
올해 대학생분들을 멘토링을 종종 했다.
자주 받던 고민이 "어떻게 해야 취업 경쟁력이 생기느냐" 인데,
나는 그럴때마다
"뭐든 괜찮으니 본인에게 필요한 것을 하나 만들고 실제 출시까지 해보라. CLI, 패키지, 웹, 앱 상관없이 출시를 하고
1,000명의 고객을 만들고
365/24시간 운영해보면
로그 메세지는 어떻게 남겨야하고,
에러 핸들링은 어떻게 해야하고,
쿼리는 어떻게 작성해야하고,
SQL 인잭션, XSS 공격 등을 왜 막아야하고,
한정된 서버 자원을 어떻게 활용해야 하는지 등등을 배우게 된다.
운영하면서 배운 내용을 블로그에 정리하면
그게 포트폴리오고, 경쟁력이 될 것이다."
과거에는 LAMP (Linux, Apache, MySQL, PHP) 스택이 너무 대중적이라서 누구나 자기만의 웹서비스를 만드는 것이 많았다.
졸업작품 대부분이 스토어에 출시된 앱인 시즌도 있었다.
실제로 나는 jQuery + PHP 로 본인의 학교 유틸리티 서비스를 만들어서 몇년간 운영하던 친구를 서류에서 바로 합격시킨 경우도 있다.
localhost:8080 을 벗어나야만 배우는 것들이 있다.
예전에는 이게 너무 당연한 것이였다면,
이제는 localhost:8080 안에서 이쁘게 만드는 방법에 많이 집중되어있는것 같아서 오히려 지금 더 "내가 사용하고 싶은 도구" 에 집중하는 것이 경쟁력이 된 것 같다.
이런 피드백을 주고,
몇명이나 행동으로 옮겼을까? 라고 한다면 그리 많지는 않다.
근데 그 중에서도 피드백 전부를 실행하고 결과를 낸 친구도 있다.
백엔드였던 그 친구는 본인이 쓰려고 하는 가게부를 만들고 싶었다.
그래서 IOS 팀원을 모집해서
본인이 백엔드와 클라우드를 담당해서
실제 앱까지 출시했다.
https://t.co/ppyQ4sqIg7
그리고 실제로 서비스 출시 과정을 모두 블로그에 정리해주셨다.
https://t.co/EqEQVaH2Ew
최근에 만나서 출시한 앱을 소개하면서,
"자꾸 서버가 죽어서 미치겠다. 최근에 이걸 해결하려고 A, B를 테스트해봤다."
"로그로 서버 용량이 계속 차는데 어떻게하면 좋을까요?"
등등을 질문하고 고민에 빠지는 모습을 보여줬다.
아 저분은 이제 진짜 실무하는 분이구나 라는 생각을 했다.
당연히 취업도 성공하셨다.
엄청 큰 회사는 아니지만,
이제 회사에서의 실무 경험과
본인 사이드 프로젝트에서 쓰고 싶은 기술을 실제 사용자가 있는 환경에서 적용하면서 얻는 경험까지
2배의 성장을 하시지 않을까 생각해본다.
서비스 경험이라고 해서
엄청 거창한 서비스,
실무에서 사용하는 MSA, k8s에 각종 프레임워크가지 모두를 적용한 어떤 그런 환경에서의 경험을 요구하는 것이 아니다.
서비스 사용자를 만나면 알게되는 여러 운영 경험들을 얻기 위해서
꼭 그런 기술들이 필요한것이 아니다.
과거의 선배들처럼 LAMP 스택이라도 괜찮으니
내가 사용하고 싶은 서비스를 한번 만들어보고 1년정도 운영해보면 좋다.
개발자는 뭐가 됐든 무언가를 만들어내는 직업이다.
만들고 싶은 것이 있다면,
그걸 실제로 만들어보고
내가 만든 것을 사람들에게 소개하자.
고객들이 내가 만든 것을 좋아해주는 것을 경험하는 순간이
개발자로서 한단계 더 성장할 수 있는 계기가 된다.
최근에 다시 개발자분들을 적극적으로 채용하고 있습니다.
많은 지원서와 면접을 보면서
저희팀이 추구하는 개발자의 모습이 무엇인지 외부에 좀 더 적극적으로 공개하면 좋겠다는 생각이 들었습니다 :)
그래서 내부에만 공개하고 있던 개발팀의 미션과 가치에 대해 기술 블로그에도 정리하였습니다.
저희 팀의 문화를 좋아하시는 분들이라면 함께 일하면서 좋은 경함을 나누고 싶습니다 :)
https://t.co/qdylXXqbIM
Joy of React 강의를 들으면서 계속해서 드는 생각은 -
"React를 잘 쓰려면 고민해야 하는 것이 참 많네..."
useEffect 학습
→ "사실 Effect는 필요 없을수도 있다" 공식 문서
useMemo 학습
→ "Memo를 쓰기전 보세요" 리액트 코어 팀 멤버의 블로그
useContext 학습
→ "Context를 쓰기전에 보세요" 공식 문서
derive state 개념 학습
→""사실 Derived State 는 필요 없을수도 있다" 공식" 리액트 공식 블로그 문서
일종의 "Goto Considered Harmful"같은 밈같기도 한데, React에서 개념 하나 하나가 가벼운 footgun 하나 정도는 내포하는 것 같다.
프론트개발이라는 분야에 내포된 피할 수 없는 복잡성 때문에 발생하는 문제들인지, 아니면 React 특유의 복잡성인지는 잘 모르겠다 🤔
𝗦𝗼𝗺𝗲 𝗶𝗺𝗽𝗼𝗿𝘁𝗮𝗻𝘁 𝗹𝗲𝗮𝗿𝗻𝗶𝗻𝗴𝘀 𝗳𝗿𝗼𝗺 𝗺𝘆 𝟮𝟬 𝘆𝗲𝗮𝗿𝘀 𝗼𝗳 𝗲𝗻𝗴𝗶𝗻𝗲𝗲𝗿𝗶𝗻𝗴 𝗹𝗶𝗳𝗲
𝟭. 𝗗𝗼𝗻'𝘁 𝗱𝗼 𝗽𝗿𝗲𝗺𝗮𝘁𝘂𝗿𝗲 𝗼𝗽𝘁𝗶𝗺𝗶𝘇𝗮𝘁𝗶𝗼𝗻
You will not replace that component with another one in the future so you won't need an abstraction now.
𝟮. 𝗧𝗵𝗶𝗻𝗸 𝘁𝘄𝗶𝗰𝗲 𝗯𝗲𝗳𝗼𝗿𝗲 𝘄𝗿𝗶𝘁𝗶𝗻𝗴 𝗰𝗼𝗱𝗲
Only write if you're sure you need that code line. The best code is no code.
𝟯. 𝗟𝗲𝗮𝗿𝗻 𝗴𝗼𝗼𝗱 𝗽𝗿𝗮𝗰𝘁𝗶𝗰𝗲𝘀
- Clean Code.
- Design patterns.
- SOLID Principles.
- Different software architectures.
- Algorithms.
𝟰. 𝗠𝗮𝗸𝗲 𝘁𝗵𝗶𝗻𝗴𝘀 𝘀𝗶𝗺𝗽𝗹𝗲, 𝗮𝗻𝗱 𝗲𝘃𝗲𝗻 𝘀𝗶𝗺𝗽𝗹𝗲𝗿 𝘁𝗵𝗮𝗻 𝘁𝗵𝗮𝘁
Make sure to complete everything correctly. Go with simple and easy-to-understand solutions. We are anyway in a very complex space here.
𝟱. 𝗡𝗮𝗺𝗲 𝘁𝗵𝗶𝗻𝗴𝘀 𝗽𝗿𝗼𝗽𝗲𝗿𝗹𝘆
One of the hardest things. Try to look at it from the reader's perspective.
𝟲. 𝗧𝗲𝘀𝘁 𝘆𝗼𝘂𝗿 𝗰𝗼𝗱𝗲
Unit, integration, e2e, and all others which are needed. You cannot afford a non-tested code. Try to design things by writing tests, TDD, for example.
𝟳. 𝗞𝗲𝗲𝗽 𝘆𝗼𝘂𝗿 𝘁𝗶𝗺𝗲 𝘄𝗶𝘀𝗲𝗹𝘆. 𝗜𝘁 𝗶𝘀 𝘁𝗵𝗲 𝗺𝗼𝘀𝘁 𝗲𝘅𝗽𝗲𝗻𝘀𝗶𝘃𝗲 𝘁𝗵𝗶𝗻𝗴 𝘆𝗼𝘂 𝗵𝗮𝘃𝗲.
Try to avoid being interrupted for deep focus. Hide your notifications. Made one day in a week a non-meeting day. Prioritize tasks (learn Eisenhower matrix)
𝟴. 𝗖𝗼𝗺𝗺𝘂𝗻𝗶𝗰𝗮𝘁𝗲, 𝗰𝗼𝗺𝗺𝘂𝗻𝗶𝗰𝗮𝘁𝗲, 𝗰𝗼𝗺𝗺𝘂𝗻𝗶𝗰𝗮𝘁𝗲
Try pair and mob programming. Then you don't need code reviews; you're collaboratively writing code with the same goal.
𝟵. 𝗗𝗼𝗻'𝘁 𝗷𝘂𝘀𝘁 𝗹𝗲𝗮𝗿𝗻, 𝗱𝗼
When you learn something, try to understand it when you need it or a bit before (be intentional). You will forget most of it if you don't do it.
And, of course, remember to enjoy coding!
#technology #softwareengineering #programming #techworldwithmilan #careers
직업 프로그래머로서 2년 정도 쉬다가 (프로그래밍과 강의를 했다.) 업계로 돌아니 경력 단절이라는 단어까지 들은 적이 있다. 이건 나로서는 웃긴 일이라 생각하는데 안드로이드 레거시 뷰 시스템에 대한 이해는 조금 덜어지긴 했지만 전반적인 프로그래밍은 항상 되었기 때문이다.
많은 개발자들이 기대하던 @JoshWComeau 님의 'Joy of React' 첫 강의 모듈을 돌파하여 남겨보는 후기:
1. 강의는 결코 저렴하지 않다. 모든 모듈 및 프로젝트가 포함된 강의는 $600. 회사 교육비로 결제했다.
2. 강의에 빈틈이 없다. "이 부분은 이해가 잘 안 되는데..."라고 생각이 들 때, 그 토픽을 더 심도 있게 다루는 강의가 바로 나오고, "다른 방법도 있었던 것 같은데..."라는 궁금증을 가질 때, 그에 대한 내용이 바로 다음에 나온다. 강의 내용을 2년 동안 준비했다고 하는데, 초심자가 느끼는 어려움과 중요한 부분을 정확히 파악하고 있다.
3. 강의는 글 + 연습 문제 + 비디오로 구성되어 있고, 비율은 2/1/1 정도다. 개인적으로 비디오보다 글을 선호하기에 매우 만족스럽다.
4. 강의 플랫폼을 자체 개발했다고 🤯. 특히, 강의 연습 문제를 풀어보는 에디터 역시 자체 개발하여 강의에 완벽히 통합되었다. 별도의 에디터를 실행하고 코드를 입력할 필요가 없어 학습이 효율적이다.
5. Josh의 오랜 개발 경력이 강의에 반영되어 있다. 2015년 React를 처음 접했을 때의 어려움, 선호하는 툴 등의 개인적인 이야기를 자연스럽게 포함시켜, 마치 좋아하는 선생님에게 개인적인 지도를 받는 느낌이다.
결론: 가격이 부담스럽긴 하지만, 예상했던 것처럼 대단한 퀄리티의 강의다. 앞으로 Josh님의 강의 토픽이 무엇이든 구입하려 한다 - 장인의 솜씨를 감상하는 것 자체가 큰 경험이니까.
최근 회사애서 만난 신입들과 개인적인 이야기도 하며 새로 느낀게,
내가 흔히 생각했던 "적응을 빨리하는 신입의 모습" - 회의때질문을 많이 한다던가, 막힐때 주저없이 도움을 요청하는 것 같은 것- 은 결국 든든한 감정자본이 있어야 발현이 되는구나 였다.
학벌이 대단하든, 가정이 안정적이든, 인생의 든든한 파트너가 있든, 아님 그냥 그러한 사람이든 - "일머리"라는게 책으로 배워서 터득할 수 있는 그런건 아닌거 같았다.
전에 갓 이직한 친구가 회사의 시스템이 마음에 안 든다고 뭐라뭐라해서 했던 얘기가 있음
"거기에 대해 네가 더 낫게 개선하려고 하는 의도 자체는 좋은데, 그 회사 사람들에게 신뢰를 쌓는 게 먼저야. 일단은 요청하는 일을 그대로 잘해서 네가 똑똑하고 일 잘하며 선의를 지닌 사람임을 증명해