CS

데이터 바인딩(정적 바인딩, 동적바인딩, 단방향, 양방향 바인딩)

그레고리력 2021. 7. 7. 19:04

바인딩


어떤 구성요소의 성격이나 값을 확정하는 것, 주로 변수의 자료형, 호출되는 함수의 이름의 타입이 결정되는 과정

정적바인딩과 동적바인딩


정적바인딩(static binding)

  • 자료형이 있는 컴파일 언어(C 등)가 컴파일 되어 기계어로 처리 되기 전에 이루어지는 과정
  • 어떤 변수의 자료형과 함수이름등이 존재 해야하고 이러한 변수, 함수의 정적 바인딩이 문제 없이 처리되면 컴파일 오류가 없이 컴파일이 되고, 실행 파일이 생성

동적바인딩(dynamic binding)

  • 컴파일 타임이 아닌 런타임(실행중에)때 자료형이 결정되는 언어 즉, 인터프리터언어에서 주로 처리되는 방법
  • 따로 컴파일이라는 과정이 없으므로 실행과정 중에 문법적인 오류가 발생할 수 있음

단방향과 양방향바인딩


데이터 바인딩 이란 두 데이터 혹은 정보의 소스를 모두 일치시키는 기법
즉, 화면에 보이는 데이터와 브라우저 메모리에 있는 데이터를 일치시키는 기법
양방향 바인딩

  • 사용자의 입력값이 곧바로 코드 상의 변수에 바인딩 될 수 있음
  • 장점 : 코드의 사용면에서 코드양을 크게 줄여줌
  • 단점 : 변화에 따라 DOM 객체 전체를 렌더링해주거나 데이터를 바꿔주므로, 성능이 감소되는 경우가 있음
  • 컨트롤러에서 model이 변경되면 view가 변경되고 view에서 model이 변경되면 컨트롤러에서 model이 변경됨

단방향바인딩

  • 적절한 Event를 통해서만 코드 상 변수에 데이터 값이 담긴다.
  • 장점 : 데이터 변화에 따른 성능 저하 없이 DOM 객체 갱신 가능, 데이터 흐름이 단방향(부모->하위 컴포넌트)이라, 코드를 이해하기 쉽고 데이터 추적과 디버깅이 쉬움
  • 단점: 변화를 감지하고 화면을 업데이트 하는 코드를 매번 작성해야 함