인프런 커뮤니티 질문&답변
인터페이스를 쓰는 근본적인 이유
작성
·
499
퀴즈
개발 중인 앱을 실제 다양한 물리적 기기에서 테스트하는 것이 중요한 주된 이유는 무엇일까요?
개발 속도를 향상시키기 위해서입니다.
실제 기기에서의 호환성 및 예상치 못한 오류를 확인하기 위해서입니다.
앱의 그래픽 성능을 최적화하기 위해서입니다.
소스 코드의 보안을 강화하기 위해서입니다.
답변 1
0
플레이어 스크립트에서 인터페이스 상속을 통해서 구현이 되어 있습니다.
그런데 어디선가 실행해주는 것을 확인해보기 위해서 IAdManager 라는 것을 직접 작성해서 확인해본 것입니다. 플레이어 안에 IAdManager 의 기능을 넣고 설명하면 더 혼돈이 올수 있기 때문에 이렇게 만든 것입니다.
인터페이스가 실행되는 것은 구조가 딜리게이트와 같습니다만 문법이 다릅니다.
어딘가에서 실행해주는 기능을 구현하였을때 사실 이 강의에서 볼수 있는 IAdManager 라는 클래스는 외부에 노출되어 있지 않게 됩니다.
저희 광고도 마찬가지로 구현이 되어 있는데 저희가 알수있는것은 인터페이스의 이름과 그것이 지원하는 함수입니다.
다음강의를 보시면 이해하기 쉬울텐데요.
어딘가에서 실행해주는 기능이 있는데 그것의 소스코드는 알리고 싶지 않고 게임개발자에게는 완료가 된 상황(광고가 끝난상황) 취소가 된 상황만을 알리고 싶습니다.
그렇기 때문에 저희는 IUnityAdsListener 라는 인터페이스를 상속받아서 사용합니다. 인터페이스 상속과 실제상속이 완전히 다른의미입니다. 그리고 유니티에서는 IUnityAdsListener 라는 인터페이스만 미리 만들어놓으면 됩니다. 실제 함수가 실행되는 것은 광고기능의 어딘가에 있겠죠. 그것조차 게임개발자는 알필요가 없다는 것입니다.
인터페이스의 뜻이 접속이라는 뜻이죠.
저희의 클래스와 광고클래스를 서로 접속 시킨다는 의미로 이해하시면 더 쉬울 것입니다.
감사합니다.




