Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

주니어에서 시니어로

데이터 바인딩이란? 단방향/양방향 데이터 바인딩 본문

STUDY/Frontend

데이터 바인딩이란? 단방향/양방향 데이터 바인딩

_JJ_ 2023. 3. 30. 10:34

리액트를 사용하면서 부모에서 자식으로 데이터를 내려준다는 사실을 자연스럽게 터득하게 되었다.

상태 변화해야 할 일이 있을 때 자식 컴포넌트에 setState 함수를 내려줘야 하는 게 불편해서 그냥 자식 이랑 연동돼서 바뀌면 알아서 바뀌면 편할 것 같다고 많이 생각했다. 그래서 단방향, 양방향 차이점과 장단점을 정리해 보게 됐다.

 

안드로이드에서의 데이터 바인딩은 ui와 데이터를 선언적 형식으로 결합할 수 있게 하는 라이브러리라고 한다. 프로그래밍에서의 의미와는 조금 다른 듯하여 다음에 기회가 되면 알아보기로..


 

데이터 바인딩이란?

제공자와 소비자로부터 두 데이터 혹은 정보의 소스를 동기화시키는 기법.

즉, 화면에 보이는 데이터와 브라우저 메모리에 있는 데이터를 일치시키는 기법이다

 

단방향 데이터 바인딩 (One-way Data Binding)

데이터 흐름이 단방향으로 이루어지고(부모 > 자식) 데이터와 템플릿을 결합하여 화면을 생성한다. 즉 뷰가 바로 업데이트되지 않는다. ex) React

 

  • 장점: 데이터 방향을 예측하기 쉽고, 디버깅이 쉽다.
  • 단점: 변화를 감지하고 화면을 업데이트하는 코드를 작성해야 해서 코드가 길어진다.

 

양방향 데이터 바인딩 (Two-way Data Binding)

데이터 흐름이 양방향으로 이루어지고 (부모 < > 자식), 데이터의 변화를 감지해 템플릿과 결합하여 화면을 갱신하고 화면에서의 입력에 따라 데이터를 갱신한다. 즉, 데이터와 화면 사이의 데이터가 계속해서 일치한다. ex) Angular

 

  • 장점: 데이터 변화를 감지하고, 화면을 업데이트하는 코드를 쓸 필요가 없어 코드량을 크게 줄여준다. 복잡도가 증가할수록 효율적이고, 코드 관리가 쉬워진다.
  • 단점: 변화에 따라 DOM 객체 전체를 랜더링 하거나 데이터를 바꾸므로 성능이 감소되는 경우가 있다.

 

둘의 차이점은 뷰가 얼마나 지속적으로 업데이트되는지에 따라 나눌 수 있다.

단방향 바인딩으로 표현 가능한 요소를 굳이 양방향으로 활용 시 불필요한 리소스 확보로 성능 저하를 일으킬 수 있어 상황에 따라 사용하는 게 좋다. 

 

 

 

reference

https://velog.io/@milkyway/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B0%94%EC%9D%B8%EB%94%A9-Data-Binding

https://itworldyo.tistory.com/124?category=946003

'STUDY > Frontend' 카테고리의 다른 글

REST란? RESTful API란?  (0) 2023.04.03
Session vs Token(JWT)  (0) 2023.03.31
[FE] SPA, CSR, SSR, TTI, TTV  (0) 2023.03.27
컴파일러 vs 인터프리터  (0) 2023.03.20
[CSS] CSS Triggers란?  (0) 2023.03.12