728x90
1. 인터페이스의 의미
- 인터페이스는 표준껍데기이다. 2가지 개념이 같이 움직인다.
- 표준이라는 것은 자신들이 만든 프로그램이 이런 표준이라고 상대방에게 알리는 것. 무슨 표준 규칙이 존재하는게 아니다.
- 상대방 기준에서 표준인 것.
2. 인터페이스 사용 하는 큰 개념들
2.1. 자바적 개념
- 추상메서드의 집합, 내부 변경이 쉽고 호환이 쉽다.
- 인터페이스와 연결된 객체는 인터페이스 내부의 실제 구현체와 의존하지 않아서 실제 구현체는 변경이 용의
- 구현체 : 인터페이스 구현체
- 연결체는 인터페이스 메서드 선언부로만 가지고 실제 구현체를 작동할수 있다.
- 인터페이스를 타입변수로 가진 실제 인터페이스 구현체는 설정창과 같은 곳에서 따로 관리
- 구현체 업데이트시 설정창의 인터페이스와 인터페이스 구현체를 새로 연결하면 된다.
- 아니면 if문으로 상황에 맞게 맞춰서 사용할 수 있도록 한다.
- 구현체 : 인터페이스 구현체
- 자바 개념의 인터페이스를 보면 껍데기의 역할로 유연한 연결이 핵심으로 보인다.
- 시대의 변화에 따른 업데이트가 쉽다.
- db 변경, 기능 추가 등등
2.2. API
- API가 인터페이스랑 완전 동일한 것이 아니다. 인터페이스의 특징을 이용한 어떤 개념일 뿐이다.
- API는 크게 2가지 역할을 수행
- API 표준 역할
- 외부에서 공통으로 api를 제공한 소프트웨어를 문제없이 사용할 수 있도록 하는 역할
- API 표준 쪽 인터페이스의 역할: 표준제공 > 껍데기 제공 (항상 둘다 제공하지만 핵심은 표준)
- 예시
- 큰 규모 기능을 만듬(큰큰이) - 해당 기능을 수행할 수 있도록 api 문서를 제공, api문서의 규칙에 맞게 설계한 외부 다른 모든 프로그램들은 큰큰이를 문제없이 사용 가능하다.
- ms 오피스 SW API를 보고 컴퓨터 HW 회사에서 HW를 만든다.
- 우리 sw는 하드웨어 이쪽이쪽 이렇게 쓸것이다.
- 이렇게 만들면 ms SW 설치때 아주 손쉽게 설치가 가능 할 것
- java API : java api 규칙에 맞게 java application을 만들면 모든 웹사이트와 호환을 할 수 가 있다.
- 우리가 늘 보면 문서가 api 문서
- java api 문서 -> 쓰고 싶은 package -> 내부에 쓰고 싶은 class -> 내부에 쓰고 싶은 mehtod 혹은 변수
- 인터페이스는 껍데기이면서 표준이랬는데 java api 같은 경우에는 어떻게 껍데기의 역할을 하나?
- 껍데처럼 해당 패키지 내 클래스 내부 변수나 method의 실제 구현부분을 변경 가능. 하지만 이러면 문제가 생기니깐 이정도로 작은 규모의 경우는 건들이지 않는다. - 언어 수준, 완전 밑바닥
- 반면에 spring 규모로 커지면 아까 설명한 껍데기이면서 표준인 상황이 이해하기가 쉽다. 규모가 더 크기 때문
- 우리가 늘 보면 문서가 api 문서
- ms 오피스 SW API를 보고 컴퓨터 HW 회사에서 HW를 만든다.
- 큰 규모 기능을 만듬(큰큰이) - 해당 기능을 수행할 수 있도록 api 문서를 제공, api문서의 규칙에 맞게 설계한 외부 다른 모든 프로그램들은 큰큰이를 문제없이 사용 가능하다.
- API 서비스 역할
- 정보제공 역할
- 서비스 쪽 api의 인터페이스의 역할 : 껍데기 제공 >표준제공 (항상 둘다 제공하지만 핵심은 껍데기)
- 예시
- api를 제공해주는 날씨 앱
- 날씨를 알려주는 조건에 맞춰 뭔가를 수행하면 해당 정보를 보여준다. 서비스 제공을 위해 일부 공개
- 생각해보면 공개부분도 인터페이스 method를 공개할 것 - 제공 기능이 업데이트 가능성이 존재하기 때문
- api를 제공해주는 날씨 앱
- API 표준 역할
2.3. GUI
- 껍데기를 건들이면 내부에서 복잡한 것은 스스로 작동을 한다.
- 얘도 내부가 업데이트 되어서 gui는 모르지만 업데이트 된 프로그램(구글, 배경화면, 설정창 등등 )을 사용이 가능하다.