본문 바로가기

Daniel's Blog

[Javascript] 클로저(closure) 란? 기존 객체지향이나 절차적 프로그래밍을 해왔던 페이지 개발자라면 처음에는 이 개념이 어색할 것이다.반면, 함수현 언어로 프로그래밍을 해 왔던 사람에게는 익숙한 개념이다. 간단히 설명하면 클로저란? 함수에 필요한 환경과 지역변수가 결함된 Function 인스턴스이다. - 클로저에서는 함수가 선언된 범위를 벗어난 이후에도 이들 변수를 참조할 수 있다. 이 예제에서 의문을 가질 수 있는 점은 - 준비 핸들러의 실행이 끝나고 페이지를 로드하고나면 콜백이 3초마다 호출되는데, 이 때 local 값은 콜백 함수가 실행되는 동안 정의되지 않았다고 짐작할 것이다. - local이 선언된 블록은 준비 핸들러가 끝나면서 범위를 벗어났다고 생각하게 된다. - 함수의 선언으로 생성된 클로저는 local을 포함한다. 그러므로 함.. 더보기
[Javascript] 콜백 함수란(CALLBACK Function)? 콜백함수 - 디자인 패턴 중 하나인 옵저버 패턴에서 나온 개념 - 이벤트가 발생시 함수를 통해 전달하는 것 - 정해진 이벤트 발생시 함수 동작 Definition - method 실행시에 자동으로 후출되는 함수 - 함수 구현을 위한 로직(Control)과 결과를 표현하는 로직(View)을 분리. (MVC 패턴) Example // 콜백함수 정의function callbackTest(다른변수) { alert(다른변수); } // 콜백함수를 호출할 함수 정의 function callbackCall(변수, callback) { if (typeof callback == "function") { callback(); } } // 콜백함수 호출 callbackCall('변수', callbackTest('다른변수')); 더보기
[ANDROID] 키보드 숨기기 개발을 하다 보면 안드로이드 EditText의 키보드가 조절이 필요한때가 있다. 보통은 AndroidManifest 파일에서android:windowSoftInputMode="stateVisible|adjustResize|adjustPan"중에 하나로 조정이 가능하지만 이 옵션 만으로도 조절이 안되는 때가 있다. 그때는 밑에 옵션을쓰면 EditText의 키보드를 조절할 수 있다. /** 키보드 보이기 */InputMethodManager imm =(InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT); /** 키보드.. 더보기
[ANDROID] 안드로이드 BUNDLE Bundle Android에서 데이터 전송시 필수적으로 사용되는 Bundle 클래스에 대해서 알아보고자 합니다. Bundled은 문자열로 된 키와 여러가지의 타입의 값을 저장 하는 일종의 Map 클래스이다.Android에서 Activity간에 데이터를 주고 받을 때 Bundle 클래스를 사용하여 여러 가지의 데이터를 전송한다.기본타입인 int, double, long, String 부터 FloatArray, StringArrayList Serializable, Parcelable 구현한 객체를 전송한다.http://developer.android.com/reference/android/os/Bundle.html링크를 통해 API를 확인해보면 다양한 put,get 메소드가 존재하는지 확인 가능하다.간단한 .. 더보기
[안드로이드] 소켓 프로그래밍 이제 자바 소스 코드를 입력하면 됩니다. 서버 소켓을 생성하고 클라이언트 소켓 요청이 오면 accept()메서드를 통해리턴되는 소켓 객체로 클라이언트 소켓의 연결 정보를 확인 할수 있습니다.ObjectInputStream을 사용해서 소켓의 정보를 받아오고 ObjectOutputStream을 통해소켓을 담아서 클라이언트로 보내고 있습니다.서버를 먼저 컴파일 해 놓아야 합니다.다음은 클라이언트 소스입니다.원래 하시던대로 안드로이드 프로젝트 생성하시면 됩니다. 서버의 ip주소를 알아야 하는데 cmd창(commend)을 여시고 ipconfig를 치시면서버의 ip주소를 확인 하실수 있습니다.자신의 아이피 주소를 host에 입력하시고 실행해 주시기 바랍니다.이제 매니페스트에 등록만 해주면 됩니다. 서버를 먼저 실행.. 더보기
[안드로이드] 한글키보드 패치 안드로이드 개발환경의 키보드 기본값은 영어입력으로 되어있다.한글키보드로 바꿔주려면 apk파일을 설치해야 한다. *필자는 adb가 있는 경로까지 이동하는 것이 힘들어서 환경변수 설정을 통해서 설치를 하였습니다. 내컴퓨터(우클릭)->속성->고급->환경변수 설정-> 이름 : Path 경로 : C:\Program Files\Android\android-sdk\platform-tools 필자와 adb가 들어있는 파일의 경로가 다를 수 있으니 확인후 설치하시기 바랍니다~ 1. AVD를 실행시킨다. (반드시 실행중 설치 하여야 함, AVD를 새로 만들었을시 다시 설치)2. 다운받은 파일을 C:\ 에 넣어둔다. *편의상*3. 위의 이미지와 같은 명령어를 입력한다.4. 설치가 완료되었다면 AVD의 settings 메뉴에.. 더보기
[Java] java.lang패키지와 String 클래스 Object 클래스와 마찬가지로 java.lang.패키지에 포함되어있기 때문에 import문 없이도 사용할 수 있도록 되어 있다. 2. String 클래스문자열을 저장하기 위해서 문자형 배열 변수(char[] value)를 인스턴스 변수로 정의해 놓고, 인스턴스 생성 시 생성자의 매개변수로 입력받는 문자열은 이 인스턴변수에 문자형 배열로 저장되는 것이다. 그리고 String 클래스는 다양한 형태의 생성자를 제공해준다. 문자열 상수를 생성자에 전달해서 String 객체를 생성한 예이다. String str01 = new String("FUCK_JAVA"); 문자형 배열로 저장되는 것이라 다음과 같이 char[]를 매개 변수로 갖는 생성자를 이용할 수 있다. char []c = {'F','C','K','_'.. 더보기
[ARM] 입력받은 숫자의 합을 2진수로 출력하기 .text _start: .global _start mov r0, #0 mov r2, #1 mov r7, #3 ldr r1, #3 mov r6, #0 mov r8, #128 mov r9, #7 swi 0 ldrb r5, [r1] LOOP: CMP r5, #10 BEQ cal CMP r5, #49 BLT LOOP2 CMP r5, #56 BGT LOOP2 SUB r5, r5, #48 ADD r6, r6, r5 LOOP2: mov r0, #0 mov r2, #1 mov r7, #3 ldr r1, =buf swi 0 ldrb r5, [r1] B LOOP cal: AND r5, r6, r8 lsr r5, r9 lsr r8, #1 mov r0, #1 mov r2, #1 mov r7, #4 ADD r5, r5, #4.. 더보기
[ARM] 입력받은 문자열중 숫자만 출력하기 .text_start: .global _startmov r0, #0ldr r1, =bufmov r2, #1mov r7, #3swi 0ldrb r5, [r1]LOOP:CMP r5, #10BEQ exitCMP r5, #49BLT LOOP2CMP r5, #57BGT LOOP2mov r0, #1mov r2. #1mov r7, #4swi 0LOOP2:mov r0, #0ldr r1, =bufmov r2, #1mov r7, #3swi 0ldrb r5, [r1]B LOOPexit:mov r0, #0mov r7, #1swi 0.data.alignbuf: .skip 4.end 더보기
[ARM] Hello World 출력하기 .text _start: .global _start @ sys_write ( fd, pstr, len ) @ r7=4 r0 r1 r2 mov r0, #1 @ fd 더보기