한 주 회고
2주간의 파이썬과 랭체인에 대한 수업을 마치고 바로 프로젝트를 진행할 때 들었던 생각은 '어디서 부터 무엇을 해야하지?' 였습니다. 파이썬에 대한 문법은 간략히 이해했지만 랭체인 오픈소스 코드를 보면서 이해할 수 있다고는 할 수 없었습니다. 파이썬틱(Pythonic)한 코드가 무엇인지, 파이썬의 철학을 코드에서 어떻게 이해를 해야하는지 감이 잡히지 않았습니다. 그래서 제가 한 방법은 랭체인 실습코드 'import os'부터 왜 어떻게 가져오는지 하나씩 알아보며, 주석에 설명을 쓰고, 클론 코딩을 하며 이해를 했습니다. 하지만 단순히 AI 가 만들어준 코드를 따라치면서 코드 한줄의 목적이 무엇인지 이해를 하는 것은 프로젝트 초기 진행에 도움을 주진 못했습니다.
큰 시스템의 설계를 하려면 각 요소가 어떤 기능을 하며, 어떤 데이터를 줬을 때 어떤 응답 데이터를 주는지도 제대로 몰랐기 때문에 저희는 도메인은 정하되, 각자 3일정도 LLM, LangChain 에 대해 공부를 진행했습니다. 그렇게 어느정도 흐름을 익히고 나서는 LLM 이 더 좋은 답변을 얻기 위해서는 임베딩을 할때 1) 정형 + 비정형 전체 , 2) 비정형 데이터 중에 무엇을 임베딩하는 것이 Semantic Search할 때 더 성능이 높은지까지 대화할 정도로 지식을 갖추게 되었습니다. 이렇게까지 대화를 하는데 약 2일 정도 소요된 것 같습니다. 팀원 한명한명 자신이 알고있는대로 자유롭게 의견을 나누어 결론을 내리는 데 수월하게 진행할 수 있었습니다.
그리고는 데이터 정제의 어려움을 마주치게 되었습니다. 결국 저희는 사용자 발화에서 키워드를 추출하여 그에 적합한 프롬프트 템플릿을 LLM이 선택할 수 있게 만들어줘야하는데, 그러면 프롬프트 템플릿을 분류해서 품질이 좋은 프롬프트 템플릿을 많이 만들어야한다는 것을 강사님 피드백을 통해 알게 되었습니다. 또한 챗봇과의 대화에서 RDB와 Vector DB에서 저장할 요소가 무엇인지, 그리고 관리자 단에서 관리해야할 데이터가 무엇인지 정의를 내리는 것도 필요함을 알게 되었습니다.
앞서 더 좋은 의미 검색을 위한 임베딩 방법에 많은 시간을 소요한 것 같습니다. 그 원인으로는 같이 테스트할 데이터가 동일하지 않고, 각자 데이터를 만들어 수행한 것이었습니다. 그래서 하나의 데이터를 가지고 테스트할 질문까지 동일하게 가지고자 노션에 공유를 하는 방향으로 수정했습니다. 하지만 역할 분배 이후 저는 백엔드 위주였으므로 바뀐 데이터로 코드를 수정하느라 테스트는 진행하지 못해 결론을 내지 못한 아쉬움이 남았습니다.
역할 분배 이후 저는 데이터베이스 설계를 맡게 되었는데, 벡터 데이터베이스는 코드상으로는 어떤식으로 저장이 되는지는 이해를 했지만, RDB와 다르게 ERD라는 결과물이 없어 어떻게 설계를 해야할지 고민이 많이 들었습니다. 그래서 Vector Database에 대한 논문, Chroma DB 공식 Docs, 다른 Vector DB Docs(Pinecone, Weaviate 등), 벡터데이터베이스 설계 책도 구매하여 읽어보았습니다. 결론적으로 Vector 데이터베이스는 RDB의 ERD처럼 데이터 간의 관계를 시각적으로 표현하는 표준화된 도구가 없다는 것을 알게 되었습니다.
지금은 Vector DB에 어떤 데이터를 저장할 것이고 RDB와 상호작용은 언제 어떻게 할 것인지 공부하고 있습니다. 설계 해보고 빠르게 데이터 넣어보고 빠른 실패를 이번주에 할 예정입니다.
팀별 KPT
한 주간 좋았던 점 | 아쉬운 점 | 개선 방향 | |
김경민 | 이번에 랭체인을 공부하면서 항상 백엔드만 고부를 해왔었는데 파이썬을 이용해서 새로운 기술 프럼프트나 RAG와같은 새로운 기술을 알게되어서 좋았습니다. 또한 팀원들이 열심히 해주시고 잘따라와주셔서 좋은았던거 같습니다. | 프로젝트를 시작하기전에 공부및 프로젝트준비가 미흡했던부분이있었는데 프로젝트를 진행하며 미흡했던 부분때문에 일정이 딜레이되거나 했던것 같습니다. | 프로젝트에 맞는 기술및 방향성 설정같은거에 더 많은 공부와 노력을 해야할거 갔고 조금도 좋은방향으로 프로젝트가 나아갔으면 좋겠습니다. |
김승현 | |||
김현정 | 팀원 모두가 자기 일처럼 적극적으로 나서준 덕분에 프로젝트의 방향을 빠르게 잡을 수 있었습니다. 특히 파이썬 버전 문제나 라이브러리 설치 에러로 막혀있을 때 먼저 다가와 함께 고민해주고 해결해 준 팀원들 덕분에 큰 힘을 얻었습니다. 서로 모르는 것을 편하게 물어보고 함께 알아가는 분위기 속에서 RAG나 에이전트 같은 어려운 AI 개념도 팀 전체가 같이 성장하며 배울 수 있었습니다. | 개인적으로 AI 기술 스택에 대한 경험이 부족하다 보니 프로젝트 초반에 팀의 기술적인 논의에 깊이 참여하지 못하고 수동적으로 따라가는 데 그친 것 같아 아쉬움이 큽니다. 다른 팀원들이 적극적으로 의견을 낼 때 저는 개념을 이해하는 데 급급하여 서비스의 큰 그림에 대한 제 생각을 자신 있게 이야기하지 못했습니다. 팀에 더 기여할 수 있었는데 그러지 못한 것 같습니다. | 다음 주에는 개인적으로 더 깊이 집중하는 시간을 갖겠습니다. 데일리 스크럼 내용을 바탕으로 제가 오늘 완수해야 할 가장 중요한 일이 무엇인지 명확히 설정하고 다른 것에 방해받지 않고 그 목표에 집중하는 시간을 확보하겠습니다. 혼자 고민하는 시간을 정해두고 깊게 파고들되 해결이 어려울 땐 바로 팀원들에게 다가가 질문하며 효율적으로 문제를 해결해 나가겠습니다. |
박지형 | 처음 접하는 분야를 프로젝트로 진행하면서 정보 공유의 중요성을 깨달았습니다. 각자 이해한 내용을 자유롭게 나누며 토의하니 팀 분위기가 좋아졌고, 의견 수렴과 결론 도출이 훨씬 수월했습니다. 앞으로도 새로운 기술을 도입할 때는 각자 공부한 시간을 가진 후에 구성안을 공유하는 프로세스를 적용할 것 같습니다. | LLM 시스템 구축 과정에서 완벽한 설계에 너무 많은 시간을 투자했습니다. 빠른 프로토타이핑보다는 이론적 완성도에 집중하다 보니 실제 구현과 검증이 늦어졌습니다. 앞으로는 기본 가닥이 잡히면 즉시 테스트해보는 '빠른 실패' 방식을 적용해보겠습니다. 또한 시도한 것은 많았지만, 트러블 슈팅 이력을 제대로 남기지 않아 아쉬움이 남았습니다. |
다음 주는 랭체인에 대한 공부를 병행하되, 여러 선택안을 구상했다면 빠른 실패를 해 비교 검증하는 시간을 가져볼 것 입니다. 역할 분배와 상관없이 시도했던 내용을 트러블 슈팅에 작성해 내가 현재 무엇을 하고 있고 어떤 결과물을 기대하는지 공유하겠습니다. |
이지현 | 이번에 랭체인을 공부하게 되었는데 이전까지 한 번도 접해보지 않은 분야라 더욱 흥미를 느끼며 학습할 수 있었습니다. 새로운 기술을 실제 프로젝트로 구현해보는 과정 자체가 굉장히 흥미로웠습니다. 무엇보다 팀원 분들 모두가 적극적으로 참여해주시고 모르는 부분에 대해 친절하게 설명해주셔서 많이 배우고 감사한 마음이 들었습니다. 함께 고민하고 협력하는 과정이 좋은 경험이었습니다. | 아무래도 이론적으로만 배운 상태에서 바로 서비스를 기획하고 구현하려다 보니 쉽지 않았습니다. 공부를 했다고는 하지만 데이터나 기술에 대한 깊은 이해가 아직 부족하다는 걸 실감했습니다. 실무 경험이 없다 보니 어떤 방식이 더 효율적인지 판단하기도 어려웠고 내가 이 프로젝트를 잘 따라가고 있는지에 대한 회의감이 들기도 했습니다. 기술적인 이해가 부족해 과연 잘 적용할 수 있을지 끝까지 따라갈 수 있을지에 대한 불안도 있었습니다. | 앞으로 주말 동안 맡은 분담 작업을 마무리하고 부족했던 기술 부분에 대해 더 깊이 공부할 계획입니다. 특히 우리의 서비스에 랭체인을 어떤 방식으로 잘 녹여낼 수 있을지 고민하면서 실제 적용 가능한 형태로 이해도를 높이고 싶습니다. 또한 팀 회의에도 더 적극적으로 참여하고 의견을 나누면서 프로젝트에 더 몰입할 수 있도록 노력하겠습니다. 이번 프로젝트를 통해 단순한 기술 습득을 넘어서 AI 기술을 서비스에 적용하는 경험을 쌓고 최종적으로 완성도 있는 결과물을 만드는 것을 목표하고 싶습니다. |
홍우진 | 모두가 자발적으로 역할을 맡고, 책임감 있게 움직였다는 점이 가장 인상 깊었습니다. 기술적으로 부족한 부분이 있어도 함께 채워나가는 분위기 덕분에 끝까지 몰입할 수 있었습니다. 특히 백엔드 구조나 API 설계 등 실무에 가까운 과정을 팀 단위로 경험해 볼 수 있어 매우 뜻깊었습니다. | 프로젝트 초반에 AI 관련 개념(예: 임베딩, RAG, LLM 등)에 대한 사전 학습이 충분하지 않아 구현 단계에 실질적인 기여가 늦어졌다는 점이 개인적으로 아쉬움으로 남습니다. | 다음 주 부터는 학습과 실습에 훨씬 더 많은 시간을 쏟아 반드시 팀에 더 많은 기여를 해 프로젝트 퀄리티를 높일 수 있도록 다짐해 보겠습니다 |
개인 KPT 회고
Keep (잘한 점, 계속 유지할 것) : 모르는 것은 공부, 의견 자유롭게 나누기
LLM과 LangChain 공부 뿐만 아니라 시스템 설계를 위해 일단 각자 공부하고, 같은 내용에 대해 서로의 의견을 자유롭게 공유했을 때 지식이 정리가 되고 결론을 내리기 수월했습니다.
Problem (아쉬운 점, 문제점) : 완벽한 시도를 하느라 사전 준비에 시간이 많이 소요됨
Try (다음에 시도할 것) : 빠른 실패를 할 것.
다음 주에는 제가 담당한 DB 설계에서 아직 완벽하게 모르지만 Vector DB 설계를 완료하고 실제 데이터를 넣어보며 빠른 검증을 진행하고, 완벽한 구상보다는 프로토타입을 먼저 만들어서 테스트하는 방향으로 접근할 것입니다.
'회고' 카테고리의 다른 글
[커널아카데미] 백엔드 12기 19주차 회고 - 해야할 것을 찾아갔지만 추가로 더 해보자 (1) | 2025.08.03 |
---|---|
[커널아카데미] 백엔드 12기 18주차 회고 - 설계에 집중했고 이제는 구현에 집중 (2) | 2025.07.27 |
[커널아카데미] 백엔드 12기 16주차 회고 - 부트캠프를 진행하면서 무엇을 남길 것인가? 나의 생각 바꾸기 (0) | 2025.07.13 |
[커널아카데미] 백엔드 12기 15주차 회고 - 몰두와 분석이 개발자를 만든다 (1) | 2025.07.06 |
[커널아카데미] 백엔드 12기 14주차 회고 - 마무리가 될 때 느끼는 아쉬움 (0) | 2025.06.29 |