작성
·
369
·
수정됨
1
Spring Security 관련 강의에서 API와 인터페이스가 개념적으로 이해가 잘 가지가 않아서요 ㅠㅠ
--★기존에 알고 있던 개념---------------------------------------------------------------------
API 의존성을 추가한다.
제공해주는 객체를 A a = new A 생성자로 생성한다.
a.method(); 로 제공자 api에 접근해서 결과를 리턴받는다
--★Spring Security에서 api를 사용할때 개념---
1. API 의존성을 추가한다
2. a.method(); 로 제공자 api를 실행시킨다.
3. api제공자의 프로그램은 내가 구현한 (인터페이스)를 실행시켜 관련된 정보를 얻고
4.그 정보를 조합하고 연산하여서 결과를 리턴한다.
*3번의 내가 구현한 인터페이스란 api제공자가 필수적으로 구현하라고 준 인터페이스
인터페이스가 api제공자와 api소비자의 관계에서 어떤 역할을 하는 지 잘 모르겠어요..ㅠㅠ
답변 2
0
제공자가 사용자의 인터페이스로 보고 구현체를 내부적으로 만들어주는 경우가 스프링에 많이 쓰입니다. 예를들면 Mapper 인터페이스를 개발자가 만들면 스프링 내부에서SqlSessionFactoryBuilder가 구현체를 내부에 만드는 것처럼요. 스프링 시큐리티도 그런방식이 많이 사용됩니다. 어쩌든 인터페이스로 구현체를 접근하는 방식은 같다고 보면되겠습니다.~~
0
제공된 api를 직접적으로 사용이 어려울수있습니다. 예를들면 소스코드가 제공되지 않기때문이죠? 그래서 api를 제공하는 쪽에서 인터페이스를 만들어서(인터페이스도 결과적으로는 api라고 봐도됩니다) 인터페이스를 구현한 api를 만들어서 인터페이스와 구현한api를 제공해주는 것입니다.
그러면 개발자는 제공된 인터페이스를 이용해서 구현되api의 기능을 사용하는것이구요.
포괄적으로 보면 api는 인터페이스와 클래스들의 집합으로 생각하시면됩니다.^^
선생님~ 거의 다 알것 같습니다!!
그런데! 제공자의 API(인터페이스+클래스)를 사용자가 인터페이스를 이용해서 기능을 사용해야 된다고 하셨는데요~!
즉 API의 인터페이스를 실행시켜서 제공자의 클래스를 써먹어야 하는데
Spring Security에서는 왜 인터페이스를 개발자(사용자)가 직접 만들고 있나요?
제공자가 API(인터페이스)를 의도적으로 덜 채운 것을 개발자가 채워주는 건가요??
만약 그렇다면 제가 만든 인터페이스 구현체는 API가 작동시키나요? 사용자가 작동시키나요?
바쁘시겠지만 ㅠㅠ 답글 꼭 부탁드리겠습니다!!
(23.05.18) - 최종으로 이해한 것
api사용법에는 두 가지 종류가 있다.
① api 구현 문서를 보면서 api사용자가 인터페이스를 구현하는 방식
② api제공자가 구현해놓은 인터페이스로 접근하는 방식
③ ①과② 합쳐진 방식(인터페이스를 구현문서를 보면서 구현하고 또 api제공자가 구현해놓은 클래스에 인터페이스로 접근도 하고)
선생님 ~ 결국 이렇게 이해했는데 잘 이해한 것인가요?? Spring Security는 3의 방식이고 gson은 2의 방식이구요!