항해99 22일차 WIL

Colleen·2023년 2월 5일
0
post-thumbnail
post-custom-banner

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버전 부터는 내장 되어 별도로 추가 해주지 않아도 된다니.. 신기 했다.

이 이외에도 느슨한 결합이라는 개념이 나온다. 아직은 이해 하는데, 서툴은 것 같아 조금더 공부 하면 이해가 될때 마다 조금씩 더 써 나갈 생각이다.

아래는 자바 공부를 하면서, 오늘 주제를 들으며, 다시 한번 정리 해보는 내용이다.

  • 인터페이스
    • 인터페이스는 어떠한 설계도이다.
    • 이러한 설계도에 규칙에 맞추어 개발하면, 우리는 내부 구현을 알 필요도 없이 그냥 인터페이스의 함수가 잘 동작할 것이라 생각하고 호출하면 된다.
  • 추상 클래스
    • 부모 클래스에서 정의한 동작을 자식 클래스에서 구현하고 그것을 자식이 구현하고 확장한다.
    • 인터페이스와 달리 다른 기능도 확장하고 추가할 수 있다.
profile
이상한 나라의 개발하는 예대생
post-custom-banner

0개의 댓글