qooxdoo V6.x -> V7.x 버전 업 이슈 - 2. UI가 완성된 후 작업하기

시작.. qooxdoo는 자바스크립트 하나로 UI도 그리고 데이터도 처리하는 프레임워크입니다. 해당 프레임워크를 사용하면서 한 번씩, “UI가 다 완성되고 난 후 처리되어야 하는 작업은 어떻게 처리하지?“에 대한 고민이 있었습니다. 이벤트로 처리 가능한 상황들은 문제가 없지만, 그렇지 못한 상황들도 존재하고 있었거든요. 이 이슈는 그런 상황에서 사용가능한 qx.util.DeferredCall() 에 관한 이야기입니다. 문제점 기존에는 테이블 UI가 그려질 때 특정 컬럼에 필터(원하는 조건의 데이터만 보여줌)가 적용되어 있으면, 필터가 적용된 것을 표시하기 위해 색상을 변경하는 작업이 있었습니다. 하지만 버전이 업데이트되고 나서부터, 처음 테이블 UI가 그려지는 경우에는 해당 기능이 동작하지 않는 이슈가 발생했습니다. 한 번 그려진 이후에는 필터를 걸면 색상 표시가 잘 됐고요. 원인 우선 테이블 헤더 셀은 table - pane scroller - header - headerCell의 구조로 이루어져 있습니다. 테이블 컬럼 필터 정보를 표시하기 위해 header cell에 폰트 색상을 적용하고 있습니다. 디버깅을 해보니, 처음에 테이블을 그리고 폰트 색상을 변경하였으나 이후에 pane의 modelChanged 이벤트로 header가 새로 그려지면서 header cell 폰트 정보가 초기화되고 있었습니다. pane의 modelChanged 이벤트가 왜 발생했는지는 알아보지를 알았네요. 그냥 프레임워크의 변경이겠거니 생각만 하고 있었습니다. 추후에 찾아서 추가적으로 포스팅하겠습니다. 무튼 이것을 해결하기 위해, 클래스의 작업이 모두 끝난 이후에 수행할 작업을 스케줄링할 수 있는 qx.util.DeferredCall() 메소드를 사용했습니다. V7.6에 새롭게 추가된 메소드가 아니라 예전부터 존재하던 메소드였는데, 이제 알았다니.. 아주 개탄스럽네요. header cell에 폰트를 적용하는 로직을 qx.util.DeferredCall()에 추가함으로써 문제를 해결했습니다. 느낀 점 디버깅을 잘하자? 입니다. 이상한 문제가 발생하는 경우, 디버깅도 중구난방으로 하게 되는 경우가 있는데, 컴퓨터는 역시나 거짓말을 하지 않기 때문에 차근차근 따라가다보면 풀리는 문제였습니다. 그리고 매뉴얼을 잘 읽자 입니다. 어떤 메소드들을 제공하는지 유심히 살펴볼 필요를 느꼈습니다.

10월 1, 2023 · Jaejin Jang

qooxdoo V6.x -> V7.x 버전 업 이슈 - 1. deprecated defer() method

시작.. 두 달 정도 전에 qooxdoo 버전을 6에서 7로 올렸습니다. npm 버전만 올리면 되는 거라 큰 어려움은 없었지만, 업데이트 이후에 이상한 문제 2가지가 발생했습니다. 오늘은 그중에 하나를 포스팅하려고 합니다. 문제점 프레임워크에서 제공하는 다른 클래스의 public 메소드를 호출했는데, 개발자가 추가한 protected 메소드가 호출되는 현상이 발생했습니다. 동일한 함수명을 사용하는 클래스들이 몇 개 있어서 “업데이트 이후에 오버라이딩하는 과정에 문제가 생겼구나"라고 판단하고 디버깅을 시작했습니다. 원인 원인은 qooxdoo에서 자주 사용되는 Composite 클래스에서 defer 메소드가 사라졌기 때문이었습니다. 기존의 qx.ui.container.Composite는 defer라는 메소드를 이용해 부모 클래스인 qx.ui.core.Widget의 protected 함수를 public으로 설정해 주는 코드가 존재했었으나 삭제되면서 문제가 발생했습니다. 문제가 되는 대상 메소드 중에서 겹치는 메소드 _add()였고, 해당 메소드를 _addItem()으로 바꿔 문제를 해결했습니다. 느낀 점 음.. 릴리즈 노트를 잘 읽자? 입니다. 사실 릴리즈 노트에 나와있는데, 대~충 읽은 저의 탓이더라고요^^ qooxdoo 라는 프레임워크를 사용하시는 분들은 극소수겠지만, 혹시나 도움이 될까 싶어서 올립니다.

9월 30, 2023 · Jaejin Jang

카발란 솔리스트 비노(VINHO) 타오위안공항 면세점 김해공항 면세점 비교 (2023년 6월)

타오위안공항 면세점 카발란 솔리스트 비노: NT 4,400 (한화 18만 7천원) 김해공항 면세점 카발란 솔리스트 비노: $230 (한화 30만 1천원) 업무 출장을 마치고 돌아오면서, 출장동안 통역을 맡아주신 분의 추천으로 면세점에서 카발란 솔리스트를 구매했습니다. ...

6월 4, 2023 · Jaejin Jang

김해공항 국제선 1시간 전에 도착해도 괜찮나요?

업무 출장으로 5월 30 ~ 6월 3일 대만을 다녀왔습니다. 5월 30일에 김해공항에서 타오위안공항으로 출발하는 낮 12:00 항공권을 끊었습니다. 진주에서 김해공항으로 가는 공항버스는 없고, 시외버스가 존재합니다. 시간표를 보면 아래와 같이 하루에 5대를 운행하고 소요시간은 1시간 20분입니다. (예매사이트 버스타고 참고) ...

6월 4, 2023 · Jaejin Jang

Hugo 구글 애널리틱스 GA4 설정하기 (Google analytics)

7월 1일부터 유니버셜 애널리틱스(UA-xxx)가 더 이상 데이터를 수집하지 않습니다. 아래와 같은 경고문을 한 1년간 보기만 하다가 일찍 깬 오늘(어제 축구를 너무 빡세게 했나..) 구글 애널리틱스 4로 변경했습니다. ...

5월 10, 2023 · Jaejin Jang

나의 노트북 변경기 (feat. 레노버 요가 슬림7 카본 13)

이전에 노트북을 바꿨다고 글을 썼는데 만족하지 못해서 다시 팔고 기존의 노트북을 계속사용하다가 최근에 정말로 바꿨습니다. 이전 노트북 변경 비하인드 스토리 우선 이전 노트북 변경의 비하인드 스토리를 말씀드리면, 새로 구매했던 HP 드래곤플라이 G3를 사용하지 않게 된 가장 큰 이유는 우분투에서 모바일네트워크 지원을 위한 랜카드를 잡지 못했기 때문이에요. ...

5월 7, 2023 · Jaejin Jang

생활기록부

휴가라 그냥 누워있을까 하다가 궁금하여 한번 뽑아본 나의 생활기록부 초등학교 시절 나의 장래희망이 프로그래머였다는 것에 놀랐다(기억도 안남). 그리고 머릿속으로 내가 바라던 나의 모습들이 적혀있어 뿌듯했다. ...

1월 9, 2023 · Jaejin Jang

오랜만에 데스크탑!

집에 꾸밀게 많지만 가장 먼저 한 것은 컴퓨터 환경 세팅입니다. 그동안에는 노트북만 사용하면서 자리 잡으면 데스크톱을 써야지 생각했는데, 이 정도 환경이면 이제는 들여도 될 거 같아 중고로 하나 장만했습니다 ㅎㅎ ...

12월 14, 2022 · Jaejin Jang

이사 및 토익

이사를 했습니다. 이렇게 빨리 집을 옮길 줄 몰랐는데 대기번호가 생각보다 빨리 줄어들어서 생각한 것보다 일찍 들어가게 되었네요. 집이 넓어서 좋긴 한데.. 불편해요..ㅋㅋ 좋은 기회라 놓치기는 아까워서 들어오긴 했는데.. 솔직히 지금의 저한테는 과합니다.. 그래도 적응해서 잘 살아봐야죠. 필요한 물건들 하나씩 들여놓으면서 애착을 가져봐야죠 ㅎㅎ ...

11월 27, 2022 · Jaejin Jang

노트북 변경

한 3년 만에 새로운 노트북을 주문했습니다. 지금 쓰고 있는 노트북도 충분히 좋지만, 요즘에 노트북으로 개발을 하다 보니 더 가볍고 셀룰러 네트워크(LTE, 5G)가 되는 노트북이 필요해서 구매했어요. 드래곤플라이 G3라는 모델인데 HP 노트북은 처음 사용해보는 거라 어떨지 기대가 되네요 ㅎㅎ ...

8월 2, 2022 · Jaejin Jang