개인참고자료 71

디버깅 툴

Firefox 자바스크립트를 많이 사용하는 개발을 한다면 Firefox는 필수. Firefox Web Developer & DOM Inspector FireBug 실제 개발할 때는 Web Developer나 DOM Inspector보다 이게 더 유용하다. 콘솔에서 버그 상황도 볼 수 있고 Ajax 요청도 볼 수 있다. 간단한 디버깅도 가능하고 DOM Inspector도 원래 딸려 있는 것보다 편리하다. FireBug 1.0 beta Spket IDE JavaScript IDE. Eclipe 기반. WTP의 JS 에디터보다는 훨씬 좋다. 자바스크립트 인터액티브 셀 firefox에서는 Tab으로 Content Assist도 가능 IE developer toolbar Firefox의 Web Developer와..

DML과 With Check Option의 사용

insert into(select s_id, s_name, reg_date, major_id, tuition, discount, sex from student where dept_id = 120) values(199, 'Jojo', to_date('07-JUN-99', 'DD-Mon-RR'), 'ART_309', 3400, null, 'FEMALE'); 위의 문장은 현재 Jojo 라는 학생의 정보를 새롭게 추가할 때 학과아이디(dept_id)가 120라는 값과 select 절에 명시한 컬럼 값을 설정하고 있다. 원래의 의도는 학과아이디(dept_id)값도 함께 추가하는 것이지만 실제 실행결과는 다르게 나온다. select 절에 학과아이디(dept_id)를 명시하지 않았기 때문에 dept_id=120이란 ..

복수 행 서브쿼리의 정의와 In, Any, All 연산자의 사용

IN IN연산자는 리스트에 있는 각각의 값들과 비교하여 값이 같으면 해당하는 결과를 출력시킨다 SELECT s_name, tuition, dept_id FROM student WHERE tuition IN(8900, 9300, 7600, 4500, 16500); Any " Any"는 ANY 연산자 리스트에 있는 값들 가운데 가장 작은 값보다 크기만 하면 조건을 만족한다 SELECT s_name, tuition, dept_id FRO..

NULL관련 함수

NVL2 NVL2(a, b, c) a : 널(null)을 포함하는 컬럼 이름 또는 임의의 값 b : a가 널(null)이 아니면 b를 출력 c : a가 널(null)이면 c를 출력 NULLIF NULLIF(a, b) a : 널(null)을 포함하는 컬럼 이름 또는 임의의 값 b : 널(null)을 포함하는 컬럼 이름, 또는 임의의 값 COALESCE COALESCE(a, b, c) a 값이 널(null)인지를 확인한다. 널(null)이 아니면 a 값을 결과로 돌려주면 널(null)이면 그 다음 b 값을 확인한다. b 값이 널(null)이 아니면 b 값을 결과로 돌려주면 널(null)이면 c 값이 최종 결과가 된다.

단일 행 함수 - 기타 함수(CASE)

CASE CASE value WHEN expr1 THEN 구문1 WHEN expr2 THEN 구문2 ELSE 구문3 END CASE 예제1 SELECT job_id, CASE job_id WHEN 'SA_MAN' THEN 'Sales Dept' WHEN 'SA_REP' THEN 'Sales Dept' ELSE 'Another' END CASE FROM jobs WHERE job_id LIKE 'S%'; 위 CASE 구문에서 CASE job_id ~ END CASE에 이르는 구문을 하나의 칼럼으로 생각한다. 두 번째 칼럼의 값은 job_id 칼럼의 값이 'SA_MAN'이나 'SA_REP'인 경우 'Sales Dept(판매 부서)'라는 이름으로 표현되며, 그 외는 'Another'로 표기된다. ※ CASE는..

단일 행 함수 - 문자 함수(LOWER 함수)

LOWER LOWER(char) 입력된 문자 값을 소문자로 변환한다. 테이블에 저장되어 있는 영문자에 대해서 Oracle은 대소문자를 구분한다. WHERE절에서 지정된 값에 대해 정확하게 대소문자가 표현되어야 한다. 예제1. hr 소유의 사원 테이블에 'Seo'라는 이름을 가진 사원에 관한 정보를 얻는다. SELECT employee_id , last_name FROM employees WHERE last_name = 'seo'; 위의 질의문의 결과를 보면 아무것도 출력하지 않는다. 다음과 같이 수정한다. SELECT employee_id , last_name FROM employees WHERE last_name = 'Seo'; 사원번호 139번인 Seo의 정보를 얻어온다. 이 경우 정확한 대소문자를 ..

단일 행 함수 - 숫자 함수(WIDTH_BUCKET 함수)

WIDTH_BUCKET WIDTH_BUCKET(expr, min_value, max_value, num_buckets) 어떤 값의 최소값에서부터 최대값을 설정하고 bucket을 지정하여 임의의 값이 지정된 범위 내에서 어느 위치에 있는지를 반환한다. 예제1. 0부터 100까지를 10개의 구간으로 나눈 후 92가 몇 번째 구간에 속하는지 알아본다. SELECT WIDTH_BUCKET (92,0,100,10) "Score" FROM dual; 설명. 0에서 100 사이의 값을 10의 크기로 부분하여 0~9를 1로, 10~19를 2로 하여 값을 반환한다. 92는 90~99 사이의 값이므로 10의 값을 반환한다. 예제2. hr 소유의 사원 테이블 에서 급에 대해 등급을 정의한다. 급여의 범위를 0~20,000으..

멀티캐스팅 - 채팅프로그램작성

채팅프로그램작성 TCP 방식을 이용한 채팅 클라이언트를 작성했다. 이번에 만들 채팅 클라이언트는 멀티캐스팅을 이용한 방식이다. TCP 방식의 경우에는 채팅을 하기 위해서 채팅 서버가 필요했다. 하지말 멀티캐스팅을 이용하면 서버가 필요없는 진정한 의미의 P2P 채팅 프로그램을 작성할 수 있다. TCP 방식의 채팅 프로그램에서 서버가 하는 가장 중요한 역할은 하나의 클라이언트가 문자열을 보내게 되면 접속한 모든 클라이언트에게 문자열을 전송하는 일이있었다. 그렇지만 멀티캐스팅을 이용하게 되면 사용자가 입력한 문자열을 다른 채팅 클라이언트에게 전송할 때에 서버를 거칠 필요 없이 불특정 다수의 클라이언트에게 문자열을 전송할 수 있다. 즉, 멀티캐스팅을 이용한 채팅 프로그램은 서버가 필요 없고 클라이언트만 있으면되..

멀티캐스트 - 간단한 인터넷 방송 클라이언트와 서버 구현

간단한 인터넷 방송 클라이언트와 서버 구현 멀티캐스팅을 이용한다는 것은 특정한 IP의 컴퓨터에게 정보를 전송한다는 것이 아니라 불특정 다수에게 정보를 전달한다는 것을 의미한다. 즉, 멀티캐스팅 서버는 패킷에 방송할 내용을 담아서 특정 IP가 아닌 불특정 다수에게 패킷을 전송하면 된다. 나머지 일은 라우터가 알아서 패킷을 전달하면 되는 것이다. 마치 공중파 방송이 불특정 다수에게 방송을 보내기 위해서 전파를 송신하는 것처럼 말이다. 따라서 클라이언트는 네트워크 내에 전달되는 패킷을 읽어들이는 역할만 수행하면 된다. 멀티캐스팅을 위한 서버는 기존의 UDP 방식의 서버 프로그래밍과 거의 같으며 클라이언트의 IP를 DatagramPacket에 지정하는 것이 아니라 멀티캐스트 그룹에 해당하는 Ip를 지정하는 부분..

멀티캐스트 - 멀티캐스트 백본(MBone)

멀티캐스트 백본 - MBone 멀티캐스트를 구현하려면 라우터가 멀티캐스트 패킷 라우팅을 지원해줘야 한다. 하지만 대부분의 라우터가 멀티캐스트 패킷 라우팅을 지원하지 않고 있다. 이런 이유로 멀티캐스트를 지원할 수 있도록 MBone이라는 실험용 멀티캐스트 프레임워크가 만들어지게 되었다. MBone은 실시간 오디오와 동영상을 전송할 수 있게 해주는 멀티 캐스트의 가상 네트워크라고 할 수 있다. MBone이 만들어지는 또 다른 이유는 현재의 인터넷 방송에 대한 문제점 때문이다. 현재의 인터넷 방송의 대다수는 멀티캐스팅 방식이 아닌 패킷을 송신자가 수신자에게 각각 보내는 방식인 유니캐스트 방식을 사용한다. 그렇기 때문에 송신을 하는 쪽에서는 아주 넓은 대역폭을 필요로 한다. 하지만 멀티캐스트 방식을 선택하게 되..