8 Week
Data Binding
분리된 View 와 Model 을 하나로 묶어 두개의 데이터 소스를 연결하고 동기화 하는 기술이다.
Data Binding 은 대표적으로 단방향 데이터 바인딩과 양방향 데이터 바인딩으로 나뉜다.
백엔드 개발자에게 익숙한 MVC 패턴 은 View 대신 json 을 사용한다고 볼 수 있다.
프론트에선 요즘은 MVVM 패턴 을 자주 사용하는데 여기서 Data Binding 을 활용한다.
- 단방향 데이터 바인딩
- event 를 통해 데이터 흐름이 단방향으로 이루어 진다. (부모 -> 자식)
- View 가 바로 업데이트 되지 않는다.
- 양방향 데이터 바인딩 보다 리소스가 적게 든다.
- 양방향 데이터 바인딩
- 데이터 변경에 따라 프레임워크를 통해 양방향으로 이루어 진다. (부모 <-> 자식)
- View 가 즉시 업데이트 된다.
- 단방향 데이터 바인딩 보다 리소스가 많이 든다.
왜쓰는데?
웹 애플리케이션의 복잡도가 갈수록 향상되면서 브라우저 메모리가
자바스크립트 객체와 화면에 있는 데이터를 맞추는데 큰 어려움이 생기고 있다.
이러한 상황을 쉽게 해결 해주기 위해 Data Binding 을 사용한다.
대표적인 프론트엔드 프레임워크인 Angular, React, Vue 모두
Data Binding 을 지원하는데 상황에 따라 적절하게 쓰면 되겠다.
To Do
OOP
어플리케이션을 구성하는 요소들을 객체로 보고, 객체들을 유기적으로 연결하여 프로그래밍 하는걸 말한다.
데이터와 이를 처리하는 루틴을 하나의 독립된 객체 로 본다.
재사용성, 유지보수 에 용이하고 대형 프로젝트에 적합하다.
하지만 속도가 상대적으로 느리고, 설계 시 많은 리소스가 들어간다.
- 추상화
- 목적과 관련이 없는 부분을 제거하여 필요한 부분만을 표현하기 위한 개념
- 캡슐화
- 정보은닉 - 접근제어자
- 코드의 의존성을 줄이고, 결합도를 낮추는 것
- 필요한 부분만 외부에 노출시키고 나머지는 숨긴다.
- 외부에서 불필요한 의존을 할 일이 없어지고 의존성이 줄어드는 만큼 유지보수도 편해진다.
- 상속
- 코드의 재사용성에 이점이 있지만 코드의 재사용성만을 위해 사용은 지양한다.
- 흔히 재사용성 뿐 아니라 계층구조 같은 구조를 만들 때 사용하자
- 다형성
- 객체지향의 꽃이라고도 불린다.
- 형태가 같지만 다른 기능을 하는 것을 말한다.
- 하나의 타입에 여러 객체를 대입할 수 있는 성질이다.
- 업캐스팅
- 서로 다른 클래스의 인스턴스를 동일한 타입에 할당할 수 있게 한다.
- 동적바인딩
- 메시지를 수신했을 때 실행도리 메서드가 런타임에 결정된다.
- 오버로딩
- 오버라이딩
- 업캐스팅
OOP 왜쓰는데?
OOP와 상속
OOP와 추상화
책에서는 모델링이라고 설명한다.
대상에 집중하지말고 문제에 집중을 하면 올바른 추상화에 가까이 갈 수 있다.
대상은 문제를 풀기 충분한 정도의 속성만 가지고 있으면 되고, 이 문제를 푸는데 불필요한
속성은 제거하는 편이 낫다.
OOP와 캡술화
OOP와 Getter / Setter
댓글남기기