전체 글 235

[2006/07/02] 허티엔의 명물 일요시장을 보다

카슈카르로 가는 버스표부터 예매했다. 어제밤 인터넷카페에서 본 바로는 어제 천장철로가 개통되면서 라싸행의 비합법적인 루트가 거의 막혔다고 한다. 아무래도 카슈카르에서 정확한 정보를 수집해봐야 겟다. 아침부터 사막에서 불어온 모래바람이 장난이 아니다. 몇 발 자국 앞이 안 보일 정도로 황사가 심하다. 버스표를 예매한 후 일요시자을 가기 위해 길을 물었지만, 현지인은 일요시장이란 단어를 모르다. 다행히 중국어를 하는 한국 여학생을 두 명 만나 도움을 얻을 수 있었다. 참 묘한 인연들이 묘한 장소에서 도움을 준다. 40분 쯤 방황(?)을 한 끝에 일요시장에 도착했다. 엄청난 사람들과 가축들이 몰려들고 있었다. 온갖 가축들과 농산물들, 비단, 음식, 옷가지, 장시구, 폐휴지....엄청나다. 한 바퀴를 대충 둘러..

[2006/07/01] 허티엔으로

우루무치를 떠난 지 17시간 만인 오전 7시. 사막공로가 끝나는 곳에서 아침이 밝아온다. 정교수님은 내일 허티엔 일요시장으로 오기로 하고 일단 이티엔에서 내렸다. 허티엔에서 내린 후 지도를 구하기 위해 시내를 헤맸지만, 결국 실패. 우루무치와 마찬가지로 허티엔 역시 배낭여행객이 없다. 몇 군데의 빈관을 찾았지만, 가격이 맞지 않거나 외국인은 받지 않는다고 해서 결국 택시를 타고 허티엔 잉빈관으로 갔다. 지도만 있었더라도 충분히 걸어서 찾을 수 있는 거리였는데... 허티엔은 옥으로 유명하다더니, 조금만 시내를 걸어도 어린 친구들이 여지없이 달라붙어 옥가공품을 사달라고 한다. 대부분은 약간의 실랑이끝에 무러가건만, 유독 두 녀석은 숙소 근처까지 근 500 미터를 따라오며 괴롭힌다. 아무래도 내일 일요시장을 ..

[2006/06/29] 우루무치

45시간의 기차여행으로 도착한 우루무치는 가이드북의 내용과는 딴판이다. 도미토리가 있다고 했던 모든 여관은 호텔로 리모델링하면서 없어져버렸다. 4시간 여를 헤매다 샤샤라는 러시아 배낭여행자를 만나, 신장대학의 친구들을 만날 수 있었다. 신장대학 근처 만두집에서 만두를 시켜먹었다. 영어, 위구르어, 중국어, 한국어가 정신없이 오갔다. 중국어가 되었더라면 좀 더 깊이 그들의 세계로 들어갈 수 있었을텐데.. 오늘은 신장대학의 조교처럼 보이는 만지린의 기숙사에서 묵기로 하고, 돌아오는 길에 선물의 의미로 하이과를 사들고 갔다. 호박맛과 참외맛이 뒤섞이 괴이한 맛의 과일이다. 며칠동안 만난 중국친구들의 한국에 대한 주된 화제는 단연 한국드라마의 열풍으로 말미암은 '한국에 대한 환상'이었다. 개인적으로 관심도 없던..

Oracle: 제약 조건(PK, FK, default, unique, check)의 이해 및 실습

▩ 제약 조건(PK, FK, default, unique, check)의 이해 및 실습 - 정규화에 대한 지식을 갖어야 쉽게 구현 가능합니다. - Column Level: 컬럼 정의 시 선언 합니다. - Table Level: 컬럼을 다 정의하고 난 후 정의 합니다. - NOT NULL은 Column Level만 사용 가능합니다. - Constraint name은 보통 테이블명_컬럼명_PK, FK 로 지정 합니다. - 하나의 큰 테이블을 2개 이상의 테이블로 분리할시에 그 분리된 테이블들은 하나의 공통된 컬럼을 반드시 가지고 있어야 합니다. 이 공통된 컬럼은 테이블을 다시 합칠(JOIN)경우 join의 기준값으로 사용하게 됩니다. - 테이블을 2개로 분리할경우 컬럼에 중복된 값이 들어가서는 안되는 테이블..

개발 등/ORACLE 2008.08.11

Scanner class

Name.java package stat; //API중 Scanner 클래스를 사용 import java.util.Scanner; //APi중 InputMismatchException 예외처리를 사용 import java.util.InputMismatchException; public class Name { Scanner scan; public static void main(String[] args) { // 새로운 Name 객체 생성 new Name(); } //숫자를 입력해 값을 출력하는 Name 메소드 public Name(){ //새로운 Scanner객체 scan을 생성 scan = new Scanner(System.in); System.out.println("반복할 숫자를 입력하세요.\n"); ..

개발 등/중급 2008.08.07

System.exit();

자바 프로그램을 종료하면서 운영체제에 에러 코드를 돌려주는 방법입니다. C언어에서는 return 0; 이나 return 1; 등으로 반환할 수 있지만, 자바의 main (메인 메서드;함수) 은 반환값이 void형이기에 return문으로 값을 돌려 주지 못합니다. 만약 강제로 돌려주면 cannot return a value from method whose result type is void 이런 에러가 납니다. 그렇다고 해서 메인을 "public static int main(String[] args)" 이렇게 정수형으로 고치면, Exception in thread "main" java.lang.NoSuchMethodError: main 이런 에러가 납니다. 자바의 메인 메서드에서는 return문이 아닌, ..

개발 등/중급 2008.08.07

NULL 에 대한 정리

1. NULL값 정의 RDBMS에서 NULL은 0 이나 공백이 아닌 값을 알수가 없다의 의미입니다. 이말은 값이 없다 입니다. 이는 Oracle 상에서 수치를 계산할때 문제가 됩니다. null이 포함된 수식 계산에서는 무조건 null이 출려되어 잘못된 결과가 나오기 때문입니다. 특히 수치계산일때는 테이블 생성시 not null로 해주거나 nvl()함수로 제대로 치환해줘야 합니다. 2. NULL값 잘못된 처리 숫자의 경우 create table jun1( a number, b number); insert into jun1 values(null,12); select a+b from jun1; 라고 한다면 12가 나올것 같지만 null값이 포함된 계산식은 무조건 null이 나옵니다. 그래서 nvl()를 사용하..

개발 등/ORACLE 2008.08.06

SELECT문 및 연산자

SELECT문은 데이터베이스로부터 저장되어 있는 데이터를 검색하는데 사용합니다. [Syntax] · DISTINCT : 중복되는 행을 제거하는 옵션입니다. · * : 테이블의 모든 column을 출력 합니다. · alias : 해당 column에 대해서 다른 이름을 부여할 때 사용합니다. · table_name : 질의 대상 테이블명 · WHERE : 조건을 만족하는 행들만 검색 · condition : column, 표현식, 상수 및 비교 연산자 · ORDER BY : 질의 결과 정렬을 위한 옵션(ASC:오름차순(Default),DESC내림차순) ☞ SQL문의 작성 방법 - SQL 문장은 대소문자를 구별하지 않습니다. - SQL 문장은 한 줄 또는 여러 줄에 입력될 수 있습니다. - 일반적으로 키워드는..

개발 등/ORACLE 2008.08.06

nvl() 함수

NVL 함수는 NULL 값을 다른 값으로 대치시킬 때 쓰인다. NVL( expr1, expr2 ) . 만약 1의 값이 NULL 이라면 2의 값을 반환하고, 1이 NULL이 아니면 그냥 1의 값을 반환한다. 모든 종류의 데이터 타입을 가질 수 있다. NVL 함수는 이 두 개의 연산자를 비교하기 때문에 만약 1이 2와 다른 종류의 데이터 타입을 가지고 있다면, 오라클은 2의 데이터 타입을 1의 데이터 타입으로 변환한다. 함수의 반환값은 1의 데이터 타입과 동일하다. 실제 사용하고 있는 방식은 자바 클래스를 이용하여 반환되는 DB값이 NULL일 경우, "" 로 치환해서 쓰고 있다. 쿼리문에 NVL 함수를 사용하여 변환해도 되지만, 굳이 일일이 넣어서 쿼리를 지저분하게 만들지 않고 있다. 일단 기능상, 효율상 ..

개발 등/ORACLE 2008.08.05