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

채팅 기능 추가, 이동 db 변경 #41

Merged
merged 11 commits into from
Sep 5, 2024
Merged

채팅 기능 추가, 이동 db 변경 #41

merged 11 commits into from
Sep 5, 2024

Conversation

david-parkk
Copy link
Member

@david-parkk david-parkk commented Sep 3, 2024

✏️ 작업 개요

채팅 기능 추가
맵 이동 관련 db 수정

⛳ 작업 분류

  • 채팅 기능
  • 맵 이동 관련 db 수정
  • ci,cd test 수정

🔨 작업 상세 내용

  1. 아주 단순한 채팅 기능을 구현
  2. 맵 이동 관련하여 PK 값은 auto increment 값으로 추가하였습니다. 이제 유저ID는 컬럼이 됩니다.
  3. 몽고 atlas 설정(테스트환경, 배포 환경)

💡 생각해볼 문제

  • 개발하면서 느낀 건데 만약 PK값이 유일성 최소성을 보장하는 상황에서도 사용자의 입력으로 PK를 정한다는 것이 위험하게 느껴 auto increment 값을 추가하였습니다.
  • 몽고 atlas 을 연결함에 따라 로컬 환경에서 작업시 몇까지 문제가 발생할 것으로 보입니다.(같은 db를 공유하고 있기 때문에) 일단 배포환경은 database를 분리하였습니다.
  • 테스트하면서 webflux 환경에서는 @transactional을 지원하지 않는 이슈로 인해 문제가 있습니다. 가장 큰 문제는 롤백이 되지 않기 때문에 의도하지 않은 환경에서 테스트가 영향을 주고 있습니다.
  • 롤백을 위한 Transaction 클래스를 구현하는 글을 보았는데 제한적인 상황에서 사용가능해서 완전히 대체가 되지 않는거 같네요

Copy link

github-actions bot commented Sep 3, 2024

Test Results

18 tests   18 ✅  7s ⏱️
 7 suites   0 💤
 7 files     0 ❌

Results for commit 9140608.

@kamothi
Copy link
Member

kamothi commented Sep 4, 2024

개발하면서 느낀 건데 만약 PK값이 유일성 최소성을 보장하는 상황에서도 사용자의 입력으로 PK를 정한다는 것이 위험하게 느껴 auto increment 값을 추가하였습니다.

auto increment도 그런 측면에서는 완벽한 해결책이 안된다라고 생각하는데 이런 이유라면 uuid를 사용하는 것은 어떤가요?

테스트하면서 webflux 환경에서는 @transactional을 지원하지 않는 이슈로 인해 문제가 있습니다. 가장 큰 문제는 롤백이 되지 않기 때문에 의도하지 않은 환경에서 테스트가 영향을 주고 있습니다.

https://stackoverflow.com/questions/53934357/does-spring-transaction-management-work-with-spring-webflux
그렇군요...

@david-parkk
Copy link
Member Author

개발하면서 느낀 건데 만약 PK값이 유일성 최소성을 보장하는 상황에서도 사용자의 입력으로 PK를 정한다는 것이 위험하게 느껴 auto increment 값을 추가하였습니다.

auto increment도 그런 측면에서는 완벽한 해결책이 안된다라고 생각하는데 이런 이유라면 uuid를 사용하는 것은 어떤가요?

테스트하면서 webflux 환경에서는 @transactional을 지원하지 않는 이슈로 인해 문제가 있습니다. 가장 큰 문제는 롤백이 되지 않기 때문에 의도하지 않은 환경에서 테스트가 영향을 주고 있습니다.

https://stackoverflow.com/questions/53934357/does-spring-transaction-management-work-with-spring-webflux 그렇군요...

uuid도 고려해볼만하다고 생각합니다. auto increment 가 해결책이 되지 못하는 이유가 있을까요?

@kamothi
Copy link
Member

kamothi commented Sep 5, 2024

결국 사용자가 pk를 유추할 수 있다 또는 알 수 있다라는 것에 고민을 하는 것 같아 uuid를 언급하였습니다. 결국 auto increment도 사용자가 다른 사람의 pk를 유추할 수 있기는 하니까요. 만약 의도가 이게 아니였다면 auto increment도 충분할거 같아요

@kamothi kamothi merged commit f5edeb8 into main Sep 5, 2024
5 checks passed
@kamothi kamothi deleted the feat/chat branch September 5, 2024 12:42
@david-parkk
Copy link
Member Author

/쿠타버스 배포

@david-parkk david-parkk mentioned this pull request Sep 21, 2024
3 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants