본문 바로가기

나는개발자다!!

자바스크립트썰 blur blur란 흐림이라는 뜻을 가진 영어 단어로 자바스크립트에서는 엘리멘트가 포커스를 잃어버렸을 때 발생하는 이벤트이다. 한마디로 선택되었다가 떠나면 그 시점에서 발생하는 이벤트로 focusout이라는 이벤트와 동일한데 둘의 차이점은 용어도 어려운 버블링이 발생하는가의 차이를 가진다. (버블링의 개념을 더 알고 싶으신 분들은 구글링을 해보시면 좋습니다.) Enter your name: When you leave the input field, a function is triggered which transforms the input text to upper case. 입력 필드를 떠날 때 입력 텍스트를 대문자로 변환하는 함수가 트리거됩니다.입력 필드를 떠날 때 입력 텍스트를 대문자로 변환하는 함수가 트리거됩니.. 더보기
오라클썰 접속 에러 너는 누구냐? 01034, 27101, 00119, 00132 현재의 상황은 이렇다. 무엇인가가 안 맞아서토드에서 접속하면 ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist 뿜어내고 있다. 검색을 해 보면qlplus / as sysdba 로그인을 하신 뒤에SQL> startup을 하시면 에러가 해결 됩니다. 하면 해결 된다는데 내 경우에는 안 됐다.아무런 효과가 없었다...... 물론 tnsnames.ora와 listener.ora도 얼추 다 맞아있는 상태였다.... c:\> tnsping orcl을 날려봐도 잘 나오고 있고 c:\> lsnrctl status명령어를 날려서 listener의 상태를 봐도 잘 나오고 있었다.(여기 보면 listener log 경로가 나온다~) 여.. 더보기
안드로이드썰 아키텍처 아키텍처란 프로세스와 전체적인 구조나 논리적 요소들로 쉽게 말해서 전체적인 그림이라고 보면 편하다. 다음은 안드로이드의 아키텍처이다. 안드로이드 아키텍처는 다음처럼 커널 -> 라이브러리 -> 어플리케이션 프레임워크 -> 어플리케이션의 순으로 되어있다.각가의 설명은 아래쪽에서 간략하게 이어나가겠습니다. 리눅스 커널 - 안드로이드 플랫폼의 기반 - 스레딩 및 하위 수준의 메모리 관리와 같은 기본 기능에 Linux 커널을 사용함 - Linux 커널을 사용하면 Android가 주요 보안 기능을 활용하고 제조업체가 널리 알려진 커널용 하드웨어 드라이버를 개발 할 수 있음 - 일반적으로 안드로이드 개발자가 다룰 영역은 아님 라이브러리 - 자바 라이브러리의 대부분 기능을 제공함. - C/C++로 구성된 라이브러리 -.. 더보기
안드로이드썰 HAXM 에러 안드로이드 개발 환경을 셋팅하고 에뮬레이터를 실행하려고 할 때 HAXM관련 에러를 마주할 때가 있다.해당 에러는 인텔 CPU에서 발생하는 문제로 에뮬레이터가 가상화 기술을 이용하여 실행되는 방식이기 때문에 가상화 기술을 사용하려고 할 때 해당 파일이 설치 되어 있지 않은 경우에 발생 할 수 있다. 더보기
오라클썰 시퀀스(Sequence) Sequence: 시퀀스 - 영화, 텔레비전에서 몇개의 장면이 모여 하나의 삽화를 이룬것. 연속된 하나의 장면 설정 (촬영술) - 학습 간원의 배열 - 수열, 수 또는 다른 대상의 순서있는 나열 - 카드 놀이에서 연속된 3매 이상의 같은 종류의 카드 위의 내용처럼 시퀀스란 연속된 수의 나열을 뜻하는 용어로 1, 2, 3, 4, 5 이런식으로 순차적으로 증가되는 값을 뜻한다.Table의 구조 설계 시 보통PK 값으로 이용하기 위하여 많이 사용한다.(pk란 primary key의 약자로 다른 썰에서 기술하겠습니다. 쉽게 말하면 주민등록번호처럼 유일성을 보장하는 값이다.) 오라클에서도 시퀀스를 지원해줍니다. 오라클에서 시퀀스를 생성하는 구문은 다음과 같습니다. CREATE SEQUENCE sequence_na.. 더보기
오라클(Oracle)썰 function Function은 리턴을 무조건 해줘야하고 IN 변수만 받을 수 있다.그리고 select 절에서 사용이 가능하다.Function과 비슷한 녀석으로는 Procedure는 로직을 실행만 시키는 녀석이다. 사용방법은 다음과 같다.CREATE OR REPLACE FUNCTION 함수이름(변수명 IN 변수타입)RETURN 반환타입IS 받을 값 변수명 테이블.칼럼명%type; BEGIN SELECT 칼럼 INTO 받을 값 변수명 FROM 테이블 RETURN 받을 값 변수명;END;/ 위의 사용방법을 기초로 작성해 본 예제이다.CREATE OR REPLACE FUNCTION FC_sel_menuNo(v_day IN varchar2)RETURN NUMBERIS v_menu_no MENUEXPLAN.MENU_NO%typ.. 더보기
아이바티스(iBatis)를 사용하자 썰 아이바티스는 자바쪽과 디비쪽을 연결해주는 프레임워크(그냥 맵퍼라고 할수도 있죠)중 하나이다.스프링이나 스트럿츠나 상관이 없고DAO 단에서 SQL 불러올적에 Map을 같이 넘기도록 하자. Map returnMap = new HashMap(); returnMap.put("startIndex", parm[0]); returnMap.put("endIndex", parm[1]); dao는 어디선가 선언이 되어 있겠지. rs = dao.getRecordSet("네임스페이스.쿼리이름", returnMap); 이렇게 map에 key값을 주고서 넘겨주면 ibatis내에서 r.rnum BETWEEN #startIndex# AND #endIndex# 이렇게 할적에 이름으로 비교가 가능하다. SELECT r.* FROM ( .. 더보기
아이바티스썰 조건문 실무에서 SQL문을 작성하다 보면 동적인 쿼리문 작성을 작성해야 할 때가 많이 있다.이때 지겹게 if~else if 문을 통해 아주 지저분한 소스 코드를 생성할 때가 왕왕 있게 마련이다.이때 ibatis에서는 아주 깔금하게 구현할 수 있는 방법을 제공해 준다. select * from account (acc_first_name = #firstName# acc_last_name = #lastName# ) acc_email like #emailAddress# acc_id = #id# order by acc_last_name 상황에 의존적인 위 동적 statement로 부터 각각 다른 16가지의 SQL문이 생성될 수 있다. if-else구조와 문자열 연결을 코딩하는 경우 수백라인이 필요할 수도 있다.동적 st.. 더보기
01 - 안드로이드의 시작.... 개발 환경 구축썰 안드로이드란 스마트폰에 들어가는 OS의 일종으로 애플의 iOS, 구글의 안드로이드가 스마트폰 시장을 양분하고 있다. 실제로는 몇가지 종류의 모바일 OS가 더 있지만 시장 상황이 미미하고, 우리는 안드로이드 개발을 목적으로 하기 때문에 이 두가지만 알고 진행합시다. 우선 안드로이드 개발 환경을 셋팅하려고 하는데..... 예전에 했던 방식과 큰 차이가 생겼다. 바로 안드로이드 진영에서 전용 개발툴(그래봤자 이클립스지만)을 배포해주는 것이다. 기존에는 이클립스에 플러그인 형태로 넣어서 사용했는데 이제는 이 파일만 다운 받아서 사용하면 되는 것이다. (안드로이드에 플러그인 방식으로 하는 것은 시간도 오래 걸리고 기존 안드로이드에 다른 플러그인이 많은 상태로 하면 좀 느리다. 나중에 기회가 되면 다루도록 하겠다... 더보기
자바스크립트 변수를 활용한 카운팅 썰 페이지 내에서 버튼 클릭 시 마다 변수를 1씩 증가시키는 예제 버튼 카운팅 예제 버튼을 누를때마다 카운팅됩니다. 버튼클릭 코드는 다음과 같습니다. - 페이지 내에서 카운팅에 사용할 변수를 하나 선언해주고 - 버튼이 클릭될 때마다 이 변수의 값을 1씩 증가시켜줍니다. - 응용하면 빼는 것도 가능하겠죠? var overlap_cnt = 0; //페이지 변수 설정 function setCnt() { overlap_cnt++; document.getElementById("cnt_result").innerHTML = overlap_cnt; } 버튼 카운팅 예제 버튼을 누를때마다 카운팅됩니다. 버튼클릭 더보기