들어가며 뉴스낵의 모든 AI 콘텐츠는 언론사의 최신 뉴스 기사로부터 시작된다. AI 생성 품질은 입력 데이터의 품질에 직접적으로 의존하므로, 수집 파이프라인의 안정성과 정확성은 서비스 전체의 신뢰도와 직결된다. 이 글에서는 언론사 RSS 피드를 통해 기사를 주기적으로 수집하고, 이를 TF-IDF 기반 군집화로 이슈 단위로 압축하는 과정을 다룬다. ...
뉴스낵 이용하기 들어가며 최근 신한 스퀘어브릿지 청년 해커톤 2기에 백엔드 개발자로 참여하였다. 이 해커톤은 6주 동안 참가자들이 실제 기업과 매칭되어 기업이 제안한 과제를 해결하는 프로젝트를 진행하는 방식으로 진행되었다. 나는 디자이너 2명, 프론트엔드 1명, 백엔드 1명으로 구성된 팀에서 백엔드 개발을 담당했다. 우리 팀은 AXZ에 배정되...
이전 글에서 이어지는 글입니다. 모니터링 대상 서버 연동 이제 모니터링 대상인 ‘어디GO’ 서버가 자신의 상태 정보를 외부에 공개하도록 설정할 차례다. 서버 인프라 메트릭 수집 (Node Exporter) 서버의 CPU, 메모리, 네트워크 등 기본적인 하드웨어 및 OS 정보를 수집하기 위해 node_exporter를 사용했다. ‘어디GO...
들어가며 어디GO의 백엔드 MVP 개발은 완료됐지만 한 가지 문제가 남아있었다. 현재는 ‘서버가 잘 돌고 있는지’에 대해 명확하게 알기 어려웠다. 이러한 불확실성을 해소하고, 시스템의 안정성을 확보하기 위해 서버의 상태를 실시간으로 파악할 수 있는 모니터링 시스템을 구축하기로 결정했다. 업계 표준으로 널리 사용되는 프로메테우스(Prometheus)...
이전 글에서 이어지는 글입니다. 이 글은 프로젝트에서의 구체적인 Spring Batch Job 구현 내용과 파이프라인 안정화 과정에서 마주했던 이슈를 다룹니다. Spring Batch Job 구현 Chunk 기반 처리 Spring Batch는 대용량 데이터를 처리할 때, 지정된 개수(Chunk)만큼 데이터를 메모리에 읽어 한 번에 처리하...
이 글은 Spring Batch를 프로젝트에 도입하게 된 배경과 아키텍처 설계 과정에 대해 다루고 있습니다. 배경 어디GO ‘상품 가격 탐색’ 기능에서의 핵심은 데이터의 최신성과 정확성이다. 가격 랭킹, 가격 추이 기능은 최신 상품 가격을 기반으로 제공되어야 한다. 이를 위해 농수산물 유통정보(KAMIS) Open API를 사용, 매일 상품...
이 글은 어디GO의 상품 가격 탐색 API를 완성하기까지의 여정을 다룹니다. 시작하며: API-First 전략 ‘어디GO’의 실질적인 개발 기간은 4주로, 짧은 기간동안 안드로이드 팀원과의 긴밀한 협업이 필수적이었다. 이러한 상황 속에서 ‘API-First’ 개발 전략을 따르기로 했다. 이는 백엔드 개발자가 로직을 완성할 때까지 안드로이드 ...
들어가며 이전 글에서 어디GO의 예외 처리 시스템을 구축한 과정을 다루었다. 하지만 해당 시스템만으로는 예측하지 못한 런타임 에러가 발생했을 때 이를 신속하게 인지하기 어려웠다. 이 글에서는 이 문제를 해결하기 위해 실시간 에러 트래킹 도구인 Sentry를 도입하고, GitHub Actions 기반의 CI/CD 파이프라인에 통합한 과정을 설명한...
들어가며 어디GO의 백엔드 API 개발을 시작하기 전에 전역 예외 처리 시스템을 구축했다. API에서 발생하는 예외를 일관된 형식으로 응답하는 것은 프론트엔드와의 원활한 협업을 위해 필수적이기 때문이다. 이 글에서는 내가 정의한 에러 응답 규약과, Spring의 동작 원리에 기반해 GlobalExceptionHandler를 구현한 과정을 기록한다....
서론 만약 별도의 배포 자동화를 구축하지 않는다면 개발자는 EC2 인스턴스에 직접 접속하여 git pull을 받고, ./gradlew build로 애플리케이션을 빌드한 뒤, 실행 중인 프로세스를 죽이고 새 jar 파일을 실행하는 등의 과정을 거쳐 배포를 해야한다. 이 방식은 단순하지만 시간 소모와 배포 실패 가능성이라는 비효율을 지니고 있다. 이 ...