본문 바로가기
JAVA 공부

자바의 인터페이스(Interface)

by KyeongOUK 2020. 5. 13.

인터페이스(Interface)


결론부터 말하면, 극단적으로 동일한 목적 하에 동일한 기능을 수행하게끔 강제하는 것이 바로 인터페이스의 역할이자 개념이다. 조금 더 유식하게 말하면, 자바의 다형성을 극대화하여 개발코드 수정을 줄이고 프로그램 유지보수성을 높이기 위해 인터페이스를 사용한다. 

 

교수님이 학생들에게 논문을 쓰라고 했다.

 

A학생은 PPT로 논문을 11일날 제출했다.

B학생은 EXCEL 2016 로 논문을 12일날 제출했다.

C학생은 EXCEL 2019 로 자기만의 색깔을 입혀 표 형식으로 12일날 제출했다.

D학생은 메모장에 '논문'을 쓰고 교수님이 말해준 당일 바로 제출했다.

 

응?? 논문을 쓰라고 지시했지만, 결과물이 너무 개성이 넘친다....이건 평가할 수 없을 것 같다. 왜 이런일이 일어날까?

가이드 라인 또는 어떠한 규격이 없기 때문에 발생하는 문제이다.

따라서 교수는 다시 명확한 가이드라인 있는 논문을 쓰라고 지시해야한다. 아래처럼...

 

학생들에게 2019.12.12일 18:00까지 홈페이지 본인 교수 홈페이지 제출란을 통해 논문을 제출해야하고

논문 파일 형식은 .PPT이며 10Page 안에 작성을 해야하고 논문 주제는 '블록체인을 활용한 공인인증서' 이다.

 

자 이번에 서울시는 밤길 여성들의 안전한 귀가를 위해 30억을 투입해 1000개 유명 중국 H사의 CCTV를 설치했다고 치자. 이제 CCTV에서 송출되는 영상을 각 지역 관할 파출소나 경찰서에서 모니터링 할 수 있도록 1년에 걸쳐 10억을 투자해 CCTV 모니터링 프로그램 시스템을 구축했다. 근데,, 문제가 생겼다 H사의 CCTV는 배터리가 불량고 비가 오면 방수처리가 잘 안되어 고장이 나기 시작했다.. 안되겠다 국산 G사의 CCTV로 전부 다 교체하기로 했다. 그런데 맙소사..중국 H사 CCTV의 영상 송출 모듈에만 특화된 프로그램을 만든 것이다. 다시 프로그램을 만들고 시스템을 구축해한다..응?

감이 올 것이다.

 

만약 현재 시중에서 판매되고 있는 CCTV 제조사가 CCTV의 송출 모듈을 모두 공통적으로 규격에 맞는 모듈로 개발했다면 이런 유지보수성의 불편함은 발생되지 않을 것이며 호환성이 높아질 것이다. 정리하면, 제조사가 다른 CCTV여도 영상 송출이라는 동일한 기능을 제공하게 하는 것이 바로 인터페이스이다.

 

자 이제 인터페이스의 개념을 정리하자!

 

인터페이스란? 극단적으로 동일한 목적 하에 동일한 기능을 보장하게 하기 위함!

어떻게? 자바의 다형성을 이용하여  개발코드 수정을 줄이고 유지보수성을 높인다!

 

 

출처 : https://limkydev.tistory.com/197

'JAVA 공부' 카테고리의 다른 글

앱만들기  (0) 2020.05.29
[7조]짝 프로그래밍(게시판 만들기)  (0) 2020.05.15
자바에서의 캡슐화란?  (0) 2020.05.13
아두이노  (0) 2020.05.12
텍스트 게시판(up 200508)  (0) 2020.05.07

댓글