본문 바로가기

2018/04/1010

자바스크립트 함수(Function)와 함수의 call(), apply(), bind() 함수 자바스크립트의 함수(Function)는 실제로는 전역객체의 함수 입니다. 전역객체는 웹브라우저일 경우 window이고, Node.js일 경우 global이 됩니다. 다음과 같이 일반적인 전역 함수를 정의하고 실행할 수 있습니다. function add(a, b) { return a + b; } console.log( add(3, 5) ); 결과) 8 이 add() 함수는 다음과 같이 호출할 수 있습니다. window.add(3, 5); 결과) 8 결과는 동일합니다. 실제로 두 함수는 동일한 함수 입니다. ※ 자바스크립트 함수는 그 자체로 객체입니다. 자바스크립트는 동적언어라 객체에 나중에 속성을 추가하는 것이 가능합니다. function bar() { console.log( "bar..." ); } ba.. 2018. 4. 10.
jQuery 플러그인 3 - 확장 기능 제공 플러그인에서 외부에서 접근 가능한 기능을 서브 함수로 제공하도록 합니다. 이렇게 공개된 기능으로 제공하게 되면 사용자가 쉽게 기능을 재정의해서 사용할 수 있습니다. jQuery 플러그인 테스트 1. 테스트용 DIV 입니다. 2. 테스트용 DIV 입니다. 3. 테스트용 DIV 입니다. 함수를 공개로 제공하는 것이 항상 좋은 것은 아닙니다. 필요에 따라 비공개 함수로 유지할 필요가 있는것도 있습니다. 예제에서와 같은 debug 함수는 비공개로 두는 것이 나을 것입니다. 플러그인 내에서 DOM에 추가할 요소를 만드는 경우 플러그인 사용자에게 이러한 요소에 액세스 할 수 있는 방법을 제공하는 것이 좋습니다. 플러그인 내에서 다음과 같이 추가적인 요소를 생성하게 되면 추가 요소의 클래스를 사용자가 수정하기 어렵게.. 2018. 4. 10.
Subversion Server 설치하기 소프트웨어 형상 관리 도구인 Subversion 서버를 설치해 보겠습니다. 요즘은 Git 이 대세이기는한데, 아직도 Subversion 이 많이 사용되고 있습니다. 현재 Subversion 은 아파치 프로젝트로 개발중입니다. http://subversion.apache.org/ 에서 관련 정보를 찾아 볼 수 있습니다. 소스 컴파일 해서 설치하는 것은 힘들므로 바이너리 버전을 배포하는 곳을 찾아서 설치를 합니다. 이번에 설치하게될 바이너리 배포판은 Collabnet 에서 AGPL v3.0 라이센스로 배포하고 있는 Collabnet Subversion Edge 입니다. 윈도우용과 리눅스용을 구할 수 있습니다. 윈도우용을 설치해 보겠습니다. 플랫폼이 Windows 2008, Windows 2012로 되어 있지.. 2018. 4. 10.
GIMP 2 사용법 - 선택 영역 따라그리기 이미지상에 단순한 사각형, 원 등을 그리기 위해서 붓과 펜 같은 툴을 사용하면 정확한 모양을 그리기 힘듭니다. 선택영역 따라 그리기 기능은 사각형, 원등의 선택 영역을 만들고 그 경계를 따라 그리는 기능으로 깔끔하게 사각형이나 원을 그릴 수 있습니다. 먼저 화면을 캡쳐해서 이미지를 만드는 것을 보겠습니다. 캡쳐 프로그램을 사용하지 않고, 윈도우 기본 캡쳐 기능을 사용해보겠습니다. "Prt Sc"(Print Screen) 버튼을 누르면 현재 화면 전체를 캡쳐합니다. Shift + Prt Sc 버튼을 누르면 현재 활성화되어 있는 창 만을 캡쳐 합니다. 캡쳐 후에 GIMP를 창을 띄우고 Ctrl + v 버튼을 누르면 캡쳐된 내용으로 이미지가 만들어 집니다. 참고로 GIMP에 이미지를 띄워둔 상태에서 Ctrl .. 2018. 4. 10.
PHP 클래스 - 오버라이드(Override) PHP 클래스에서 오버라이드는(Override) 부모 클래스의 메소드를 재정의 하는 것을 뜻합니다. 재정의시에는 메소드명과 인자가 동일해야 합니다. 접근제어자는 같거나 더 많이 허용하는쪽으로 지정할 수 있습니다. 메소드명이 같은데 인자가 다르면 에러가 발생합니다. 다른 객체 지향언어는 메소드 오버로딩(overloading) 이라고 해서 메소드의 이름은 같고, 인자가 다른 메소드를 정의하여 주어지는 인자에 따라 다른 메소드가 호출되도록 할 수 있지만, PHP 는 오버로딩은 지원하지 않습니다.(PHP에도 오버로딩이라는 기능이 있습니다. 하지만, 이 기능은 일반적인 객체 지향 언어에서의 오버로딩과는 다른 기능 입니다.) 이 오버라이딩 규칙은 생성자(__constructor)에도 동일하게 적용됩니다. class.. 2018. 4. 10.
자바스크립트 클로저(Javascript Closure) 사용법 자바스크립트에서 클로저라는 것을 잘 이해하기 위해서는 프로그래밍 언어에서 사용되는 몇가지 개념들을 먼저 알아두면 좋을 것 같습니다. 그것들은 일급 객체(first-class object)또는 일급 함수(first-class function), 변수 범위, 중첩 함수 와 같은 것들 입니다. 1. 일급 객체 또는 일급 함수 일급 객체(first-class object)에 대한 정의를 위키피디아에서 찾아 보았습니다. 원문 : https://en.wikipedia.org/wiki/First-class_citizen "프로그래밍 언어를 디자인 할때 주어진 프로그래밍언어에서 일급 시민(또는 일급 타입, 일급 객체, 일급 엔티티, 일급 값)은 다른 엔티티들이 일반적으로 이용 가능한 모든 연산을 지원하는 엔티티를 뜻합.. 2018. 4. 10.
리스크웨어(Riskware)가 무엇인가? 알약이 실시간 검사에서 php.exe 파일을 Misc.Riskware.Phptool로 잡았습니다. 위험도는 보통인것 같습니다. 이 프로그램은 테스트용 PHP 웹 사이트를 띄우기 위해서 Microsoft Webmatrix 를 사용하는데에 필요한 파일 입니다. 설치는 Microsoft Web Platform Installer를 통해서 설치가 된 것입니다. 이걸 치료를 하면 삭제가 되고, 검역소로 이동될 것으로 예상됩니다. 일단은 취소를 하고, 리스크웨어(Riskware)가 무엇인지 찾아 보았습니다. 다음 정의는 kaspersky 사이트에 나온 내용을 요약한 것입니다. "리스크웨어는 정상적인 프로그램이지만, 만약 악의적인 사용자에 의해 데이터를 삭제, 차단, 수정, 복사하거나 컴퓨터 또는 네트워크의 성능을 저.. 2018. 4. 10.
자바스크립트 배열(javascript array) 사용법 배열은 인덱스를 가지는 복수의 자료를 저장할 수 있는 자료구조 입니다. 데이터는 순차적으로 저장되며 중복이 가능합니다. 저장된 데이터에는 인덱스를 이용하여 접근이 가능합니다. 자바스크립트에서 배열의 사용법을 알아보겠습니다. 1. 배열 생성하기 배열을 생성하는데는 예전 방식인 new 명령을 사용하는 방법과 리터럴 표기법(literal notation) 을 사용하여 생성하는 방식이 있습니다. // 길이가 0인 예전 방식의 배열 생성 var myArray1 = new Array(); // 길이가 10인 예전 방식의 배열 생성 // 10개의 자리에는 아무것도 들어 있지 않습니다. var myArray2 = new Array(10); // 길이가 0인 literal notation 방식의 배열 생성 var myA.. 2018. 4. 10.
jQuery 플러그인 2 - 기본값 사용자 재정의 아래의 예제는 이전 글 "jQuery 플러그인 1 - 기본적인 플러그인 만들기" 에서 마지막에 보았던 플러그인에 기본값을 제공하는 예제 입니다. (function($) { $.fn.greenify = function( options ) { // 기본 옵션을 제공하는 가장 간단한 방법입니다. var settings = $.extend({ // 이것이 기본값들입니다. color: "#556b2f", backgroundColor: "white" }, options ); // 설정 변수를 기반으로 스타일을 지정합니다. return this.css({ color: settings.color, backgroundColor: settings.backgroundColor }); }; }(jQuery)); 이 플러그인을.. 2018. 4. 10.
원본과 같은 비율로 썸네일(Thumbnail) 이미지 만들기 이전에 작성한 글 "Java로 썸네일(Thumbnail) 이미지 만들기" 에서는 만들 썸네일 이미지의 비율에 맞게 원본 이미지를 최대한 Crop한 다음, 그 크롭된 이미지로 썸네일을 만들어 보았습니다. 이 경우 썸네일 리스트가 전체적으로 보기 좋게 구성됩니다. 단점으로는 원본 이미지 비율이 썸네일 비율과 많이 차이가 날 경우, 그리고 이미지 중앙이 중요한 부분이 아닐 경우에는 이미지가 중앙을 기준으로 잘리므로 원하는 의미를 나타내기 힘들 경우가 있습니다. 이번에 해볼 방법은 썸네일 이미지 내에 원본 이미지를 축소해서 넣은 것처럼 원본 비율을 유지하도록 만드는 것입니다. 이 방법을 사용하면 썸네일에서도 축소된 원본 전체를 볼 수 있다는 것이 장점이 되겠습니다. 단점은 원본 비율에 따라 좌/우 또는 상/하에.. 2018. 4. 10.