Skip to content

refactor: 컨트롤러에서 SiteUser를 인자로 받지 않도록 한다. #299

@nayonsoso

Description

@nayonsoso

어떤 부분을 리팩터링하려 하나요?

리팩터링하려는 부분에 대해 간결하게 설명해주세요

AS-IS

현재는 컨트롤러에서 사용자를 SitUser 객체로 받고 있습니다.
이렇게 구현한 이유는,

  • 스프링 시큐리티의 UserDetailService 에서 SitUser로 회원을 조회하고,
  • 다시 서비스 코드에서 사용자를 findById로 조회하는

중복된 코드를 줄이기 위함이었습니다.
하지만 준영속 상태의 SitUser를 서비스 코드로 전달함으로써, 서비스 코드에서 영속성과 관련된 문제가 발생했습니다.
e.g. LazyLoading 이 동작하지 않음

TO-BE

  • argument resolver를 수정하여 컨트롤러의 인자로 long SiteUserId를 받게 합니다.
  • 서비스 코드에서 SiteUser를 직접 조회하여, 영속 상태인 SiteUser를 사용하도록 수정합니다.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions