ExtJS를 이용해 개발하다보면 필연적으로 만나게 되는 자바스크립트 에러 !

파이어폭스에서는 부가기능으로 설치가능한 Firebug나 Web developer tool이 있어 별 문제가 없지만, IE에서는 정말 대책이 없다. ExtJS를 IE 기반에서 아래 소개하는 도구 없이 개발한다면 KTX를 이용하지 않고 걸어서 서울부산을 왕복하는 용자(용기있는 자) 되겠다.

1. MS 스크립트 디버거
MS에서 무료로 배포하는(OS 정품 사용자에게만) 도구로 아래에 소개하는 녀석과 함께 구동하면 매우 좋다.

2. Companion.js
Firebug에서 스크립트 디버깅 기능을 IE에서 사용할 수 있도록 해준다.

주의 : 1번, 2번 순서대로 설치할 것.

나중에 재설치할 경우의 귀차니즘으로 인해 관련된 파일을 첨부파일로 올려놓는다. 첨부파일 중 WGA....exe 파일은 정품사용자를 확인하는 플러그인이다.

저작권 신고로 인해 관련파일을 링크로 대체한다.

WGAPluginInstall.exe - http://www.downloadstwist.com/wgaplugininstall/
install-companionjs-v0.5.exe - http://www.my-debugbar.com/wiki/CompanionJS/HomePage
scd10en.exe - http://www.microsoft.com/downloads/details.aspx?familyid=2f465be0-94fd-4569-b3c4-dffdf19ccd99


출력해서 수시로 참조해야 할 듯 ....

xtype Class
------------- ------------------
box Ext.BoxComponent
button Ext.Button
buttongroup Ext.ButtonGroup
colorpalette Ext.ColorPalette
component Ext.Component
container Ext.Container
cycle Ext.CycleButton
dataview Ext.DataView
datepicker Ext.DatePicker
editor Ext.Editor
editorgrid Ext.grid.EditorGridPanel
flash Ext.FlashComponent
grid Ext.grid.GridPanel
listview Ext.ListView
panel Ext.Panel
progress Ext.ProgressBar
propertygrid Ext.grid.PropertyGrid
slider Ext.Slider
spacer Ext.Spacer
splitbutton Ext.SplitButton
tabpanel Ext.TabPanel
treepanel Ext.tree.TreePanel
viewport Ext.ViewPort
window Ext.Window

Toolbar components
---------------------------------------
paging Ext.PagingToolbar
toolbar Ext.Toolbar
tbbutton Ext.Toolbar.Button (deprecated; use button)
tbfill Ext.Toolbar.Fill
tbitem Ext.Toolbar.Item
tbseparator Ext.Toolbar.Separator
tbspacer Ext.Toolbar.Spacer
tbsplit Ext.Toolbar.SplitButton (deprecated; use splitbutton)
tbtext Ext.Toolbar.TextItem

Menu components
---------------------------------------
menu Ext.menu.Menu
colormenu Ext.menu.ColorMenu
datemenu Ext.menu.DateMenu
menubaseitem Ext.menu.BaseItem
menucheckitem Ext.menu.CheckItem
menuitem Ext.menu.Item
menuseparator Ext.menu.Separator
menutextitem Ext.menu.TextItem

Form components
---------------------------------------
form Ext.FormPanel
checkbox Ext.form.Checkbox
checkboxgroup Ext.form.CheckboxGroup
combo Ext.form.ComboBox
datefield Ext.form.DateField
displayfield Ext.form.DisplayField
field Ext.form.Field
fieldset Ext.form.FieldSet
hidden Ext.form.Hidden
htmleditor Ext.form.HtmlEditor
label Ext.form.Label
numberfield Ext.form.NumberField
radio Ext.form.Radio
radiogroup Ext.form.RadioGroup
textarea Ext.form.TextArea
textfield Ext.form.TextField
timefield Ext.form.TimeField
trigger Ext.form.TriggerField

Chart components
---------------------------------------
chart Ext.chart.Chart
barchart Ext.chart.BarChart
cartesianchart Ext.chart.CartesianChart
columnchart Ext.chart.ColumnChart
linechart Ext.chart.LineChart
piechart Ext.chart.PieChart

Store xtypes
---------------------------------------
arraystore Ext.data.ArrayStore
directstore Ext.data.DirectStore
jsonstore Ext.data.JsonStore
simplestore Ext.data.SimpleStore (deprecated; use arraystore)
store Ext.data.Store
xmlstore Ext.data.XmlStore
http://opensource.atlassian.com/confluence/oss/display/IBATIS/Environment+Specific+Information

Timeout
As of release 2.2.0, iBATIS includes a query timeout funcionality.
You can specify both a global timeout
  
<settings defaultStatementTimeout="2" />
or a per query timeout
  
<statement ... timeout="2">
When the timeout expires, it throws a SQL Exception "ORA-01013 : user requested cancel of currentoperation".
  
Tested with: Oracle 9i release 2 drivers.

결론 : 수행에 3초이상 걸리는 쿼리가 있다면 해당 쿼리 정의문에 timeout attribute를 주던가 기본 sqlmap-config.xml 파일의 defaultStatementTimeout 값을 늘려주어라.

GWT에서 ExtJS로 전환하는 와중에, 이건 뭐 전체적인 개념은 같더라도 코딩 방식이 너무 상이하다.
특히 클로저(Closure)[각주:1] 개념은 자바 프로그래머에게 정말 생소한데, 이거 모르면 ExtJS 소스 분석하기 너무 힘들다. (참고로 Java에서는 버전 8 에서나 클로저 개념이 도입될 가능성이 농후 하다)

관련 서적이 없나 구글링중에 찾은 관련 서적 !! 여차저차 구해서 지금 열심히 출력중이다. ㅋㅋ

http://www.packtpub.com/learning-ext-js/book
£22.49 (한화 약 4만원) -> 아마존 주문 시 항공배송료 포함하면 5만원 훌쩍 넘는다.

참고로, ExtJS in Action (http://www.manning.com/garcia/) 이 책은 2009년 12월경에 책으로 출간될 예정이며,
현재 $27.50 가격에 MEAP 에디션으로 5장까지 살펴볼 수 있다. (전체 14장)
현재 안정화가 진행중인 ExtJS 3.0 을 반영한다고 하니 이것도 구해봐야 할 것 같다.

  1. 함수의 인자로 오브젝트 외에 함수 그 자체(코드 블럭)를 넘긴다. 참고 : http://blog.morrisjohns.com/javascript_closures_for_dummies [본문으로]
파라메타 클래스 정보에 null 값이 설정되어 전달될 경우 오라클 9i 버전대 JDBC 드라이버에서 위 에러 발생

해결
1. com.ibatis.sqlmap.engine.mapping.parameter.ParameterMap 클래스의 setParameter() 메소드 수정

if (value == null) {
    value = "";
}

2. 오라클 JDBC 드라이버를 10 버전대 이상으로 업그레이드

+ Recent posts