~결론~
병 대신 풍선이란 표현을 쓸거예요~
풍선에 실제 좌표(위도, 경도)를 줄거예요~
유저는 지도에서 풍선을 습득하고, 노래를 추천받을 수 있어요~
## 수정하는 이유
프로젝트의 기획을 수정하기로 했다.
원래 프로젝트의 의도는 누군가 추천해주는 음악을 받아 듣는다는 취지에서 Music in a Bottle이라 했지만,
이건 어쩌면 음악 추천 게시판이나 음악 추천 알고리즘을 이용해 해결 할 수 있을 것이다.
병을 음악에 담아서 보내고 받아보는게 재밌는 부분인데 이 점을 실제로 살리지 못하는 것 같다.
## 병을 실제로 지구상에 둥둥 떠다니게 할까?
차라리 병에 실제 좌표를 부여하고 이를 Google Map를 이용해 화면에 보여주면 더 멋질 것 같다.
그리고 배치 작업을 돌려서 병을 조금씩 이동시키면 될것 같다.
구글 맵을 이용해 실제 좌표를 다뤄보는건 해보고 싶었던 것이기도 하다.
다만 이건 문제가 있다.
일반적으로 병은 바다를 통해서 전달되는데, 내륙에 사는 사람들은 어떠한 방법으로 병을 바다로 보낼 수 있을까 싶다.
실제로 좌표가 눈으로 보이기 때문에, 대충 태평양 한가운데로 만들어주면 어설퍼 보일 것이다.
## 풍선에 음악을 실어 보내자
그래서 아예 음악을 전달하는 매개체를 병에서 풍선으로 바꾸기로 했다.
그러면 지형적 문제가 없어지는 이점이 있다.
그리고 풍선은 각자의 백터를 부여해서 이동하게 하면 될것 같다.
또, 음악을 추천받고 싶은 유저는 자신의 좌표에서 반경 몇km의 풍선만 받아볼 수 있다고 하면 좋을 것 같다.
## 너무 많은 풍선은 부하가 될거예요!
풍선이 너무 많으면 배치 작업에서 갱신할 게 많아진다.
모든 풍선을 각자의 이동 벡터에 따라 위치를 갱신해야 하는데, 이는 주기가 짧을수록, 풍선이 많을 수록 좋지 않다.
풍선은 많을수록 서비스에 도움이 되기 때문에 꼭 해결해야 한다.
내가 떠올린 방법은 이동 벡터를 여러개로 그룹화 하는 것이다.
어차피 사람들은 각각의 풍선이 유니크한 이동 벡터를 가지는지에 대한 관심은 없을 것 같다.
적당히 많은 그룹화된 이동벡터가 있으면 눈치채지 못할 것이다.
이동 백터를 그룹화 한다는 말은, 풍선을 위치별로 그룹화 한다는 말이 아니다.
그러니까 이동 벡터 여러개를 만들어 두고, 배치 작업에서 이동 벡터 값만 계속 업데이트 해주고, 풍선을 조회할때 초기 위치에 더해서 보내주면 좋을 것 같다.
근데 결국 너무 많은 풍선은 조회시 문제가 될 것이다.
모든 풍선을 보여주는 건 힘들것 같고.. 근처의 풍선만 보여주거나 대표 풍선만 보여줘야겠다. (이게 좀 걱정됨)
'프로그래밍 > A music in a balloon' 카테고리의 다른 글
# 11 바람에 날리는 풍선은 어떻게 구현할까? (2) | 2024.06.11 |
---|---|
# 10 스프링 예외처리 (1) | 2024.06.06 |
# 8 깃허브 엑션 테스트 적용기 (0) | 2024.06.05 |
# 7 LazyInitializationException을 보았다! (0) | 2024.06.04 |
# 5 게스트 구현 (0) | 2024.05.31 |