Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BE] chore: 단일 DB로 변경, 인메모리 메시지 브로커 적용 #746

Merged
merged 4 commits into from
Dec 3, 2024

Conversation

takoyakimchi
Copy link
Contributor

@takoyakimchi takoyakimchi commented Dec 1, 2024

이슈

개발 사항

  • AWS 비용 지원이 종료됨에 따라 DB replication을 적용 해제하고 단일 DB 사용하는 방식으로 변경

전달 사항 (없으면 삭제해 주세요)

  • 기존 코드는 최대한 살리는 방향으로 수정했습니다.
  • RDS - EC2 연동 테스트 완료했습니다. 무중단 배포 스크립트에서 설정값을 수정한 후 merge하면 될 것 같아요.
  • 메시지 브로커는 S3 설정이 완료되면 테스트 하면 될 것 같습니다.

@takoyakimchi takoyakimchi added ⚙️ setting 환경 세팅 🖥 backend backend labels Dec 1, 2024
@takoyakimchi takoyakimchi added this to the Sprint7 milestone Dec 1, 2024
@takoyakimchi takoyakimchi self-assigned this Dec 1, 2024
Copy link

github-actions bot commented Dec 1, 2024

Test Results

226 tests  +149   226 ✅ +149   20s ⏱️ +19s
 46 suites + 34     0 💤 ±  0 
 46 files   + 34     0 ❌ ±  0 

Results for commit 349697f. ± Comparison against base commit 6bc242f.

This pull request removes 77 and adds 226 tests. Note that renamed tests count towards both.
com.happy.friendogly.presentation.ui.club.common.model.ClubFilterSelectorTest ‑ Gender 필터를 선택하면 해당 필터들만 반환되어야 한다()
com.happy.friendogly.presentation.ui.club.common.model.ClubFilterSelectorTest ‑ Size 필터를 선택하면 해당 필터들만 반환되어야 한다()
com.happy.friendogly.presentation.ui.club.common.model.ClubFilterSelectorTest ‑ 선택 된 GenderFilter가 없다면, GenderFilter를 확인하는 로직은 false를 반환해야 한다()
com.happy.friendogly.presentation.ui.club.common.model.ClubFilterSelectorTest ‑ 선택 된 GenderFilter가 있다면, GenderFilter를 확인하는 로직은 true를 반환해야 한다()
com.happy.friendogly.presentation.ui.club.common.model.ClubFilterSelectorTest ‑ 선택 된 SizeFilter가 없다면, SizeFilter를 확인하는 로직은 false를 반환해야 한다()
com.happy.friendogly.presentation.ui.club.common.model.ClubFilterSelectorTest ‑ 선택 된 SizeFilter가 있다면, SizeFilter를 확인하는 로직은 true를 반환해야 한다()
com.happy.friendogly.presentation.ui.club.common.model.ClubFilterSelectorTest ‑ 여러 필터를 추가하면 ClubFilterSelector에 모든 필터가 추가되어야 한다()
com.happy.friendogly.presentation.ui.club.common.model.ClubFilterSelectorTest ‑ 이미 추가 된 필터가 있다면 해당 필터는 추가되지 않아야 한다()
com.happy.friendogly.presentation.ui.club.common.model.ClubFilterSelectorTest ‑ 필터 목록을 초기화하면 주어진 필터들로 초기화되어야 한다()
com.happy.friendogly.presentation.ui.club.common.model.ClubFilterSelectorTest ‑ 필터를 제거하면 해당 필터는 ClubFilterSelector에서 삭제되어야 한다()
…
com.happy.friendogly.DataSourceRoutingTest ‑ 읽기 전용 트랜잭션이 아니면, Writer DB 데이터소스가 바운딩된다.
com.happy.friendogly.DataSourceRoutingTest ‑ 읽기전용 트랜잭션이면 reader DB 데이터소스가 바운딩된다.
com.happy.friendogly.chatmessage.controller.ChatMessageControllerTest ‑ 두 시점 사이의 채팅 메시지를 조회할 수 있다.
com.happy.friendogly.chatroom.service.ChatRoomCommandServiceTest ‑ 1대1 채팅방 저장 과정에서, 이미 채팅방이 존재하면 기존 채팅방 ID를 반환한다.
com.happy.friendogly.chatroom.service.ChatRoomCommandServiceTest ‑ 새로운 1대1 채팅방을 개설할 수 있다.
com.happy.friendogly.chatroom.service.ChatRoomCommandServiceTest ‑ 채팅방에서 나간다.
com.happy.friendogly.chatroom.service.ChatRoomCommandServiceTest ‑ 채팅방을 나가고 모임을 나가도 예외가 발생하지 않는다.
com.happy.friendogly.chatroom.service.ChatRoomQueryServiceTest ‑ 내가 속해 있는 채팅방을 찾을 수 있다.
com.happy.friendogly.chatroom.service.ChatRoomQueryServiceTest ‑ 자신이 참여한 채팅방이 아니면 채팅방에서 모임 정보를 받아올 수 없다.
com.happy.friendogly.chatroom.service.ChatRoomQueryServiceTest ‑ 참여중인 1대1 채팅방과 최근 메시지를 조회한다.
…

♻️ This comment has been updated with latest results.

jimi567
jimi567 previously requested changes Dec 2, 2024
Comment on lines +44 to +48
driver-class-name: com.mysql.cj.jdbc.Driver
url: ${MYSQL_PROD_RDS_URL}
username: ${MYSQL_PROD_RDS_USERNAME}
password: ${MYSQL_PROD_RDS_PASSWORD}

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

저희 mysql rds쓰나요..?

@@ -12,16 +12,16 @@
import org.springframework.web.socket.config.annotation.StompEndpointRegistry;
import org.springframework.web.socket.config.annotation.WebSocketMessageBrokerConfigurer;

@Profile("local")
@Profile("local | dev | prod")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

저희 모든 환경에서 인메모리 메세지로 바꿀 것 같은데
굳이 프로파일 설정안해도 될 것 같아요.
추가하신 특별한 이유가 있는지 궁금합니다.

Copy link
Contributor

@ehtjsv2 ehtjsv2 Dec 3, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

제 생각에는 InMemory를 현재 상황에서 local, dev, prod 모두에서 사용중이다 라는 것을 명시적으로 코드에서 보여주고 싶었던 것일 거 같아요. 그렇게 생각하니 좋아보이네요! 나중에 봤을 때 생각의 여지도 적어질 것 같구요

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

원래 환경별로 분리하는 것을 염두에 두고 작성한 코드였어서 그대로 두려고 했었는데
지금 상황에서는 생략해도 좋아보이네요

ehtjsv2
ehtjsv2 previously approved these changes Dec 3, 2024
Copy link
Contributor

@ehtjsv2 ehtjsv2 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

ehtjsv2
ehtjsv2 previously approved these changes Dec 3, 2024
@ehtjsv2 ehtjsv2 merged commit 3969e3b into develop Dec 3, 2024
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🖥 backend backend ⚙️ setting 환경 세팅
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

메시지 브로커 변경 DB Replication 해제
4 participants