이전 글에서 이어지는 글입니다. 이 글은 프로젝트에서의 구체적인 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 파일을 실행하는 등의 과정을 거쳐 배포를 해야한다. 이 방식은 단순하지만 시간 소모와 배포 실패 가능성이라는 비효율을 지니고 있다. 이 ...
들어가며 ‘어디GO’ 프로젝트에서 나는 백엔드 API 개발과 함께 서비스가 동작할 AWS 인프라를 구축하는 역할을 맡았다. 단순히 EC2 인스턴스 하나를 띄우는 것을 넘어, 보안, 고가용성, 비용 효율성이라는 세 가지 목표를 가지고 인프라를 설계했다. 이 글에서는 AWS의 초기 설계가 현실적인 제약에 부딪혀 새로운 구조로 변경되기까지의 과정을 ...
들어가며 8주간의 DND 여정과 어디GO의 MVP 개발이 공식적으로 마무리되었다. 첫 글에서 무엇을 만들었는지 이야기했다면, 이번 글에서는 그 과정 속에서 무엇을 배우고 느꼈는지를 KPT 회고를 바탕으로 정리하려고 한다. Keep 프로젝트의 과정과 결과에 아쉬움이 있지만, 과정 속에서 분명히 얻은 것들이 있었다. 개인의 기술적 성장과 팀...
어디GO는 Android 전용 앱입니다. 링크를 통해 APK 파일을 다운로드하여 설치할 수 있습니다. 배경 최근 IT 연합 동아리 DND 13기에 참여했다. 우리 팀은 디자이너, 안드로이드 개발자, 백엔드 개발자 각각 2명씩, 총 6명으로 구성되었고, 나는 그중 백엔드 개발을 맡았다. 8주간의 활동 기간 동안 하나의 프로덕트를 완성하는 ...
최근 블로그 댓글 시스템을 utterances에서 giscus로 전환했다. 이 글에서는 giscus를 적용한 과정을 다룬다. 배경 기존 댓글 시스템 utterances에서 댓글을 관리하던 방식 블로그를 처음 만들 당시에 댓글 시스템으로 utterances를 선택했다. utterances는 GitHub Issues를 기반으로 동작하며, 다음과 ...