본문 바로가기

전체 글91

ExtJS에서 scroll 이벤트 잡기 Scroll을 잡아줘! 대부분의 개발에 있어서 Scroll 이벤트를 사용하는 경우는 드문데, 이번에 필요하게 되서 사용하고 남겨본다. Ext 컴포넌트의 이벤트 목록에는 Scroll 관련해서 이벤트가 없기 때문에 DOM element의 scroll을 이용한다. Grid 스크롤 이벤트를 잡는 예제 grid.mon(grid.getView().getEl(), { scope: grid, scroll: function () { console.log('scrolling'); } }); 2018. 8. 7.
ExtJS 객체지향 시스템 ExtJS 객체 시스템 클래스 시스템 우리가 클래스하면 가장 익숙한 단어는 '상속'이다. ExtJS에서는 상속을 간단히 사용할 수 있게 제공한다. Ext.define('HeadlessGrid', { extend: 'Ext.grid.Panel', hideHeaders: true,});위의 클래스는 기본 grid 패널을 상속받아 만든 제목이 없는 grid 패널이다. 네임 스페이스 '라이브러리'를 제작하는 방법도 간단하다. 바로 '네임스페이스'를 이용하면 가능하다. 위의 예제 코드를 응용해보자. Ext.define('Ext.Juice.HeadlessGrid', { extend: 'Ext.grid.Panel', hideHeaders: true,});위의 코드는 이제 Ext.Juice 네임스페이스에 포함된다. 클.. 2018. 8. 4.
panel collapse를 화살표 클릭 시에만 동작 하도록! titleCollapse가 동작을 안하네? ExtJS에서 panel의 collapsible이 true로 설정되면 해당 panel은 확장/숨김이 가능해진다.그런데 말입니다.여기에서 header 또는 타이틀을 클릭 시에도 확장/숨김 기능이 동작하는데, 화살표만 클릭 해서 동작하게 하고 싶어서 관련 문서를 찾아봅니다. 찾았다, titleCollapse 딱 속성 이름만 봐도 관련이 있어보입니다. titleCollapse를 false로 수정하고! 테스트! 윙? 잘되는데...? 왜 안막히는거지... 혹시 수정된 소스코드가 반영이 안되었나? 찾아봅니다. 반영 됐습니다.그럼 무엇이 문제일까? 문서를 자세히 읽어 봅니다. When a panel is used in a Ext.layout.container.Border, .. 2018. 8. 3.
자바스크립트 핵심 가이드 자바스크립트의 고전, Classic "자바스크립트 공부"라는 키워드로 검색하면 항상 등장하는 책 출간된지는 오래되서 지금보면 뭐 이런 당연한 얘기를 하고 있어? 라는 생각을 할 수 있다. 거기다가 요즘에는 lint가 대부분의 나쁜점들을 막아주니 하지만 지금 lint가 왜 그런 스타일이 나쁜점이라 하는지에 대한 내용이 책에 자세히 설명되어 있고, 현대 자바스크립트 코딩 스타일의 핵심과 JSLint라는 아주 좋은 검사기까지 만들어준 대단하신 저자 더글라스 크락포드(JSON 형식 창안)를 생각해서라도 읽어봐야 할 책 처음부터 보기에는 다소 어려울 수 있는 책이기 때문에 자바스크립트를 어느정도 공부하고 보기를 추천한다. 이 책을 읽는다면 함수와 부록은 무조건 정독 사실 부록이 이 책의 핵심같은 느낌 부록은 꼭 .. 2018. 8. 1.
비트연산자? 써야하나? 비트연산자 금지! 레거시 C, C++ 프로젝트를 보면 비트 플래그를 사용해서 연산하는 경우를 많이 볼 수 있다. 이런 레거시 프로젝트를 웹 어플리케이션으로 포팅하는 과정에서 그대로 비트 연산을 자바스크립트 측에서 구현하는 경우가 있는데, 자바스크립트는 기본적으로 비트 연산 속도가 느리다. 자바스크립트에서는 비트 연산 시 부동 소수점 숫자형을 정수형으로 변환 후 비트연산을 하고 다시 원래타입으로 되돌린다. 또한 비트연산은 하드웨어에 친근하고 속도가 빠른게 장점인데 자바스크립트에서의 비트연산은 하드웨어와 아무 상관이 없다. 그러므로 레거시 프로젝트를 포팅 시에는 이러한 연산은 서버 측에서 해야한다. 제발 2018. 8. 1.
switch문 Fall Through switch Fall Through 금지! switch Fall Through란? switch 문에서 case 내에서 의도적으로 break문을 생략하여 다음 case로 이동 시키는 방법 위의 방식은 의도적으로 사용할 때도 있다. 그럴 경우에는 무조건 주석을 달아줘야 한다. 하지만 실수로 break문을 생략한 경우를 직접 겪어보니 에러가 어디에서 발생하는지 정말 찾기 힘들었다. 그러므로, 사용하지 말자 제발 2018. 8. 1.