📝 백엔드 데브코스 4기 최종 피어 리뷰 결과2024년 2월 19일 (월) 까맣게 잊고 있던 피어리뷰가 공개되었다..! 저도 팀원들이 여러분이라 유익하고 행복한 시간이었습니다. 덕분에, 개발자로서 성장했지만, 사람으로서도 성장할 수 있었습니다. 다음에 기회가 된다면, 또 팀원으로 만나 모아밤 때 하지 못했던 이야기를 이어나가고 싶습니다. 고생하셨습니다!모아밤 프로젝트데브코스에서 프론트 팀원들과 백엔드 팀원들이 모여 최종 프로젝트를 2개월 간 진행했다. 최종 프로젝트는 루틴 서비스를 기반으로 한 모아밤 서비스이다. 🌐 프로젝트 깃 저장소 바로가기 team-moabam모두의 아침☀️과 밤🌛에 사람들을 모아밤! 🌈 . team-moabam has 5 repositories available. Follo..
📝 백엔드 데브코스 4기 2차 피어리뷰 결과열린 마음을 갖고 대화할 수 있는 개발자가 되도록 노력하겠습니다! 최종 프로젝트까지 파이팅!JT👀N 프로젝트데브코스에서 4주 동안 2차 프로젝트를 시작했다. 이번 프로젝트는 웹툰 서비스를 기반으로 한 JTOON 서비스이다. 프로젝트 기간이 끝나고 팀원들과 함께 기술 교류회까지 마쳤다.🌐 프로젝트 깃 저장소 바로가기 GitHub - prgrms-be-devcourse/BE-04-JTOON: [조셉팀] - 네이버 웹툰 클론 코딩[조셉팀] - 네이버 웹툰 클론 코딩. Contribute to prgrms-be-devcourse/BE-04-JTOON development by creating an account on GitHub.github.comJT👀N 회고?..
안녕하세요. 현재 데브코스 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 RedisRedis를 마치 JPA Repository 이용하듯 인터페이스를 제공하는 Spring Module 입니..
안녕하세요. 현재 데브코스 4기로 활동 중인 모아밤팀 서버 개발자 홍혁준입니다. 이번 포스팅에서 FCM Push Notification에 대해 이야기를 풀어내 보려고 합니다. 감사합니다. 모아밤 서비스에는 어떤 Push 알림이 필요할까? 푸시 알림이란 사용자가 서비스를 사용하고 있지 않은 상황에서도 사용자에게 알림을 보내는 방법입니다. 푸시 알림을 가장 단순하게 구현하는 방법은 Polling 방식으로 주기적으로 서버에 편지 도착 여부를 묻는 HTTP 요청을 보내는 방법이 있는데요. 이 Polling 방식은 Short Polling과 Long Polling 방식이 있는데, Short Polling은 서버가 줄 데이터가 없음에도 주기적으로 요청과 응답 작업을 반복해야 해서 불필요한 트래픽이 발생합니다. 반..
개요데브코스 팀원들과 웹툰 서비스를 주제로 사이드 프로젝트를 경험했다. 이 프로젝트를 무사히 마치고 나서 다음과 같은 의문이 들었다. "사용자들은 유료 웹툰을 구매하기 위에 쿠키라는 상품을 사용하는데, 만약 동일한 아이디로 다른 사용자가 동시에 유료 웹툰을 구매하면 어떻게 될까?" 이 의문을 해소하고자 포스팅을 작성하게 되었다.[🌐 프로젝트 저장소]❗️ 문제사용 가능한 쿠키가 100개가 있고, 동일한 아이디로 동시에 다른 유료 웹툰을 구매했다고 가정하자. Race Condition (경쟁 상태) : 둘 이상의 입력 또는 조작의 타이밍이나 순서 등이 결과값에 영향을 줄 수 있는 상태개발 관점으로 보면 두 명의 사용자가 쿠키에 동시에 접근하여 쿠키 갯수를 감소시킬 수 있게 된다. 즉, 쿠키 갯수라는 공유 ..