https://velog.io/@hsw0194/Spring-Boot%EC%97%90%EC%84%9C-interface%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%B4%EC%95%BC-%ED%95%A0%EA%B9%8C 의 내용을 참고해서 이번주 WIL을 작성 해보고자 한다.
Spring boot를 사용하다 보면 Service를 사용하세 된다. 인터넷상의 많은 예시에서 사람들이 Service들을 위해서 Interface를 사용하는 것을 볼 수 있다. 왜 그런 장치둘이 필요한 것일까?
저 글의 내용을 보면 딱히 필요가 없다고 한다. 해당 Service에 autowire를 통해서 bean을 주입하면 된다고 한다.
그렇다면 왜 종종 사용하는 가에 대해서 나도 읽으면서 궁금했다. 그 이유는 역사적이 이유라고 한다. 과거에는 필요 했지만 10여년 전부터, Spring에서 CGLIB proxying을 지원하게 되면서 Interface를 필요로 하지 않는 다고 한다. Spring 3.2버전 부터는 내장 되어 별도로 추가 해주지 않아도 된다니.. 신기 했다.
이 이외에도 느슨한 결합이라는 개념이 나온다. 아직은 이해 하는데, 서툴은 것 같아 조금더 공부 하면 이해가 될때 마다 조금씩 더 써 나갈 생각이다.
아래는 자바 공부를 하면서, 오늘 주제를 들으며, 다시 한번 정리 해보는 내용이다.