Skip to content

Conversation

@blu3fishez
Copy link
Collaborator

작업내용

위 머지에 대해 dev로 반영합니다.

- 현재 웹소켓 서버를 분리했습니다.
- 중앙화된 웹소켓 서버를 사용하고 싶었으나, 잘 되지 않아서 없앴습니다.
- 인프라와 관련된 기능 (redis, websocket, typeorm) 과 관련된 부분을 묶어서 분리했습니다.
- 리턴 DTO에 대해서도 명확하게 명세하도록 수정
- 각각의 API의 리턴 형태를 명확하게 변경
- 엔티티로부터 필요한 데이터만 뽑아올 수 있게 하는 별도의 정적 함수 제공
- 단순 Redis 엔티티에서 도메인 로직을 포함할 수 있도록 하는 래퍼 클래스 형성
- `Facade` 패턴 활용 - 처음부터 활용하지 않고, 로직을 함께 래핑을 할 수 있는 기능을 생각하다보니 자연스럽게 채용되었음
- 방에 참가할 때,
- 후에 여러번 이벤트를 발생시켜야할 때 어떻게 해야할지 고민중
- 현재로써는 여러번 이벤트를 발생시키는 경우 직접 서비스 로직에서 이벤트를 발생하고 있음
- 합쳐도 200줄 밖에 안돼서 통합
- 인터페이스를 명확히 하도록 통합 후, `public`, `private` 으로 접근제어자 설정
- 소켓 메타 데이터 또한 세션만을 위해 사용되므로 `room.gateway.ts` 에 편입
- 바뀐 `infraService` 이름에 맞추어 리팩토링
- 가급적이면 emit 을 게이트웨이에서 해줄 수 있도록 개선(아직 개선할 부분이 남음)
- redis 에 직접 접근하는 엔티티로써의 역할을 하도록 분리함
[Refactor] 스터디 세션 부분 리팩토링
@blu3fishez blu3fishez added the 🎁 Refactoring 리팩토링 label Dec 3, 2024
@blu3fishez blu3fishez self-assigned this Dec 3, 2024
@blu3fishez
Copy link
Collaborator Author

blu3fishez commented Dec 3, 2024

작동문제 없는 거 확인했습니당!

@blu3fishez blu3fishez merged commit d3cbdc0 into dev Dec 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🎁 Refactoring 리팩토링

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants