파이썬 스터디 회고

·2024년 11월 9일
4

회고록

목록 보기
12/13
post-thumbnail

느슨했던 자바스크립트의 세계에 긴장감을 더해준 파이썬 10주 스터디

참여한 이유

사실 파이썬을 정말 배우고 싶어서 이 스터디에 참여한 건 아니었다.

진행 중이던 프로젝트에서 OpenAI를 활용하고 있었기 때문에, GPT를 활용한 풀스택 개발을 배우면 프로젝트 고도화에 도움이 될 것 같았다.

또, 함께 완주할 지인이 있어 흥미가 떨어져도 끝까지 할 수 있겠다는 생각에 신청했다.

오프라인 모각코에서 니코쌤이 "왜 파이썬 스터디를 하게 되었나요?"라고 물었을 때는 "AI도 배우고, 자바스크립트 외 다른 언어와 객체지향 패러다임을 경험해 보고 싶다"라고 답했다. 사실 스터디를 하며 클래스를 사용하긴 했지만, 객체지향 패러다임에 깊이 고민하진 못했다.

목표

이번 스터디에서 지키고 싶었던 유일한 목표는 완주였다. 잘하든 못하든 상관없이 끝까지 해내고 싶었다.
물론, 개인 프로젝트에 바로 적용할 수 있는 OpenAI나 Langchain 지식을 얻는다면 금상첨화였다.

파이썬 기초

스터디가 시작됐지만, 초반에는 개인 프로젝트에 집중하느라 많은 시간을 할애하지 못했다. 자바스크립트로만 개발해왔기에 파이썬 문법이 생소했고, 코드 챌린지를 진행하면서 기초 문법을 익히는 데 시간이 걸렸다.

궁금한 부분이 있으면 "자바스크립트에서는 이렇게 쓰이는데, 파이썬에서는 어떻게 구현할까요?"라는 질문으로 시작했다.

스터디원분들이 코드 챌린지에 대한 코드를 공유하면서 같이 올린 질문에 대해서 친절하게 답변해주시기도 했다.

코드 리뷰 과정에서 배운 파이썬 문법은 따로 저장하며 정리했고, 아래와 같이 기록해 두었다.

파이썬 기초 과정의 마지막 챌린지였던 스크래퍼 만들기는 Express와 PUG를 사용하던 느낌을 받아서 나름 재미있었다.

직접 구현해보는 것 보다 더, 다른 분들의 챌린지 결과물을 보면서 배우는 것이 더 재밌었던 것이 기억난다. 객체지향적으로 멋지게 코드를 작성하거나 기깔난 스타일링을 한 점에서 많은 영감을 얻었다.

풀스택 GPT : LangChain

파이썬 스터디를 하길 잘했다고 느꼈던 이유는 풀스택 GPT 챌린지 덕분이었다.

파이썬도 아직 익숙지 않은 상태에서 프롬프트 엔지니어링과 LangChain, RAG(Retrieval-Augmented Generation)까지 학습해야 해서 쉽지 않았다. AI를 활용을 배우면서도 AI에게 물러보는 아이러니한 상황. 특히 RAG 개념은 지금도 이해했다고 말하기 어려울 정도다.

당시, AI에게 물어가보면서 학습 내용을 기록했다.

RAGLangChain type

어려웠어도 Jupyter Notebooks에서 실습을 했을때는 너무 즐거웠던 나머지 주간회고록에서도 신나게 떠들고 있다.

덕분에, 이 과정을 통해 LangChain을 개인 프로젝트에 충분히 적용할 수 있겠다는 자신감이 생겼다.

현재는 OpenAI의 라이브러리를 사용해 단순히 시스템 문구만 작성하지만, LangChain에서 지원하는 자바스크립트를 활용해 충분히 고도화 할 수 있을 것 같다.

공식문서도 파이썬 뿐만 아니라 자바스크립트로도 정말 잘 되어있다.

코드공유의 순기능

코드리뷰라고 하기에는 내가 너무 감탄만 썼다는 것이 조금 부끄러워 코드 공유라 지칭한다.

풀스택 GPT 챌린지가 너무 어려워 혼자 해결하기 힘든 부분이 많았다. 이론도 너무 어려웠던 상황이라 함수가 어떤 역할로 수행되고 연관되어있는지 파악하기가 너무 어려웠다

그런데 코드 리뷰 채널에서 스터디원 분이 공유한 코드를 보고 큰 깨달음을 얻었다. 함수가 정말 적재적소에 잘 분리된 구조를 보고 유레카를 외쳤고, 레포지토리가 너덜거릴 정도로 몇 시간 동안 분석하며 열심히 공부했다.

그렇게나 너덜거릴 정도로 봤기에 하나라도 지식을 전달하고 싶어서 감탄하는 댓글과 함께, 과제를 진행하다 알게된 지식을 함께 전달드렸다.

학습에 너무 도움을 많이 되어서 주접도 많이 떨었다.

나중에 풀스택 GPT의 우수 졸업작품으로 선정 되었을 때도 함수 분리에 대해서 언급했었던 것 같다.

풀스택 GPT 졸업작품에서는 함수 분리가 어려워서 실패하긴 했지만, 코드 리뷰를 통해 많은 것을 배운 뜻깊은 경험이었다.

트러블 슈팅

풀스택 GPT 졸업작품을 만들면서 수많은 에러와 맞닥뜨려서 너무 힘들었던 기억밖에 없다.

오죽하면 내가만든 OpenAI Assistant에 한탄하기도 했었다.

수많은 에러중에 제일 기억에 남는 건 덕덕고(duckduckgo)의 디펜던시 버전 오류 였다.

잘 작동하던 6.2.11 버전이 추석 이후, 쥐도새도 모르게 6.2.11b1 버전으로 변경되면서 streamlit 배포에서 오류가 발생했기 떄문이다.

ERROR: Could not find a version that satisfies the requirement duckduckgo-search==6.2.11 (from versions: 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 0.9.5, 1.0, 1.1, 1.2, 1.3, 1.3.5, 1.4, 1.5, 1.5.1, 1.5.2, 1.6, 1.6.2, 1.7.1, 1.8, 1.8.1, 1.8.2, 2.0.2, 2.1.3, 2.2.0, 2.2.2, 2.3.0, 2.3.1, 2.4.0, 2.5.0, 2.6.0, 2.6.1, 2.7.0, 2.8.0, 2.8.1, 2.8.3, 2.8.4, 2.8.5, 2.8.6, 2.9.0, 2.9.1, 2.9.2, 2.9.3, 2.9.4, 2.9.5, 3.0.2, 3.1.1, 3.2.0, 3.3.0, 3.4.1, 3.5.0, 3.6.0, 3.7.0, 3.7.1, 3.8.0, 3.8.1, 3.8.2, 3.8.3, 3.8.4, 3.8.5, 3.8.6, 3.9.3, 3.9.4, 3.9.5, 3.9.6, 3.9.8, 3.9.9, 3.9.10, 3.9.11, 4.0.0, 4.1.0, 4.1.1, 4.2, 4.3, 4.3.1, 4.4, 4.4.1, 4.4.2, 4.4.3, 4.5.0, 5.0b0, 5.0b1, 5.0, 5.1.0, 5.2.0, 5.2.1, 5.2.2, 5.3.0b1, 5.3.0b2, 5.3.0b3, 5.3.0b4, 5.3.0, 5.3.1b1, 5.3.1, 6.0.0, 6.1.0, 6.1.1, 6.1.2, 6.1.3, 6.1.4, 6.1.5, 6.1.6, 6.1.7, 6.1.8, 6.1.9, 6.1.11, 6.1.12, 6.2.0, 6.2.1, 6.2.2, 6.2.3, 6.2.4, 6.2.5, 6.2.6, 6.2.7, 6.2.8b1, 6.2.8, 6.2.9, 6.2.10, 6.2.11b1, 6.2.12)

ERROR: No matching distribution found for duckduckgo-search==6.2.11

그래도 streamlit의 에러메시지가 잘 나왔기 때문에 빠르게 해결할 수 있었다.

Django : 장고

Express나 Next.js API Routes, Server Actions로만 백엔드를 구축했던 내게 Django는 신세계 그 자체였다. 관리자 패널과 앱 생성 기능은 편리하고 신기했다.

하지만 당시, 개인 프로젝트에서 이미 백엔드를 구축하며 받았던 스트레스로 인해 Django 챌린지는 시간이 갈수록 흥미가 떨어졌다. 챌린지를 포기하지는 않지만 집중하지 못하는 상태였다.

그래도 스터디를 진행하면서 대화했던 내용들 중에 기억에 남았던 것이 있었다.

  • 상속은 추적이 어렵기 떄문에 최대한 지양한다.
  • 자바스크립트는 클래스가 함수로 구현되어 있지만, 파이썬은 클래스는 클래스다.
    • (이 부분은 충격이었다. 무너진 나의 자바스크립트 세상…)

학습한 내용은 항상 기록해두었다.

마무리

마지막 커리큘럼에서는 LangChain과 Django를 활용한 팀 프로젝트가 있었지만, 중단됐던 다른 팀 프로젝트를 다시 이어갈 기회가 생겨 LangChain 프로젝트를 포기했다.

프론트엔드 담당으로 Mock API까지 구현해 두었던 해당 프로젝트였고, 디자이너분이 기획부터 디자인까지 짧은 시간 내에 만들어 주셨던 프로젝트였기 때문에 꼭 마무리 하고 싶었다. 백엔드 팀원 교체 이후 중단됐던 프로젝트라 API 재협의도 진행한 상태다. 빠르면 이번 달 내에 완료하고, 고도화 기능은 올해 안에 완성하는 것을 목표로 하고 있다.

파이썬 스터디를 통해 단순히 새로운 언어를 배운 것을 넘어, 새로운 기술과 다양한 분야의 사람들을 만나며 시야를 넓힐 수 있었다.

profile
성실하게

2개의 댓글

comment-user-thumbnail
2024년 11월 11일

담님!! 회고록까지 작성해주시고 ㅠㅠㅠ 정말 감사합니다🥺🥺 여름부터 겨울까지 여러가지 일이 많았던 3개월(사실 4개월) 이었지만 담님이 끝까지 파이썬 스터디 함께 해주셔서 스터디를 하는 의미도 찾고, 잘 마무리 되었던 것 같아요. 또, 그렇게 열정적인 마음은 아니었다고 하셨지만, 항상 깊게 고찰하시고 작은 단어도 놓치지 않고 확인하시는 태도에, 감탄하고 반성도 많이 했어요. 저도 많이 배울 수 있었던 10주였습니다. 함께 스터디 마쳐주셔서 감사해요 담님!
담님의 노력이 곧 피어나길 바라요!!

답글 달기
comment-user-thumbnail
2024년 11월 11일

👍🏻

답글 달기