본문 바로가기

iOS/스몰토크

[스몰토크] WKWebView 와 통신 어떤것이 적절할까? Scheme VS Bridge

 

 

WkWebView 와 통신하기 위한 2가지 방법이 있습니다.

 

아래는 Scheme, Bridge 두 방식에 대해 세미나를 진행한 것을 캡쳐한 그림입니다.

 

 

Scheme, Bridge 방식의 샘플이 있습니다. by 클린트님

 

 

정적과 동적

Scheme는 정적 / Bridge는 동적입니다.

 

대칭적인 예를 들어서 컴파일 타임 VS 런타임과 매칭되어서 설명할 수 있습니다. 

 

  정적 동적
유연성 낮음 높음
불변조건 높음 낮음

 

 

불변조건(invariant)

컴타임 타임에서 빌드가 성공했다면 그 이후 조건은 "프로그램이 실행될 준비가 완료되었다"를 의미합니다. 

하지만 프로그램이 실행되면 빌드를 다시하거나 유연하게 프로그램의 변경을 할 수 없습니다. 

유연성은 없지만 invariant 조건이 충족되는 장점을 가질 수 있습니다.

 

런타임에서는 if 를 사용해서 분기에 따라서 제어를 할 수 있습니다. 

하지만 ifinvariant 불변 조건이 충족되지 않습니다. 

다양한 조건에 따라 프로그램이 동작합니다. 

 

컴파일 런타임 뿐만 아니라 다른 비교할 수 있는 것들이 어떤 것이 있는지 알아봅시다. 

 

정적 동적
RDBMS ORM
상속 합성
스택
메이븐 그래들

 

Scheme, Bridge 

우리는 결국 정적의 안정성을 얻기 위해 Scheme 을 사용해야 한다는 결론에 도달했습니다. 

Bridge 를 사용하게 되면 window 안에 bridge interface 존재하는 한 그에 상응하는 대가를 치르게 된다는 것을 깨달았기 때문입니다.