ViewBinding은 코드에서 xml(View)를 Binding클래스를 이용해서 findViewById보다 좀더 쉽게 접근하여 조작하는거라면
DataBinding을 이용하면 xml에 data태그를 추가하거나 BindingAdapter어노테이션을 추가한 함수들을 통하여 xml에서도 코드에 접근을 할수있고 코드에서도 접근을 할수 있게 됩니다.

여러 구조들에 대하여 배울때 모듈화의 장점은 약결합, 약결합을 이용하면 코드가 서로에 대한 의존도가 낮아지고 그에따라 독립된 모듈로 유지보수가 편하다는 것을 배운후라 그런지 결합과 스파게티코드에 관해서 보게되 이걸 사용하면 결합이 강해지고 스파게티 코드가 되지 않을까 하고 말이야. DataBinding보면 xml과 코드의 연결이 되는데 이러면 n:m의 연결까지 가능하니까 결합이 강해져서 결과적으로는 유지보수가 힘들어지지 않을까?
음...
그거 그냥 구조를 처음부터 잘짜면 그런일 없는거아님? 게다가 작은앱은 DataBinding써도 크게 상관 없잖아.. 정 신경 쓰이면 ViewBinding 쓰지뭐 ㅋㅋㅋ
기능이 필요하다고 함수 만들어서 늘리고 결합하고 이런과정을 반복하지 않는 이상 이러한 문제가 생기지는 않을것 입니다.
이러한 경우가 생길수있을정도로 큰 앱이라면 어떤 구조가 필요할까요?
MVP (Model-View-Presenter) 또는 MVVM (Model-View-ViewModel)가 좋아보입니다. 대부분의 큰앱은 이처럼 중간 계층을 포함하는 구조를 사용합니다. 이러한 구조의 장점의 각 레이러의 할일이 분류되어있다는 장접이 있습니다. 중간 계층이 있는 이러한 구조를 사용한다면 DataBinding을 사용하더라도 xml의 접근이 Util이나 Presenter나 ViewModel의 데이터로 갈것이고 onClick 같은 동작들도 Activity나 Fragment로 갈것이기때문에 결합을 최소화하고 스파게티코드가 되는것을 방지할수 있을것입니다.