티스토리 뷰
SAPUI5를 어느정도 익히고 사용하다보면 내부 구조나 어떤 순서로 동작하는지 알아야 할 때가 있습니다.
여기서는 Fiori launchpad나 HTML 페이지를 사용해서 app이 호출될 때 내부적으로 어떤순서로 동작하는지에 대한 설명을 하려고 합니다.
1. app을 시작합니다.
2. Component container는 app의 component(component.js)를 읽어드립니다.(여기에서 Component container는 ComponentContainer Control을 가리킵니다. iHTML페이지를 사용해서 호출할때는 ComponentContainer가 먼저가 아니라 ComponentSupport라는 control이 index.html의 세팅값을 읽어서 ComponentContainer를 호출합니다.)
3. Component는 Component.js 파일이 참조하고 있는 descriptor(manifest.json)을 읽어드립니다.
4. Component는 descriptor(기본 모델, resource모델(i18n))에 정의된 모델을 생성합니다.
5. Component.js의 init 함수를 실행합니다.
6. Component의 init 함수는 부모의 UIComponent의 init 함수를 호출합니다.(이 부분은 app개발자가 구현)
UIComponent.prototype.init.apply(this, arguments); ->Component.js에 선언하는 이부분 입니다.
7. UIComponent의 init 함수는 router와 descriptor에 정의된 root view를 생성합니다.
8. root view는 root control을 생성합니다.
9. Component의 init 함수가 router를 초기화합니다.(이 부분은 app개발자가 구현)
this.getRouter().initialize(); ->Component.js에 선언하는 이부분 입니다.
10. router는 app이 시작된 URL의 해시에 따라 필요한 view를 생성합니다.
11. View는 연결된 controller를 읽어드립니다.
12. Controller의 init 함수가 실행됩니다.
13. router는 root control에 view를 배치합니다. 이제 view와 해당 controller 에서 모델을 사용할 수 있습니다.
14. View의 binding이 평가됩니다.(binding된 path를 확인하는 정도로 이해하면 될 것 같습니다)
15. 모델로부터 데이터가 조회됩니다.(binding된 path에 따라 모델로부터 데이터를 불러옴)
16. View가 업데이트 됩니다.
17. 사용자가 app과 상호작용 할 수 있습니다.(app 사용 가능)
이 순서가 크게 중요하지 않을수도 있습니다. 하지만 개발을 하다보면 개발자가 생각하는대로 동작을 하지 않는 경우가 생깁니다.
오류나 버그가 있어서 그럴수도 있지만 이 순서를 몰라서 발생하는 경우도 생길 수 있습니다.
예를 들어 이런 경우 입니다.
순서상 12번에서 Model을 가져오려고 시도하는데 Model은 13번이 지나야 사용가능합니다.
이러한 경우가 있기 때문에 대략적이라도 실행되는 순서를 알아야 합니다.
위의 순서는 아래의 도식을 실행되는 순서대로 나열한 것입니다. 도식을 보시면서 순서를 익히시면 좀 더 오래갈 거 같네요.
참고
https://sapui5.hana.ondemand.com/#/topic/d2f58695fce3476f92fdfc07c9e8f7c6
'SAPUI5' 카테고리의 다른 글
xml view 표현식(Expression Binding)에서 &&(and 조건) 사용 (0) | 2021.02.10 |
---|---|
controller onInit 함수에서 namifest.json이나 component에 선언한 Model을 못 가져오는 경우 (0) | 2021.01.18 |
DatePicker 년이나 월만 선택(only 세팅값만 가지고) (0) | 2021.01.14 |
SelectBox나 ComboBox에 바인딩한 데이터가 전부 안나오는 경우 (0) | 2020.12.05 |
SAPUI5 EventBus 사용(View에서 다른 View Event 호출) (0) | 2020.11.17 |
- Total
- Today
- Yesterday
- ORT
- 사장님 대박
- FormData
- 소망세차장
- 오알티
- 개발자 세금계산서
- 소프트웨어
- window.open
- 3분 세차
- sap
- 이천세차장
- 소망손세차장
- 개발자
- 홈택스
- Reds and Blues
- 세금계산서
- sapui5
- 자바스크립트
- 소프트웨어 공급자
- fiori
- 거래처품목 등록
- 홈택스 리뉴얼
- 두번 세차
- ie
- hanadb
- javascript
- array
- model.cds
- 토킹클래스
- 피오리
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |