데이터바인딩이 뭘까

이제 슬슬 프론트엔드와 관련된 기술을 하나하나 배우다보니, 데이터바인딩이라는 기술이 계속 귀에 들어온다.

관련 업에서 꽤 종사하신 분의 말을 들어보니, 없을 때도 문제 없이 잘 살았지만, 써보니 없을 때에 어떻게 살았는지 잘 모르겠다고 하신다.

이제는 없으면 안되는 기술이고, 일종의 기본기로 자리 잡았다고 하여 알아보려고 한다.

1. 개요

개발이라는걸 직접 해보기 전에는 화면에 보이는 데이터와 앱 내에서 전달되는 데이터가 일치하는 것은 당연하다고 생각했었다.

하지만, 실제로는 뷰와 모델을 분리하고, 이 둘이 유기적으로 동작하여야 하는 복잡한 환경에서 이루어져있다.

이 환경의 복잡도가 급격하게 증가하면서 메모리에 있는 여러 객체들과 화면의 데이터를 일치 시키기 위해, 화면에 보이는 데이터와 메모리에 있는 데이터를 하나로 연결하는 작업이 필요해진다.

이 어렵고 복잡한 기술에 도움을 주는 것이 바로 데이터바인딩이다.

2. 특징

기존의 많은 귀찮은 일들이 gradle에서 데이터바인등의 활성화와 xml파일에 를 배치하는 것 만으로 굉장히 편해진다.

핵심 기능만 간단히 나열하자면 아래와 같다.

1. Acivity를 객체화 하여 사용 가능함.
2. Layout에서 생성한 뷰를 별도의 선언 없이 activity에서 사용 가능함.
3. 메소드 참조의 간편화
4. 리스너를 바인딩하여 데이터를 간단히 전달함.
5. 클래스를 import하여 정적 필드나 메소드를 간단히 호출 가능함.
6. 이미 만들어진 레이아웃을 간단히 include할 수 있다.

굉장히 번거롭거나 여러 절차를 통해서만 사용이 가능했던 것을 훨신 간편하고, 직관적으로 사용할 수 있게 해준다.

3. 장점

* 기존에 자바에서 하던 일들을 xml파일 내에서 모두 처리가 가능해짐.
* 기존에 사용하던 findViewByld를 통한 View로의 접근을 훨신 간소화 하여 MVVM 패턴의 구현이 가능하다.
* View-ViewModel의 분리.

4. 단점

* 없으면 답답함(?)

글을 쓰면서 아직 내가 아는 지식이 많이 부족함을 느꼈다.

더 공부하고 살을 더 붙여야 완성될 것 같다!

댓글남기기