본문 바로가기

2018/04/0937

jQuery 플러그인 1 - 기본적인 플러그인 만들기 jQuery 플러그인은 jQuery의 프로토타입 객체를 확장하는 새로운 메소드를 추가하는 것입니다. 우리가 새로 추가한 기능은 jQuery의 모든 기능을 상속 받아 바로 사용할 수 있습니다. jQuery에 기능을 추가한다는 개념이지만, 우리가 사용할 때는 jQuery의 기능을 모두 사용할 수 있는 우리의 기능을 만든다고 생각하면 되겠습니다. 물론 jQuery 플러그인으로 기능을 만들지 않고 직접 기능을 수행하는 클래스를 만들고, 필요한 곳에 jQuery를 사용하도록 하는 방법도 있습니다. 어떤 방법으로 만들지는 자신의 선택이겠습니다. 자신이 편리한 방법으로 만들면 될 것 같습니다. 필요에 의해 jQuery플러그인을 만들어야 겠다고 생각을 했다면, 먼저 미리 만들어져 있는 것들중에 같은 기능을 하는 프로그.. 2018. 4. 9.
Eclipse scratchpad 사용하기(code snippets 즉시 실행) 자바 프로그래밍중에 간단한 코드를 테스트할 필요가 많이 생깁니다. 예전이라면 main 메소드를 가진 테스트용 클래스를 사용해서 테스트를 하였습니다. 요즘은 unit 테스트를 사용하는 것이 일반적이겠습니다만, 코드 조각(snippet)을 클래스나 메소드 선언 없이 바로 실행해 볼 수 있는 방법이 있습니다. 이클립스 메뉴에서 File -> New -> Other... 를 선택합니다. Select a wizard 창에서 Java -> Java Run/Debug -> Scrapbook Page 를 선택하고 Next 를 누릅니다. 여기서는 src/test/java 폴더를 parent 폴더로 선택하고, 파일명은 test 를 입력하고 Finish를 누릅니다. test.jpage 파일이 생성됩니다. 테스트 코드를 입력.. 2018. 4. 9.
오라클 ALTER 명령을 사용해서 테이블 변경하기 ALTER 명령어를 사용해서 오라클 테이블 구조를 변경하는 방법에 대해 알아봅니다. 1. 테스트용 테이블 생성 스크립트 입니다. CREATE TABLE TB_BOARD ( NUM NUMBER(20,0) NOT NULL, NAME VARCHAR2(20) NOT NULL, TITLE VARCHAR2(100) NOT NULL, CONTENT CLOB, D_CODE VARCHAR(20), READ_COUNT NUMBER(10,0) DEFAULT 0 NOT NULL, WRITE_DATE DATE NOT NULL ); CREATE TABLE TB_DEPT ( D_CODE VARCHAR2(20) NOT NULL, D_NAME VARCHAR2(255) NOT NULL ); -- TABLESPACE 사용 CREATE T.. 2018. 4. 9.
파이썬 문법 9 - 클래스(class) 만들기 파이썬은 객체지향 프로그래밍(Object Oriented Programming)을 할 수 있는 클래스 (class)를 지원합니다. 지금까지 봐왔던 데이터를 정의하고, 함수를 이용해서 데이터를 변형하여 원하는 결과를 얻는 형태의 프로그래밍 방식을 절차지향 프로그래밍 이라고 합니다. >>> data = [4,1,5,3,2] >>> data = sorted(data) >>> data [1, 2, 3, 4, 5] >>> 객체 지향 프로그래밍은 먼저 객체를 정의합니다. 객체는 멤버 변수(데이터)와 멤버 메소드(자신의 상태(데이터)를 변경하는 함수) 로 구성되어 집니다. 이러한 객체들이 서로 상호작용하여 객체의 상태가 바뀌어 원하는 결과를 얻는 프로그램 방식이 객체지향 프로그래밍 입니다. >>> data = [4,.. 2018. 4. 9.
IE 6~8 에서 CSS Pseudo class 및 Attribute Selector 지원하기 CSS3에서 지원되는 의사 Pseudo class 및 Attribute Selector들은 CSS의 효용성을 더욱 높여 줍니다. 동적으로 갯수가 변하는 의 행이나 열, 의 아이템 등의 첫 번째와 마지막에만 스타일을 달리하는 경우는 많이 사용되는 예가 되겠습니다. 이런 상황에서 :first-child, :last-child 등이 지원 되지 않으면 프로그램에서 루프를 돌면서 출력을 하다가 처음과 끝은 판단해서 다른 스타일을 붙여주는 형식으로 처리하게 됩니다. 이러면 루프내의 조건문으로 인해 코드가 보기 깔끔하지 못하게 됩니다. 다행히도 CSS3 에서는 이러한 특정위치의 요소를 선택할 수 있는방법이 제공됩니다. 하지만 오래된 브라우저를 지원해야 한다면 polyfill을 적용해야 할 것입니다. selectivi.. 2018. 4. 9.
PHP 클래스 상속(Inheritance) 이번에 알아볼 내용은 PHP 에서 클래스(class)를 사용할 때 객체간에 부모, 자식 관계를 가지도록 해주는 상속(inheritance)에 대해서 알아보겠습니다. 상속(inheritance)을 부모 - 자식 관계로 표현하는 것은 무리가 없어 보입니다. 자식이 부모로부터 뭔가를 물려 받는것이 상속이기 때문입니다. 중요한 것은 자식이 부모로부터 모든 것을 물려 받았기 때문에 자식은 원래 자신의 것도 있고, 물려 받은것도 있으므로 부모보다 더 많은 것을 가진다는 것입니다. 프로그래밍 언어적인 측면에서의 설명은 좀 다르게 할 수 있습니다. 어떤 객체를 만드는데 있어서 공통적인 부분을 뽑아서 부모로 하고, 개개의 객체에 특징적인 부분은 자신이 가지고 있도록 만드는 것이 상속 관계가 됩니다. 부모, 자식간에 재산.. 2018. 4. 9.
Windows 10 꺼둬도 좋을 기능들 Windows 10은 사용자의 편의를 위해서이겠지만 많은 정보를 Microsoft로 보내 공유하거나, 많은 개인정보가 제공되어지고, 백그라운드에서 실행되는 프로그램들도 많이 있습니다. 편안함은 조금 포기하고, 데이터 소모량, 배터리등을 조금 더 아끼고, 개인정보를 좀더 덜 제공하는 쪽으로 선택할 수 있습니다. 1. 윈도우즈 업데이트시 대역폭 공유를 사용 안함 Windows 10의 업데이트 프로그램은 Torrent 처럼 여러곳에서 다운로드 받고, 나의 컴퓨터도 다운로드 받은 업데이트 프로그램을 다른 사람에게 전송하도록 됩니다. 설정에서 "업데이트 및 복구" -> "Windosw 업데이트" 에서 "고급 옵션" 을 선택합니다. "고급 옵션" 화면에서 아래쪽으로 내려가면 "업데이트 제공 방법 선택" 을 클릭하고.. 2018. 4. 9.
반응형 웹에서의 자바스크립트를 반응형으로 사용하기 반응형 웹을 만들기 위해서 CSS3 미디어 쿼리를 이용하여 화면 크기에 따라 적용하는 스타일을 달리하는 방법은 "반응형 웹을 위한 미디어 쿼리 사용법(CSS media queries)" 에서 알아 보았었습니다. 화면 크기에 따라 스타일 시트를 변경하여 페이지내의 요소들의 사이즈를 늘리고 줄이거나, 위치를 변경하고, 보이거나 감추거나 하는 작업을 할 수 있습니다. 원하는 디자인이 이러한 것들 뿐만 아니라 제목의 길이를 줄이거나, 이미지를 교체하거나, 특정 요소를 클릭했을 때의 동작을 변경하거나 하는것이 필요하다면 CSS만으로는 구현하기가 힘듭니다. PC에서 보여줄 것과 휴대기기에서 보여줄것을 따로 만들고, 각각에 필요한 이벤트를 자바스크립트로 구현한 후 화면 크기에 따라 숨기거나 보여주는 CSS를 이용해서.. 2018. 4. 9.
반응형 웹을 위한 미디어 쿼리 사용법(CSS media queries) 미디어 쿼리는 화면(screen), 티비(tv), 프린터(print)와 같은 미디어 타입(media type)과 적어도 하나 이상의 표현식(expression)으로 구성됩니다. 표현식은 width, height, color와 같은 미디어 특성(media feature)들을 이용하여 그 특성들의 상태에 따라 다른 스타일 시트를 적용할 수 있습니다. 미디어 쿼리는 CSS3에 포함되어 있으며, 컨텐츠의 변경없이 주로 화면의 크기에 따라 스타일 시트를 달리하여 적절한 모양을 보여줄 수 있습니다. 미디어 쿼리는 두 가지 방법으로 사용할 수 있습니다. 첫 번째는 요소에 사용하여 특성이 조건에 맞을때 css 파일을 불러옵니다. media속성의 "screen and (max-width: 768px)"의 의미는 미디어 .. 2018. 4. 9.
자바스크립트 옵티마이저 - Closure Compiler 클라이언트 측 웹프로그래밍에서 자바스크립트의 비중이 점점 높아지고 있는 것 같습니다. 일반 홈페이지는 물론 업무용 웹 프로그램에서는 엄청난 양의 자바스크립트 코딩을 해야하는 경우가 많습니다. 이런 자바스크립트는 .js 파일로 만들어져 재사용 됩니다. 자바스크립트의 양이 많아지니까 페이지 로딩에 부담을 줄이기 위해서 자바스크립트를 압축하는 방법이 많이 나왔습니다. 실제 gzip으로 압축하여 전송하는 것은 클라이언트(웹 브라우저)가 지원한다면 서버에서 지원하는 기능을 사용하게 됩니다. 단순히 자바스크립트 압축이라고 하면 자바스크립트내의 주석을 삭제하고, 화이트 스페이스를 제거해서 파일 크기를 줄이는것을 말했습니다. 이번에 알아볼 Closure Compiler는 기계어로 컴파일 하는 것은 아니고, 파일 크기를.. 2018. 4. 9.
자동 포커스 이동 - jQuery Auto Tab 웹 프로그래밍에서 주민등록번호 입력등에서 처럼 앞의 여섯자리를 입력하면 포커스가 자동으로 뒷자리로 이동하는 기능을 많이 요구 합니다. 일반적인 홈페이지에는 이러한 요구사항이 거의 없지만 업무용화면에서 코드성 데이터를 많이 입력하는 경우 아직도 마우스를 사용하는 선택박스보다 키보드 입력을 선호하는 곳이 많습니다. 이런곳에서는 데이터의 길이가 일정한 경우가 많으므로 하나의 입력필드에 데이터 입력이 완료되면 다음 입력필드로 자동으로 포커스가 이동하기를 바랍니다. 이러한 기능을 쉽게 구현할 수 있도록 해주는 jquery.autotab.js 에 대해서 알아보겠습니다. 기능을 알아보기 전에 이 라이브러리를 사용하는데 있어 문제가 될 수 있는 세 가지 참고 사항에 대해 예기해 보겠습니다. 첫 번째는 웹 접근성과 관련.. 2018. 4. 9.
오라클 비밀번호 만료(Oracle password has expired) 오늘 데이터베이스에 접속을 하려고 하니 비밀번호가 만료되었다는 오류메세지가 뜹니다(ORA-28001: the password has expired). 데이터베이스는 Oracle 11g r2 express editon 입니다. 11g r2 가 나왔을 때 사용자의 기본 프로필이 180일 지나면 비밀번호가 만료 되도록 변경 되었습니다. 예전에 이것 때문에 여러곳에서 갑자기 웹서비스가 안된다고 연락이 왔었던 기억이 납니다. 그 때는 보안 때문에 문제가 지금처럼 많이 발생하던 시절이 아니라, 한번 정한 비밀번호를 주기적인 변경없이 계속 사용했었습니다. 요즘은 대부분 3개월 주기로 비밀번호를 변경하는걸로 알고 있습니다. 비밀번호가 만료되면 비밀번호를 변경해주는게 맞겠습니다. 실제로 만료 전부터 로그인하면 만료기간에.. 2018. 4. 9.
GIMP 2 사용법 - Rotate, Crop, Resize 앞에서 무료 사진 편집 프로그램인 gimp 2 를 설치해 보았습니다. 여기서는 간단한 사용법을 알아보도록 하겠습니다. 이번에 알아볼 기능을 이미지를 Rotate(회전)하는 기능과, 이미지의 일부분을 잘라내는 Crop, 이미지의 크기를 변경하는 Resize 기능 입니다. 블로그에 올린 캡쳐 이미지를 만들때도 캡쳐해서 필요한 부분만 Crop 하고, 리사이즈 하는 작업을 주로하게 되는 것 같습니다. gimp 2의 설치는 이전글 "무료 사진 편집프로그램 - gimp 설치하기" 를 참조해 주세요. 1. 파일열기먼저 수정할 파일을 열어야 하겠습니다. 메뉴에서 "파일 -> 열기" 를 선택해서 파일 선택창이 뜨면 수정할 파일을 선택하는 방법이 있습니다. 하지만 주로 사용하는 것은 탐색기에서 gimp 창으로 드래그 앤 .. 2018. 4. 9.
jsoup : 자바 HTML 파서(Java HTML Parser) CKEditor, Smart Editor 같은 HTML 에디터로 글을 작성하는 사이트의 경우 작성된 글에서 html 태그(tag)를 제거한 순수한 텍스트만을 추출하거나, img 태그만을 추출하여 썸네일(Thumbnail)을 만들거나 하는 일이 종종 있습니다. 이러한 기능을 정규식(Regular Expression)을 사용하여 직접 만들어 쓰기도 하는데, 그 기능에는 제한이 있을 수밖에 없습니다. 이번에 소개하는 jsoup은 자바(Java)로 만들어진 HTML 파서(Parser) 입니다. jsoup은 자바 언어로 HTML을 다루는 쉽고, 강력한 기능을 제공합니다. jsoup로 다음과 같은 작업을 할 수 있습니다. * URL, 파일, 문자열을 소스로 하여 HTML을 파싱할 수 있습니다. * DOM 구조를 추.. 2018. 4. 9.
C++ 문법 공부 - 데이터 타입(data type) 프로그래밍은 데이터를 조작하여 원하는 결과를 얻는 일련의 작업을 프로그래밍 언어로 기술하는 것이라고 할 수 있습니다. 기계를 조작하는 프로그램도 내부적으로는 특정 영역에 특정 데이터를 입력하고, 어떠한 이벤트(인터럽트)를 발생시키면, 기계가 움직이는 형태 입니다. 즉, 기본은 데이터를 다루는 것입니다. 이번에는 C++에서 데이터를 다루는 방법에 대해서 알아보겠습니다. 프로그램에서 데이터를 다루기 위해서는 데이터를 어디에 저장해두고, 그 데이터에 특정 연산을 할 수 있어야 합니다. 데이터를 저장하는곳이 변수(variable)가 되겠습니다. 그런데 C++에서 변수는 한 종류만 있는것이 아니라 저장할 수 있는 데이터의 크기, 형태, 정밀도 등에 따라 다양한 타입이 있습니다. 이것을 데이터 타입 이라고 합니다... 2018. 4. 9.