[개발] 컨트롤러 코드 중복 문제

Stormi·2022년 4월 13일
0

개발

목록 보기
8/20
post-thumbnail

<하려는 일>
Oauth를 통해 가입을 시키려고 할 때, 카카오와 네이버 Oauth를 다루는 컨트롤러에서 코드 겹치기 때문에 이를 어댑터 패턴으로 빼고자 한다.

<문제점>
<틀린 방법, 틀린생각>

이런식으로 AuthService가 싱글빈이라서 이렇게 카카오 웹 클라인트랑 네이버 웹 클라이언트 둘 중에서 뭐를 가져올 지 모르는 것 같다. 이 부분은 Provider를 받을 때, kakao인지, naver인지를 받아서 WebClient를 뭐를 가져올지 정하면 될거 같다고 생각했는데 어댑터가 판단해야하니까 리스트에 저 빈들을 넣어놓으면 될거같다.

이것은 리스트로 어댑터로 받으면 해결될 거 같다. !!!!


이런식으로 코드를 짰지만
역시나

이런 에러가 뜬다. 어떻게 리스트로 잘 받아할까....

앞 부분은 틀렸습니다.. 아니 사실 저렇게 받아도 됩니다. 하지만 제가 저 메소드들을 호출하는 Service 클래스에서 문제가 있었습니다. 

무슨 문제? 바로 빈으로 등록된 것을 불러 올 때는 첫번째로 
Type을 확인하고 타입이 같다면 이름을 확인하는데 이름은 변수명이 클래스명이거나 메소드 이름이어야합니다. 하지만 제가 변수명을 완전히 다르게 쓰고 있어서 문제였습니다. 

해결 방법
https://velog.io/@cokkum113/%EB%8B%A8%EC%9D%BC-%EC%B1%85%EC%9E%84-%EC%9B%90%EC%B9%99

0개의 댓글