요즘 계속 용어 정리 글과 RAG 관련 공부를 하면서 두 가지 공부 방법 을 적용해봤다.
- 용어 정리 + playground 로 공부하기 (UI / DB / API)
- 구현한 코드를 따라치면서 결과를 눈으로 보기 (RAG 직접 구현 / RAG 시스템 구축)
둘 다 “눈으로 결과를 보는” 방식 같지만, 나에게 맞는 건 후자 라고 판단했다. 코드를 따라치면서 구현된 부분들이 어떤 의미를 가지는지 계속 묻게 됐고, 결과를 직접 보면서 어떤 곳을 수정해야 할지 고민하게 됐다.
그래서 이 사실을 앞으로의 공부에 적용하려고 한다. 이 글은 다음에 새 기술 배울 때 내가 돌아와서 순서를 확인하기 위한 글이다.
Table of contents
Open Table of contents
내가 생각하는 공부 순서 — 5단계
- 신기술을 배우기 위한 선행 지식 습득 (적당히)
- 신기술에 대해 코드 구현하면서 배우기
- 배운 기술을 실제 사례로 구현해보기
- 다른 사람 코드 읽기
- 글로 정리
하나씩.
1. 선행 지식 — “적당히” 가 핵심
신기술을 배우기 전에 선행 지식부터. 이번에 RAG 를 배울 때도 바로 RAG 를 구현하지 않고 임베딩, 벡터 DB 같은 것들을 먼저 배운 후 순차적으로 구현 하면서 RAG 가 어떻게 동작하는지 배웠다.
다만, 선수 지식을 너무 깊게 파면 신기술에 대한 공부를 시작도 못하고 기아 상태가 된다. 그래서 신기술을 이해할 때 연계될 수 있을 정도로만 “적당한” 양 의 공부를 하고 넘어가는 편이 좋다.
기준선: “이 개념이 신기술 구현 중 어디서 나올지 예상이 가능한 정도”. 그 이상 깊이는 신기술을 만진 후 필요할 때 돌아와서.
2. 코드 따라치기 — “직접” 의 의미
신기술을 학습할 때 그냥 읽는 게 아니라 코드로 직접 작성해본다.
여기서 “직접” 은 내가 떠올려서 작성한다기보다는 AI 가 뱉는 코드를 단순히 따라치는 것 이겠지만, 따라치는 동안에:
- 구현 단계에서 어떤 전 단계가 필요한지 보이고
- 어떤 순서로 해당 기술이 구현되는지 이해되고
- 차후 더 깊게 공부하고 싶은 분야 가 생긴다
“AI 가 짜준 코드를 그냥 실행” 과 “AI 가 짜준 코드를 직접 타이핑해서 실행” 의 차이는 생각보다 크다. 손가락이 한 번 더 흘러가는 만큼 머리에도 한 번 더 흘러간다.
3. 실제 사례 적용 — “하찮은 목표에 하이엔드 기술”
코드로 구현하면서 신기술이 어떻게 동작하는지 확인했다면, 다음은 실제 데이터나 사례를 가져와서 구현 해본다.
이 단계에서 기획이 필요하긴 하지만, 이 단계도 길게 끌어서는 안 된다. 단순히 학습한 걸 적용해보면서 “이렇게 사용할 수 있겠구나” 감을 익히는 거지, 서비스를 만들어서 유지보수하는 게 목표가 아니다.
→ 그러므로 아주 하찮은 목표를 달성하기 위한 하이엔드급 기술 을 적용하는 그림이 된다. (예: 내 블로그 글 270개를 검색하는 데 RAG + 벡터 DB + LLM 통합 시스템을 동원)
이 프로세스를 거치면 결국 두 가지 코드가 손에 남는다:
- 신기술 학습용으로 만든 기본 코드 (2단계)
- 실제 사례에 적용해서 만든 응용 코드 (3단계)
이렇게 두 가지를 거치면 추후 상업적인 수준까지 개발하는 데도 도움이 될 거라고 생각한다.
4. 다른 사람 코드 읽기 — 체화가 부족하다고 느껴질 때
위 과정을 거치면서도 제대로 체화가 안 됐다고 느껴지면 다른 사람들의 코드를 읽어본다.
- AI 가 적어낸 코드도 내가 적은 게 아니라 읽는 데 도움이 되긴 한다
- 다만 다른 사람들이 해당 기술을 접목해 만든 실제 서비스의 코드 를 읽었을 때 새로운 insight 가 생길 수 있다고 생각한다
GitHub 의 잘 만든 오픈소스 프로젝트, 또는 같은 도메인에서 일하는 사람들의 공개 코드.
5. 글로 정리 — “필사” 에서 “체화” 로
마지막으로 블로그에 정리.
솔직히 지금까지의 블로그 글은 내가 완벽히 이해해서 적었다기보다는 이해한 것을 따라적는 느낌 이었다. 하지만 이제부터는 다르게:
- 공부 과정 (1~4 단계) 을 먼저 거친 후
- 내가 스스로 어떤 내용으로 주제에 대해 적을 것인지 정하고
- 그 내용을 채워나갈 계획
물론, 모든 기억을 떠올릴 수는 없을 것이다. 그럴 때마다 잠깐잠깐 복습해서 내용을 채워넣되, 지금처럼 내용을 전부 필사하지 않을 것이다.
지금도 아예 복붙은 아니고 내가 마크다운 파일에 내 문장을 만들어서 쓰고 있긴 한데, 체화되는 지식의 양은 그렇게 크지 않다 고 판단된다.
앞으로의 적용 — 학습 글의 주기는 길어질 것
이 방법으로 가면 학습 글의 주기는 길어질 수도 있다. 한 주제에 1~4단계를 모두 거친 후에야 글이 나오게 되니까.
다만:
- 현재 진행 중인 프로젝트 관련 글 (AGV 시리즈 등) 은 그대로
- 짤막한 디버깅 글 도 그대로 (한 줄짜리 깨달음이라도)
다음 적용할 신기술 후보
현재 배워야겠다고 생각 중인 것들:
- LangChain — RAG 통합 프레임워크의 사실상 표준
- Hermes agent — 오픈소스 에이전트 (NousResearch 의 Hermes 시리즈)
- 로컬 LLM 구현 — RAG 시스템 글 회고에서 떠올랐던 아이디어 (Claude/OpenAI 의존도 낮추기 + 비용/검열 대비)
앞으로 구현하면서 더 추가될 거고, 여러 루트로 신기술 키워드를 알아갈 것이다. 그때마다 이 글에 돌아와서 순서를 보고 착실하게.
그래서 이 글의 위치
이 글은 다른 학습 글들과 다르다 — 정보를 전달하는 게 아니라 나에게 보내는 메모. 다음에 새로운 기술 키워드를 만났을 때:
- 일단 이 글 다시 열고
- 5단계 순서대로
- 마지막 5단계에서 또 글로 정리
이 루프가 반복되면 학습이 누적될 거라 생각한다. 6개월 후에 이 방법론이 여전히 유효한지 다시 회고해볼 만한 글이기도 하다.