시작..

  • 두 달 정도 전에 qooxdoo 버전을 6에서 7로 올렸습니다.
  • npm 버전만 올리면 되는 거라 큰 어려움은 없었지만, 업데이트 이후에 이상한 문제 2가지가 발생했습니다.
  • 오늘은 그중에 하나를 포스팅하려고 합니다.

문제점

  • 프레임워크에서 제공하는 다른 클래스의 public 메소드를 호출했는데, 개발자가 추가한 protected 메소드가 호출되는 현상이 발생했습니다.
  • 동일한 함수명을 사용하는 클래스들이 몇 개 있어서 “업데이트 이후에 오버라이딩하는 과정에 문제가 생겼구나"라고 판단하고 디버깅을 시작했습니다.

원인

  • 원인은 qooxdoo에서 자주 사용되는 Composite 클래스에서 defer 메소드가 사라졌기 때문이었습니다.
  • 기존의 qx.ui.container.Composite는 defer라는 메소드를 이용해 부모 클래스인 qx.ui.core.Widget의 protected 함수를 public으로 설정해 주는 코드가 존재했었으나 삭제되면서 문제가 발생했습니다.
  • 문제가 되는 대상 메소드 중에서 겹치는 메소드 _add()였고, 해당 메소드를 _addItem()으로 바꿔 문제를 해결했습니다.

느낀 점

  • 음.. 릴리즈 노트를 잘 읽자? 입니다.
  • 사실 릴리즈 노트에 나와있는데, 대~충 읽은 저의 탓이더라고요^^
  • qooxdoo 라는 프레임워크를 사용하시는 분들은 극소수겠지만, 혹시나 도움이 될까 싶어서 올립니다.