목차
최근 다시 제대로 만들어보고 싶은 프로젝트가 생겨서 기록 겸 글을 남겨보려고 합니다.
바로 BriPong 이라는 뉴스 요약 서비스 프로젝트입니다.
시작 계기
멋쟁이사자처럼 클라우드 엔지니어링 4기 당시, 최종 프로젝트로 뉴스 요약 서비스를 진행했었습니다.
“오늘의 뉴스를 간편하게 요약하고, 퀴즈로 재미있게 제공하는 서비스”를 주제로 진행했던 Newsugar라는 이름의 프로젝트였습니다.
당시 프로젝트에서는 뉴스 요약 기능과 뉴스 퀴즈 기능을 중심으로 서비스를 기획했고,
Docker 기반 MVP 환경 구성, AWS 인프라 설계, EKS 및 CI/CD 구성까지 프로젝트 범위에 포함되어 있었습니다.
감사하게도 프로젝트는 최우수상을 수상할 수 있었습니다.
그런데 프로젝트가 끝난 뒤에도 아쉬움이 남았습니다 . .
사실 결과와는 별개로, 개인적으로는 아쉬움이 정말 많이 남았던 프로젝트였습니다.
당시에는 부트캠프를 따라가기에 급했던 시기이기도 했고,
특히 인프라나 데브옵스 영역은 제대로 이해하지 못한 상태로 프로젝트를 진행했었습니다.
무엇보다 서비스 자체의 완성도보다는,
Docker 기반 MVP 환경 구성이나 AWS 인프라 설계, EKS 및 CI/CD 구축 같은
“인프라 중심 프로젝트”에 조금 더 초점이 맞춰져 있었습니다.
그러다 보니 뉴스 서비스에서 가장 중요한 부분 중 하나인
“검색 품질”이나 “최신 뉴스 반영” 같은 부분은 충분히 고려하지 못했습니다.
예를 들어,
- 분명 관련 뉴스가 존재하는데 검색 결과에 나오지 않거나,
- 최신 뉴스보다 오래된 뉴스가 우선적으로 노출되거나,
- 단순 키워드 기반 검색만으로는 원하는 정보를 제대로 찾기 어려운 경우
들이 있었습니다.
당시에는 기능 구현 자체에 집중하느라 이런 부분들을 깊게 고민하지 못했지만,
프로젝트가 끝난 뒤에도 계속 아쉬움으로 남았습니다.
또한 당시 프로젝트에서는 EKS 기반으로 인프라를 구성했지만, 실제로는 팀 내에서 인프라를 깊게 다룰 수 있는 인원이 많지 않았고,
제한된 기간 안에서 서비스 기능 구현 자체에 집중해야 했기 때문에 인프라 구조를 충분히 이해하고 운영해볼 여유가 부족했습니다.
당시에는 Kubernetes나 EKS를 “사용해본 경험”에 가까웠다면,
이번에는 왜 ECS를 사용하는지, 왜 이후에 EKS로 확장하는지까지 직접 경험해보고 싶다는 생각이 들었습니다.
프로젝트가 끝난 이후에도 계속 이런 생각이 들었습니다.
“지금 다시 만든다면 더 좋은 구조로 만들 수 있지 않을까?”
“그때는 이해하지 못했던 것들을 지금은 제대로 구현할 수 있지 않을까?”
그래서 시간이 지나고 다시 공부를 하면서,
예전에 만들었던 프로젝트를 처음부터 다시 구현해보고 싶다는 생각이 들었습니다.
그래서 시작하게 된 BriPong
BriPong은 기존 Newsugar를 단순히 리메이크하는 프로젝트는 아닙니다.
당시 부족했던 부분들을 다시 공부하면서,
서비스를 처음부터 직접 설계하고 구현해보기 위한 프로젝트에 더 가깝습니다.
이번 프로젝트에서는 단순히 뉴스 데이터를 보여주는 것이 아니라,
뉴스를 수집하고 가공하고 검색하는 과정까지 직접 구성해보려고 합니다.
특히 이번에는 뉴스 크롤링부터 RAG(Retrieval-Augmented Generation),
LangChain 기반 검색 구조까지 직접 구성하면서,
- 뉴스 검색 정확도 개선
- 최신 뉴스 기반 Retrieval
- 뉴스 요약 품질 향상
- 벡터 기반 검색 구조
- 검색 결과 최적화
같은 부분들도 함께 고민해보려고 합니다.
기존 프로젝트에서는 단순 키워드 기반 검색 위주였다면,
이번에는 벡터 기반 검색과 문맥 기반 Retrieval을 통해 조금 더 정확한 뉴스 검색 경험을 만드는 것을 목표로 하고 있습니다.
또한 이번 프로젝트에서는 인프라 구성 역시 처음부터 다시 직접 구축해보려고 합니다.
먼저 ECS 기반으로 서비스를 직접 구축하고 운영해보면서 컨테이너 기반 배포와 AWS 인프라 구조를 충분히 이해한 뒤,
이후에는 Kubernetes 및 EKS 환경으로 점진적으로 이전하는 과정까지 직접 진행해볼 예정입니다.
단순히 “EKS를 사용해봤다”에서 끝나는 것이 아니라,
- ECS와 EKS의 차이점은 무엇인지
- 운영 관점에서 어떤 장단점이 있는지
- 실제 서비스에서는 어떤 구조가 더 적합한지
이런 부분들까지 직접 경험하고 이해해보는 것을 목표로 하고 있습니다.
또 기존처럼 단순히 기능만 구현하는 것이 아니라, Docker 환경 구성부터 AWS 인프라 설계, ECS/EKS 구축, CI/CD 자동화까지
전체 서비스를 처음부터 끝까지 직접 설계하고 운영하는 경험을 목표로 진행해보려고 합니다.
프로젝트 이름
프로젝트 이름은 BriPong 으로 정하게 되었습니다.
뉴스를 짧고 간결하게 전달한다는 의미의 Brief 느낌을 담고 싶었고,
딱딱한 뉴스 서비스보다는 조금 더 친근하고 가벼운 느낌의 이름을 만들고 싶었습니다.
아직 구상 단계인 부분들도 많지만, 이번 프로젝트는 단순한 리메이크가 아니라
“예전에는 제대로 이해하지 못했던 것들을 다시 처음부터 구현해보는 과정”에 더 가까운 프로젝트가 될 것 같습니다.
앞으로의 목표
이번 프로젝트에서는 단순히 기능만 구현하는 것이 아니라,
- 왜 이런 구조로 설계하는지
- 왜 이런 인프라 구성을 사용하는지
- 왜 이런 검색 방식을 선택하는지
이런 부분들까지 스스로 설명할 수 있을 정도로 이해하면서 프로젝트를 진행해보고 싶습니다.
예전에는 잘 모르고 지나갔던 부분들도 이번에는 하나씩 직접 부딪혀보면서 공부해보려고 합니다.
앞으로 개발하면서 겪는 설계 과정이나 트러블 슈팅, RAG 및 검색 구조 개선 과정, AWS 및 인프라 구축 과정들도 블로그에 함께 기록해볼 예정입니다.