📝 SK네트웍스 Family AI캠프 10기 18주차 회고록
📅 기간: 25.05.05 ~ 25.05.09

📌 이번 주는 어땠는지 돌아보며
지난주에 이어 AWS EC2 환경에서 Django 서비스를 실제로 배포하면서 클라우드 인프라의 흐름을 조금씩 몸으로 익힐 수 있었다.
Nginx와 Gunicorn, Django를 Docker로 묶고 EC2에 띄우는 과정은 처음 해보는 경험이었고, 막히는 부분도 많았지만 하나씩 뚫어가며 배웠다.
무엇보다 이번 주의 핵심은 미니 프로젝트였던 VINO: 와인 입문 가이드 챗봇을 마무리한 것이다.
팀장 역할을 맡았기에 기능 구현뿐 아니라 전체적인 일정 관리, 팀원 간 조율까지 도맡아야 했다. 체력적으로도, 심리적으로도 꽤 지쳤지만… 그만큼 애착이 남는 프로젝트였다.
정신적으로 힘들긴 했지만, 결과적으로 ‘함께 해냈다’는 감각이 남았다. 지금도 부족한 점이 많이 떠오르지만, 그 아쉬움까지 포함해 배운 게 많았다.
📚 학습 내용 요약
📌 AWS 기반 Django 서비스 배포 및 실전 활용
✅ AWS 배포 프로세스 실습
- EC2 인스턴스를 새로 띄우고, EIP로 고정 IP를 연결한 뒤 도메인 연동까지 시도해봤다.
- 이전에 구성해둔 Docker Compose 환경을 그대로 EC2로 가져갔고,
.env
, 정적/미디어 파일 공유, nginx 설정 등도 세심하게 다시 손봤다.
- Gunicorn과 Nginx 간 역할 분담을 명확히 하고, EC2 보안 그룹 설정을 통해 외부 포트 접근을 제한했다.
- 로컬에서 동작하던 챗봇 백엔드가 AWS 환경에서도 문제없이 작동하도록 수정하면서, 속도나 안정성 측면도 확인해봤다.
✅ VINO 챗봇 서비스 구현
- 와인에 대해 잘 모르는 사용자를 위한 대화형 챗봇을 기획하고, 직접 설계부터 구현까지 진행했다.
- sLLM → GPT 평가 → RAG → GPT 평가 → Tavily 검색으로 이어지는 다단계 응답 흐름을 코드로 구조화했다.
- Django 기반의 회원 인증, 권한 관리, 관리자 페이지 커스터마이징도 직접 다뤄보며 실전 감각을 익혔다.
- 챗봇이 와인 추천, 용어 해석, 음식 페어링까지 자연스럽게 대응할 수 있도록 응답 흐름을 설계했다.
- 프론트/백엔드/모델 파이프라인을 나눠 병렬적으로 작업하면서 팀원들과 협업하는 방식도 다시금 배워갔다.
🛠️ 트러블 슈팅
문제 1: AWS에서 컨테이너 이미지 pull 실패
- 컨테이너 이미지를 pull하거나 레이어를 추출하는 과정에서 EC2 디스크 용량이 부족해 계속 실패했다.
🔧 해결 방법
- 결국 파인튜닝된 모델을 EC2에 직접 업로드하고, 이를 CICD에 연결하는 방향으로 문제를 풀 수 있을 것 같다는 가능성을 확인했다.
비록 완전한 CICD 구성에는 실패했지만, 접근법 자체는 유효하다는 걸 배웠다.
문제 2: Django Admin에서 슈퍼유저 권한 제한
CustomUserAdmin
에서 권한 관련 메서드를 일부만 오버라이드한 탓에, 슈퍼유저인데도 일부 Admin 기능이 제한되는 문제가 있었다.
🔧 해결 방법
has_add_permission
, has_change_permission
, has_view_permission
, has_delete_permission
등을 전부 오버라이드해서
슈퍼유저는 모든 권한을 사용할 수 있도록 수정했다.
🔄 KPT 회고 (18주차)
✅ Keep
- EC2 환경에서 Docker 기반 Django 서비스를 직접 띄워본 경험 자체가 의미 있었다.
- 어려운 상황에서도 프로젝트를 끝까지 밀어붙일 수 있었고, 팀원들과 하나의 결과물을 만들 수 있었다.
- 와인이라는 낯선 주제를 학습하면서, 어떻게 LLM을 서비스 흐름에 자연스럽게 녹일 수 있는지도 체험했다.
❌ Problem
- 챗봇 흐름 설계와 평가 로직이 생각보다 훨씬 복잡했다. 구현 시간이 예정보다 꽤 밀렸다.
- 팀원 간 일정 조율이나 역할 분담에서도 혼선이 있었고, 후반부엔 집중력이 뚝 떨어지기도 했다.
- EC2 배포 중 예상치 못한 포트 충돌이나 nginx 설정 오류로 새벽까지 디버깅한 날도 있었다.
💡 Try
- 다음 주 최종 프로젝트에서는 배포 자동화(CI/CD)까지 포함해서 경험해보고 싶다.
- 이번에 느꼈던 협업의 어려움을 기억하며, 더 명확한 커뮤니케이션과 문서화를 시도해볼 생각이다.
- 이번에 쓴 RAG 흐름, GPT 응답 평가 로직 같은 걸 템플릿화해서 다음 프로젝트에서 재사용 가능한 구조로 정리해보려 한다.
✅ 마무리
이번 주는 그냥 딱, ‘힘들었지만 남는 게 있었던 주’였다.
익숙하지 않던 AWS, Django 배포, LLM 설계까지 동시에 진행하면서 몸도 마음도 지쳤지만,
프로젝트를 끝낸 지금은 ‘조금은 해낼 수 있다’는 믿음이 생겼다.
아직 많이 부족하지만, 그래도 지난주보다 분명 나아져 있는 나를 느낀다.
다음 주면 드디어 최종 프로젝트다.
지금까지의 시행착오를 발판 삼아, 조금 더 단단한 결과물을 만들 수 있도록 준비해보려고 한다.