Developer's Development
[플레이데이터 SK네트웍스 Family AI 캠프 17기] 8주차 회고 본문
Hello World 👋🏻
저번 한 주는 2차 프로젝트를 마무리하고, 그 과정에서 얻은 배움과 아쉬움을 정리하는 데 집중했어요.
유독 덥고 긴 여름이지만, 흘린 땀만큼 성장하는 시간이었기를 바라봅니다.
📁 2차 프로젝트 기록
Stack Overflow 핵심 개발자 이탈 예측 및 활성화 방안 연구
https://github.com/SKNETWORKS-FAMILY-AICAMP/SKN17-2nd-1Team
GitHub - SKNETWORKS-FAMILY-AICAMP/SKN17-2nd-1Team
Contribute to SKNETWORKS-FAMILY-AICAMP/SKN17-2nd-1Team development by creating an account on GitHub.
github.com
2차 프로젝트의 큰 주제는 '가입 고객 이탈 예측'이었어요.
마침 ChatGPT가 등장한 이후 개발자들의 필수 사이트였던 Stack Overflow의 방문 빈도가 줄어든 제 개인적인 경험이 떠올랐죠.
실제 저의 이야기가 담겨 있고, 강의의 방향성과도 잘 맞는 주제라고 생각해 'Stack Overflow 핵심 개발자 이탈 예측' 프로젝트를 진행하게 되었습니다.
2024년 설문 데이터를 활용해 약 65,000개의 데이터를 분석하며 이탈 가능성이 높은 개발자 그룹을 예측하는 모델을 만들었습니다.
데이터를 전처리하고, SMOTE 기법으로 데이터 불균형 문제를 해결하며 모델의 성능을 높이는 과정이 흥미로웠어요.
물론 아쉬운 점도 많았죠.
발표 후 받은 피드백에서 지적된 것처럼,
- 전체 프로젝트 방향성과 AI 활용 이유를 더 명확히 설명
- Readme에 데이터 전처리 디테일(SMOTE 포함) 추가 필요
- 모델 성능 향상 노력 강조 필요
- Streamlit 구현과 추천 시스템 목적 명확화
등을 다음 단계에서 개선할 포인트로 삼았습니다.
특히 "왜 사용자가 본인의 이탈률을 측정해야 하는가?"라는 질문에 대한 답을 프로젝트 스토리라인과 연결하는 것이 필요함을 깨달았어요.
📅 공부 기록
강의 내용은 자연어 데이터 준비에 초점을 맞추어, 텍스트 정제와 토큰화, 결측치 처리, 불균형 데이터 처리 등 NLP 전처리 기술을 실습했어요.
단순히 데이터를 정제하는 것을 넘어, 컴퓨터가 인간의 언어를 어떻게 이해하고 분석하는지 그 원리를 파고들었습니다.
🎯 NLTK
파이썬의 대표적인 자연어 처리 라이브러리인 NLTK를 다루며 텍스트를 토큰화하고, 불용어를 제거하는 등 기본적인 데이터 과정을 익혔어요.
거대한 텍스트 뭉치를 의미 있는 최소 단위로 쪼개는 첫 단계하고 신기하고 재미있었습니다.
🎯 특성 벡터화 (Feature Vectorization)
컴퓨터가 텍스트를 이해하게 하려면 숫자로 바꿔주는 과정이 필요하죠.
단어의 등장 횟수를 기반으로 하는 Bag-of-Words(BoW)나 단어의 중요도까지 고려하는 TF-IDF 같은 기법을 통해 텍스트를 벡터, 즉 숫자의 배열로 변환하는 방법을 공부했습니다.
이 과정을 통해 비로소 텍스트를 모델이 학습할 수 있는 데이터로 만들 수 있었어요.
🎯 문서 군집화 & 유사도 측정
벡터화된 문서들을 바탕으로 비슷한 주제들을 가진 문서끼리 묶어보는 문서 군집화를 실습했어요.
이때 두 문서(벡터)가 얼마나 유사한지를 측정하기 위해 코사인 유사도라는 개념을 사용했습니다.
두 벡터 사이의 각도를 이용해 방향이 얼마나 비슷한지를 측정하는 원리인데, 이를 통해 추천 시스템이나 표절 검사 등 다양한 서비스가 구현된다는 점이 흥미로웠습니다.
💭 KPT
Keep (현재 만족하고 있는 부분, 계속 이어갔으면 하는 부분)
개인적인 경험에서 프로젝트 아이디어를 발견하고, 이를 끝까지 발전시켜 나간 점이 좋았어요.
데이터셋을 탐색하고 적절한 분석 방법을 찾아 적용하는 기본적인 파이프라인을 충실히 따르려고 노력했던 점도 계속 이어나가고 싶어요.
앞으로도 '왜?'라는 질문을 스스로에게 던지며 프로젝트의 본질을 잃지 않으려 합니다.
Problem (불편하게 느끼는 부분, 개선이 필요하다고 생각되는 부분)
기술적인 구현에 집중하다 보니 '그래서 이 서비스가 사용자에게 어떤 가치를 주는가?'에 대한 설득력이 부족했어요.
AI 모델의 성능 수치를 높이는 것뿐만 아니라, 프로젝트의 전체적인 스토리와 각 기능의 존재 이유를 명확히 연결하지 못했습니다.
또한, 받은 피드백처럼 데이터 전처리 과정이나 모델 개선을 위한 노력을 Readme에 상세하게 남기지 못해, 프로젝트의 깊이를 충분히 보여주지 못한 점이 아쉬움으로 남습니다.
Try (Problem에 대한 해결책, 실행 가능한 것)
다음 프로젝트에서는 기획 단계에서부터 '사용자 관점'을 최우선으로 고려하고, 서비스의 핵심 가치와 목적을 명확히 정의하는 데 더 많은 시간을 쏟으려 합니다.
단순히 "이런 기술을 썼다"에서 그치는 것이 아니라, "이런 문제를 해결하기 위해 이 기술이 왜 최선이었는가"를 설명할 수 있도록 준비할 거예요.
모든 실험 과정과 결과, 특히 데이터 처리와 모델링 과정은 다른 사람이 쉽게 이해할 수 있도록 꼼꼼하게 기록하는 습관을 들이겠습니다.
저번 한 주도 정말 많은 것을 배우고 느꼈습니다.
성공과 실패의 경험 모두가 다음 단계로 나아갈 소중한 밑거름이 될 거라 믿어요.
프로젝트를 통해 얻은 피드백은 겸허히 수용하고, 공부하며 느낀 즐거움은 더 큰 동력으로 삼으려 합니다.
다음 주에는 더욱 성장한 모습으로 새로운 이야기를 들려드릴 수 있도록 노력할게요.
다음 주에 또 만나요! 😊
'회고' 카테고리의 다른 글
| [플레이데이터 SK네트웍스 Family AI 캠프 17기] 10주차 회고 (3) | 2025.09.01 |
|---|---|
| [플레이데이터 SK네트웍스 Family AI 캠프 17기] 9주차 회고 (6) | 2025.08.24 |
| [플레이데이터 SK네트웍스 Family AI 캠프 17기] 7주차 회고 (10) | 2025.08.12 |
| [플레이데이터 SK네트웍스 Family AI 캠프 17기] 6주차 회고 (8) | 2025.08.03 |
| [플레이데이터 SK네트웍스 Family AI 캠프 17기] 5주차 회고 (1) | 2025.08.03 |