현재 Mash-Up 14기수를 진행중이다. 8월 24일 MVP 배포를 했다.
실제 동아리 구성원분들에게 어떤 서비스인지 간략하게 알려주는 행사이다.
원래는 7월 27일이 MVP 배포였지만, 미뤄지게 되어 8월 24일에 발표하게 됐다.

Goorm에서 진행한 MVP 배포

먼저, 우리의 서비스를 기획할 때 팀원들과 잡은 가장 큰 매쉬업 구성원은 81명이라 4/3 이상인 DAU 60이 목표였다.
매쉬업 동아리 구성원들의 니즈를 고민해봤는데, 도파민을 뿜뿜하게 해주는 것으로 결정했다.
현재 동아리 사람들은 2030의 it 에대한 열정이 넘치는 사람들이 모인 곳이다.
파트가 6개로 구성되어있는 만큼, 사람들이 81명이나 된다.
그렇기에 친해지고 싶어도 다른 파트, 다른 프로젝트 팀 사람들과는 쉽게 친해지지 못하는 아쉬움을 찾았다.
그래서 이를 해결하기 위해, 매쉬업 구성원들간 칭찬, 투표 서비스를 만들기로 기획했다.
각 사용자들은 오전 9시, 오후 6시에 질문지 12 세트를 부여받는다.
1번 사진. 각 사용자들은 질문에 대해 픽을 할 수 있다.
12개의 질문에 모두 응답하면 다음 투표 시간을 기다려야한다.
2번 사진. 내가 받은 픽을 최신 픽순, 픽 많은 순으로 조회할 수 있다.
3번 사진. 픽 중 특정 질문에 대해 본인을 픽한 사람에 대한 정보를 재화를 사용하여 오픈할 수 있다.
3, 4, 5, 6, 7, 8번 사진. 나를 투표한 사람을 재화를 사용하여 조금씩 오픈해볼 수 있다.
갓 디자이너 분들.. 갓 프론트 개발자 분들 만세

이런 서비스이다. 그리고 누군가 본인을 픽했다면 아래와 같이 토스트 알림이 뜨게 된다.

자 이 상황에서 다른 백엔드 개발자 분께서 알림 기능을 구현해주셨다.
SSE를 활용하여 알림을 보내도록 했다.
대망의 발표시간.
팀원 분 중 발표를 하며 써보라고 Mash-Up 구성원들에게 링크를 전달했다.
많이 참여해주셨고 1분도 채 되지 않아 서버가 터졌다.
백엔드 개발자 분과 얘기를 해봤을 때, 지금 EB 환경에서 단일 EC2이기 때문에 메모리가 못 버틴 것 같다고 결론이 났다.
발표가 끝난 후 로그를 확인해보니 역시 SSE와 메모리 문제였다.

SSENotificationService: SSE 연결 타임아웃
ControllerExceptionAdvice: 비동기 요청 타임아웃(AsyncRequestTimeoutException)
ExceptionHandlerExceptionResolver: 예외 처리 중 실패(HttpMediaTypeNotAcceptableException)
원인: 클라이언트가 서버로부터 수용할 수 있는 미디어 타입을 지정했으나, 서버가 해당 타입으로 응답할 수 없어서 발생한 예외
우리는 이렇게 인기가 많을 줄 몰랐고, 순간 트래픽이 몰려 서버가 터져버렸다.
그래서 메모리를 스케일업하고 200명의 SSE로 테스트했는데 바로 성공했다.

런칭데이가 2주 뒤이고, 최종 발표가 한 달 뒤이다.
당장 런칭데이가 얼마 남지 않았으니 우선 스케일업을하고, 그 동안 쿠버네티스를 공부하며 우리는 제공 받은 NCP 크레딧으로 현재 애플리케이션을 컨테이너화하여 쿠버네티스를 사용하자는 것으로 결론이 났다.
현재 나는 AWS의 ECS를 사용하여 container orchestration을 경험해봤지만, 쿠버네티스는 도전해보지 못했다.
이전에 아래 경험을 통해 쿠버네티스를 경험해보고 싶었지만 AWS의 쿠버네티스 EKS를 사용하면 요금을 폭탄맞는다는 얘기를 들었기 떄문에 겁이 났던게 사실이다.
2024.02.03 - [CI-CD/AWS] - AWS ECS 무중단 CI/CD Pipeline 0. ECS 배포하게 된 배경
AWS ECS 무중단 CI/CD Pipeline 0. ECS 배포하게 된 배경
기존 배포 방식기존 배포 방식과 CodeDeploy의 한계처음에는 단일 EC2 인스턴스에 수동으로 애플리케이션을 배포했습니다. 매번 터미널을 통해 파일을 옮기고 명령어를 실행하는 반복적인 작업은
toychip.tistory.com
하지만 NCP 에서는 ECS라는 개념이 없고 쿠버네티스를 활용할 수 있기에 쿠버네티스를 공부를 시작했다.
https://www.inflearn.com/course/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4-%EC%96%B4%EB%82%98%EB%8D%94-%ED%81%B4%EB%9E%98%EC%8A%A4-%EC%A7%80%EC%83%81%ED%8E%B8-sprint1/dashboard
쿠버네티스 어나더 클래스 (지상편) - Sprint 1, 2 강의 | 일프로 - 인프런
일프로 | ⚓쿠버네티스, 🙇♀️아직 망설이시나요? 🙋♂️저만 믿고 따라오세요! 당신의 실력을 ⭐어나더 레벨로 만들어 드리겠습니다., ✅ 광범위한 쿠버네티스 기술을 A~Z까지 넓고
www.inflearn.com
하지만 언젠가는 쿠버네티스를 꼭 배워보고 싶다는 생각을 하고 있었기 때문에 이번 기회에 쿠버네티스를 학습해서 서버를 안정적으로 오토스케일링하고 Mash-Up 구성원들이 재밌게 우리 서비스를 사용해줬으면 좋겠다.
너무나 뜨거운 Maship의 인기 ㅋㅋㅋ

10월 5일이 최종발표인데, 성공할 수 있을까?
추후에 런칭데이 끝나면 또 포스팅하도록 하겠다 ~.~
'프로젝트 > Maship' 카테고리의 다른 글
Maship 3. ShedLock사용. Scale-out시 Scheduler 중복 실행 방지 (0) | 2024.08.23 |
---|---|
Maship 2. Select, Insert 쿼리 분리 및 JPA 배치 처리로 벌크성 쿼리 최적화하기 (Mash-Up Maship Project) (0) | 2024.08.14 |