Activity/데브코스 - 모아밤 테크

안녕하세요. 현재 데브코스 4기로 활동 중인 모아밤팀 서버 개발자 홍혁준입니다. 이번 포스팅에서 Caching에 대해 이야기를 풀어내 보려고 합니다. 감사합니다. 개요 문제 현재 모아밤 서비스의 문제점은 Moabam Tech - 실시간 선착순 쿠폰 이벤트 도입기 포스팅을 보면 알 수 있듯 대기열 등록 및 쿠폰 발급 부분에서 DB에 동일한 요청을 계속해서 보내고 있습니다. 즉 불필요한 쿼리가 발생하고 있습니다. 원인 사용자들이 선착순 쿠폰 발급을 위해 쿠폰 발급 요청을 하기 때문에, 단기간에 동일한 요청이 여러번 발생합니다. 또한 스케줄러로 인해 1초마다 동일한 쿼리가 발생합니다. 해결 현재 모아밤 서비스는 쿠폰 정보 변경 가능성이 없다고 봐도 무방합니다. 또한 동일한 요청을 보내고 별도 연산없이 동일한 ..
안녕하세요. 현재 데브코스 4기로 활동 중인 모아밤팀 서버 개발자 홍혁준입니다. 이번 포스팅에서 서브모듈에 대해 이야기를 풀어내 보려고 합니다. 감사합니다. 배경 팀원들과 스프링부트를 활용해 모아밤을 개발하면서, application.yml 혹은 application.properties에 애플리케이션 환경 분리와 Private 정보를 모두 명시해야 했습니다. 때문에, 초반에는 아래와 같이 환경 변수를 활용해 설정 정보를 명시했지만, 이는 큰 문제점이 있었습니다. ... token: iss: ${JWT_ISS} access-expire: ${JWT_ACCESS_EXPIRE} refresh-expire: ${JWT_REFRESH_EXPIRE} secret-key: ${JWT_SECRET_KEY} ... 문제..
안녕하세요. 현재 데브코스 4기로 활동 중인 모아밤팀 서버 개발자 홍혁준입니다. 이번 포스팅에서 예외 처리에 대해 이야기를 풀어내 보려고 합니다. 감사합니다.배경모아밤에서는 @RestControllerAdvice와 @ExceptionHandler를 통해 예외 처리를 진행하고 있습니다. 하지만 왜? 해당 방식을 사용할까요?  단순 예외 처리가 아닌 일반적인 요청 흐름과 예외 발생 시, 흐름을 파악하여 왜 해당 방식을 사용하게 되었는 지 살펴봅시다! 사전 지식BasicErrorControllerSpring 1.X 버전부터는 예외 처리를 위한 BasicErrorController를 구현했습니다. 그리고 Spring Boot는 예외 발생 시, 기본적으로 /error로 예외 요청을 다시 전달하도록 WAS 설정이 ..
안녕하세요. 현재 데브코스 4기로 활동 중인 모아밤팀 서버 개발자 홍혁준입니다. 이번 포스팅에서 실시간 선착순 시스템에 대해 이야기를 풀어내 보려고 합니다. 감사합니다.배경저희 모아밤 서비스는 사용자들을 위해 쿠폰 이벤트를 도입하게 되었습니다. 현재 생각 중인 쿠폰은 선착순으로 진행하는 이벤트로 사용자들이 다양한 종류의 N개 쿠폰을 선착순으로 지급 받도록 할 계획입니다. 선착순 쿠폰 발급 이벤트는 짧은 시간에 많은 트래픽이 발생합니다. 중요한 점은 서버가 다운되지 않고 수량 제한에 맞춰 정확하게 쿠폰이 발급되어야 합니다. 이런 사항들을 모아밤에서는 어떻게 해결했는지 살펴봅시다. 요구사항사용자들은 정해진 재고에 따라 선착순으로 쿠폰을 발급 받을 수 있다.동일한 이벤트에서 동일 사용자가 쿠폰을 중복하여 발급..
안녕하세요. 현재 데브코스 4기로 활동 중인 모아밤팀 서버 개발자 홍혁준입니다. 이번 포스팅에서 Embedded Redis에 대해 이야기를 풀어내 보려고 합니다. 감사합니다. 배경 모아밤에서는 다음 요구사항을 위해 Redis 저장소를 활용하게 되었습니다. 사용자는 다른 사용자에게 12시간 마다 1회 콕 알림을 보낼 수 있다. 사용자는 자신이 속한 방의 인증타임에 알림이 울린다. 개인적으로 프로젝트 코드를 누군가가 클론했다면, 그 즉시 개발 및 테스트를 시작할 수 있어야 한다고 생각합니다. 때문에, 테스트 할 수 있는 환경 구성을 위해 Embedded Redis를 적용하게 되었습니다. 기술 환경 Spring Data Redis Redis를 마치 JPA Repository 이용하듯 인터페이스를 제공하는 Sp..
안녕하세요. 현재 데브코스 4기로 활동 중인 모아밤팀 서버 개발자 홍혁준입니다. 이번 포스팅에서 FCM Push Notification에 대해 이야기를 풀어내 보려고 합니다. 감사합니다. 모아밤 서비스에는 어떤 Push 알림이 필요할까? 푸시 알림이란 사용자가 서비스를 사용하고 있지 않은 상황에서도 사용자에게 알림을 보내는 방법입니다. 푸시 알림을 가장 단순하게 구현하는 방법은 Polling 방식으로 주기적으로 서버에 편지 도착 여부를 묻는 HTTP 요청을 보내는 방법이 있는데요. 이 Polling 방식은 Short Polling과 Long Polling 방식이 있는데, Short Polling은 서버가 줄 데이터가 없음에도 주기적으로 요청과 응답 작업을 반복해야 해서 불필요한 트래픽이 발생합니다. 반..
홍도산
'Activity/데브코스 - 모아밤 테크' 카테고리의 글 목록