BLOG main image
Nothing great was ever achieved without enthusiasm.

황당무계~

2009. 10. 20. 20:34
직장생활하면서 가장 짜증날 때가 내가 하지 않은 일에 대해 책임추궁을 받을 때인 것 같습니다.
내용도 모르고 상황도 모르는데 윗 사람은 짜증부터 내고 있을 때죠.

오늘 제가 그 꼴을 당해더랬습니다.
내가 전혀 알지 못하는 건에 대해 추궁을 받으니 뭐라고 할 말도 없고 정말 황당하더군요.

이런 날은 술 한 잔 먹고 싶네요.

승질 제대로 나네요...
Posted by 빛나는 돌
일요일이라 하루종일 뒹굴뒹굴을 하면서 시간을 보냈답니다.
어제부터 감기로 고생을 해서리... ㅠ_ㅠ...

오늘따라 기분이 묘하네요.
좋지도 않고 싫지도 않고...

조금전 제 미니홈피에 들어가봤습니다.

오늘도 역시 today수가 1이더군요.
내 미니홈피는 검색도 안되게 해 놓았는데 어찌 알고 한 명은 꼭 매일마다 찾아오더군요...

누군지 모르지만... 제가 매일마다 쓰고 있는 일기가 그렇게 궁금한가 봅니다. ^^;

별 것도 없는데...
누굴까???


그나저나...
전에 읽은 신문기사중에 직장인들중에 사춘기를 겪는 비율이 높다고 하는 기사를 봤습니다.
입사 후 1~3년차 중에 그렇다고 하던가요?

전 지금 회사에 들어온지 이제 1년하고도 6개월가까이 되가네요.

그동안 풍지풍파도 많았고...
힘든 일도 많았고...
맘 고생도 많이 했고...

이 회사에 들어와서 제대로 사춘기를 겪었던 것 같습니다.

학생때에 왔던 사춘기는 사춘기였는지도 모르게 보냈었는데 나이들어 사춘기가 찾아오니 정말이지 곤욕스럽고 힘들더군요.

아무튼...이제 저는 기나긴 사춘기라고 불리우는 슬럼프 터널을 조금씩 조금씩 벗어나고 있답니다. ^^;



음악이나 들어볼까요?
오늘은 제 미니홈피에 있는, 도토리를 투입해서 샀던 곡중 제가 좋아하는 곡들 위주로 가볼까 합니다... ^^;


Walking Down The Street - The Real Group
  -
말할 필요없는 최고의 아카펠라그룹입니다. 들어보시면 뽕~가실겁니다... ^^;




A Whole New World (알라딘)
  - 만화영화 알라딘의 주제곡입니다...




Norah Jones - Dont Know Why 
  - Norah Jones의 감미로운 목소리가 일품입니다...




마지막으로... 들국화 - 축복합니다.

  - 제가 가장 아끼는 곡중에 하나입니다. ^^; 노래가사도 좋고 간주에 나오는 기타음도 매우 좋죠...

Posted by 빛나는 돌
THE BEATLES - OBLADI OBLADA

Posted by 빛나는 돌

You are not alone-마이클잭슨...




격려- 황종률

Posted by 빛나는 돌

JOIN...

2009. 10. 14. 02:39
http://www.taeyo.net/Forum/Content.aspx?SEQ=1388&TBL=KNOWHOW&PGN=5




조인원리에는 3가지가 있습니다.
1. Nested Loop Join
2. Sort Merge Join
3. Hash Join


오라클 기준으로 작성된문서이지만 원리및 장단점을 쉽게 설명했기에 올려봅니다.



관계형 데이터 베이스에서 데이터 연결 방법 중 Join의 종류, 조인의 수행원리, 각 조인의 특징, 그리고 조인별 선택기
준에 대해서 소개하고자 한다.


조인은 두 집합간의 곱으로 데이터를 연결하는 가장 대표적인 데이터 연결 방법이다.
종류에는 Nested Loop Join,
Sort Merge Join 그리고 Hash Join이 있다.

1 * M = M 과 M * 1 = M 의 결과집합이 동일한 것처럼 Optimizer가 3가지의 조인 중 어떤 것을 선택할지라도
결과
집합은 동일하다.






하지만 수행속도 측면에서 본다면 조인하고자 하는 두 집합의 데이터 상황에 따라 어떤 조인을 선
택하느냐,
어떤 집합을 먼저 선행하느냐 에 따라 수행속도에 미치는 영향은 크다.


100쌍의 남녀가 사랑의 짝대기 하는 것에 비추어 3가지 조인방식이 수행되는 원리를 설명해 보자.
남녀 모두는 자기가 원하는 상대방의 번호표 하나씩 가지고 있고, 한 사람은 여러 사람으로부터 선택 받을 수 있다.


첫번째 방식, 첫번째 여자는 자기가 선택한 번호표를 가지고 처음부터 차례로 남자의 번호를 확인하고, 해당 번호의
남자가 자기를 선택했는지 확인한다. 그리고 두 번째, 세 번째,..,백 번째 여자까지 같은 작업을 반복 수행하게 된다.





이처럼 선행 집합의 선두부터 차례로 후행집합과 조건을 비교 하면서 선행집합의 처리범위가 끝날 때 까지 같은 작업
을 반복하는 것이 Nested Loop Join이다.
선행집합의 처리 범위가 결정되어 지면 후행집합의 일량이 정해지는 종속
적 방식이다.

두번째 방식, 남녀는 각각 자기가 선택한 상대방의 번호표(Join Key) 순으로 각각 줄(Sort)을 선다. 그러면 중간의 아
나운서가 차례로 양쪽의 번호표가 일치하는지를 확인하면서 번호표가 맞다면 짝을 지어줄 것이다. 이처럼 각각의 집
합은 자기에게 주어진 조건으로 처리범위를 결정하고, 조인 컬럼으로 각각 Sort 한 후 조인하는 방식이 Sort Merge
Join이다. 처리범위를 결정하는데 독립적이다.

세번째 방식, 1번부터 100번(Hash Table)의 푯말이 있다. 여자측은 자기가 가지고 있는 상대방의 번호표 숫자푯말
앞에 서는 것이다(Hash Function). 물론 각 푯말에는 여러 명의 여자가 서 있을 수도, 한명도 없을 수도 있다.
다음으
로 남자는 자기 번호푯말 앞으로 가서 남자가 가지고 있는 번호와 상대 여성의 번호와 맞는지를 비교하면 된다. 이처
럼 선행 집합은 Hash Function을 이용하여 Hash Table을 구성하고, 후행집합은 차례로 Hash Function을 이용하여
Hash Table을 탐침하는게 Hash Join 수행 원리이다. Hash Join역시 처리범위를 결정하는데 독립적이다.


Nest Loop Join의 특징 및 사용기준
온라인 어플리케이션에서 주를 이루는 Nested Loop Join은 부분범위 처리나 사용자가 데이터를 요구 했을 때 짧은
시간에 결과를 볼 수 있는 적은 데이터를 액세스 할 때 쓰인다. 다음과 같은 SQL을 예로 들어 보자.
SQL >SELECT a.FLD1, ..., b.FLD1,...
FROM TAB2 b, TAB1 a
WHERE a.KEY1 = b.KEY2
AND b.FLD2 like 'A%'
AND a.FLD1 = '10'
조인 컬럼인 a.KEY1 = b.KEY2에 양쪽 테이블 모두 인덱스가 존재하고, 선행 테이블을 TAB1으로 했을 때와 TAB2
로 했을 때의 수행횟수를 비교하여 보자.


TAB1이 선행테이블 일때
1) a.FLD1 인덱스 5000건 Range Scan.
2) Rowid로 TAB1에 5000회 랜덤액세스
3) 성공/실패에 상관없이 b.KEY2 인덱스에 5000회 랜덤액세스 및 조인시도
4) 조인에 성공한 Rowid로 TAB2에 100회 랜덤액세스
5) b.FLD2 like 'A%' 체크 후 성공한 50건 운반단위 이동

TAB2가 선행테이블 일때
1) b.FLD2 인덱스 100건 Range Scan.
2) TAB2의 100회 랜덤액세스
3) 성공/실패에 상관없이 a.KEY1 인덱스에 100회 랜덤액세스 및 조인시도
4) 조인에 성공한 Rowid로 TAB1에 70회 랜덤액세스
5) a.FLD1 = '10' 체크 후 성공한 50건 운반단위 이동


결과건수는 두 가지 수행방식 동일하게 50건이지만, 수행횟수 측면에서 본다면 TAB1을 선행테이블 했을 때는 5000
회의 조인시도가 발생하였고, TAB2를 선행테이블로 했을 때는 100회의 조인시도가 발생하였다. 이처럼 조인 순서
및 선행 테이블의 처리범위에 따라서 수행횟수는 크게 달라질 수 있다. Nested Loop Join의 특징 및 사용기준은 다음
과 같다.

특징
1) 선행 테이블의 처리범위가 일량을 결정한다.(방향성)
2) 선행 테이블의 값을 받아서 후행 테이블의 처리범위가 결정된다.(종속적)
3) 주로 랜덤 액세스 방식으로 처리된다.(랜덤액세스)
4) 후행 테이블의 조인컬럼의 인덱스의 유무 및 조건의 인덱스 참여의 정도에 따라 수행속도가 많이 차이 난다.(연결
고리 상태)

사용기준
1) 부분범위처리를 하는 경우에 유리하다.
2) 처리량이 적은 경우에 유리하다.- 랜덤액세스가 많을 경우 수행속도를 보장할 수 없으므로 Sort Merge Join이나
Hash Join으로 유도
3) 선행 테이블의 결과를 받아야만 후행 테이블의 처리범위를 줄일 수 있는 경우에 유리하다. - 연결고리에 Index가
반드시 존재하여야 함
4) 선행 테이블의 처리범위가 수행속도에 절대적 영향을 미치므로 최적의 조인 순서가 될 수 있도록 유도해야 한다.

Sort Merge Join의 특징 및 사용기준
다량의 데이터를 스캔방식으로 처리하는 Sort Merge Join은 양쪽테이블을 각자 액세스하여 처리 범위를 줄이고, 조
인컬럼 순으로 데이터를 Sort 후에 조인하는 방식이다.



수행 과정을 살펴보자
1) a.FLD1 인덱스 Range Scan.
2) Rowid로 TAB1에 랜덤액세스
3) 조인컬럼인 a.KEY1로 SORT
4) b.FLD2 인덱스 Range Scan.
5) Rowid로 TAB2에 랜덤액세스
6) 조인컬럼인 b.KEY2로 SORT 한다.
7) 양쪽 집합을 Scan하면서 a.KEY1 = b.KEY2 조인 시도
8) 성공한 Row 운반단위 이동


수행과정에서 나타나듯이 Nested Loop Join과 달리 상대 테이블의 결과에 의해 처리범위가 결정되는게 아니라 스스
로에게 주어진 조건 만으로 처리범위를 줄인 후 Sort하게 되므로, 조인 컬럼으로 이루어진 인데스는 사용하지 않게
된다. Sort Merge Join의 특징 및 사용기준은 다음과 같다.

특징
1) 상대 테이블로부터 결과 값을 제공받지 않고, 자신에게 주어진 조건으로만 처리범위를 결정한다.(독립적).
2) 각자 SORT후에 조인을 하게 되므로 부분범위 처리가 아닌 전체범위 처리를 하게 된다.(전체범위 처리)
3) 조인의 순서에는 상관없다.(무방향성)
4) 인덱스가 아닌 컬럼도 Merge할 작업 대상을 줄이므로 중요한 의미를 가진다.

사용기준
1) 처리량이 많거나 전체범위 처리 시에 유리하다. 랜덤액세스가 많은 Nested Loop Join은 불리
2) 스스로 자신의 처리범위를 많이 줄일 수 있을 때 유리하다.
3) 연결고리 이상 상태에 영향을 받지 않으므로 연결고리 컬럼을 위한 인덱스를 생성하지 않고도 유용하게 사용할
수 있다.
4) 처리할 데이터량이 적은 온라인 어플리케이션에서는 Nested Loop Join이 유리한 경우가 많으므로 Sort Merge
Join은 주의하여 사용한다.


Hash Join의 특징 및 사용기준
대량의 데이터를 액세스하는 작업에서는 시스템 리소스를 많이 사용하는 대신 짧은 시간에 보장할 수 있어야 한다.
다음은 수행방법을 살펴보자





1) 두 테이블 중 적은 테이블을 선행 테이블로 결정한다.
2) 선행 테이블을 Hash Function을 이용하여 Hash Area에 Hash Table을 구성한다.(Build Input)
3) 만약 Hash Area만으로 생성 가능하다면 후행테이블은 크기에 상관없이 차례로 Hash Function을 이용하여 Hash
Table과 조인(Probe Input)하면서 성공한 결과값을 운반단위로 이동한다.
4) 만약 Hash Area만으로 Hash Table 생성이 불충분 하다면 Hash Table Overflow가 발생하여 데이터를 나눠서 저
장 할 Partition 수를 결정한다.(Fan -out)
5) 선행 테이블의 조인 컬럼과 Select List 컬럼을 메모리로 읽어 들여 첫번째 해쉬 함수를 이용하여 Partition을
Mapping하고, 두번째 해쉬 함수를 이용하여 해쉬 테이블 생성시 사용 할 해쉬 값을 생성한다.
6) 선행 테이블의 조인 컬럼의 유일 값만으로 Bit-Vector을 생성한다. ?추후 Bit-Vector filtering에 사용하기 위함.
7) Partition에 데이터를 MOVE하고 채워진 Partition은 디스크로 내려간다.
8) 선행 테이블이 모두 읽혀지면 Partition 테이블을 완성하고, Partition 크기순으로 정렬한 후 작은 Partition N개를
메모리에 로드한다.
9) 후행 테이블을 읽으면서 조인컬럼으로 Bit-Vector와 Filtering에 성공하였다면, 첫번째 해쉬함수로 Partition을 결
정하고, 두번째 해쉬 함수를 이용하여 메모리 상에 있는 선행테이블과 조인하고 성공하면 운반단위로 이동하고, 해
당 Partition이 메모리에 존재하지 않는다면 해쉬 키값,조인컬럼, Select List를 디스크에 쓴다.
10) 후행 테이블이 모두 읽혀지면, Bit-Vector Filtering에 성공했지만, 조인에 성공하지 못해 미 처리된 선행 파티션
과 후행 파티션을 메모리에 올려 차례로 반복수행 한다.

액세스해야 할 데이터가 많을 경우 Sort Merge Join은 Merge 단계에 들어 가기 위해 양쪽 테이블의 처리 범위가
SORT 되어야 하므로 SORT에 대한 부담이 크고, Nested Loop Join은 선행 테이블의 처리 범위가 넓을 경우 그 만큼
랜덤 액세스의 발생으로 수행속도를 보장할 수 없다.이해 반해 Hash Join은 다른 조인에 시스템 리소스를 가장 많이
사용하지만 Hash Function을 이용함으로써 Sort를 하지 않고, 각 테이블에 한번만 액세스하여 조인이 이루어 지므로
큰 테이블간이나, 큰 테이블과 적은 테이블의 조인에 효율적인 조인 방법이다. Hash Join의 특징 및 사용기준은 다음
과 같다.

특징
1) 다른 테이블의 결과 값을 제공받지 않고, 자신에게 주어진 조건으로만 처리범위를 결정한다.(독립적).
2) 해쉬 함수를 이용 하게 되므로 부분범위 처리를 할 수 없으며 전체범위 처리를 하게 된다.(전체범위 처리)
3) 메모리 영역만으로 해쉬 테이블을 생성시 최적의 효과를 낼 수 있으므로 적은 테이블이 선행으로 온다.
4) 해쉬 함수를 이용하므로 결과값의 정렬을 보장 받을 수 없다.

사용기준
1) 대량의 데이터 액세스 시, 배치 처리, Full Table Scan 하면서 조인 해야 할 때 유리하다.
2) 비용은 많이 들지만 수행속도를 보장해야 하는 작업에 유용하다.(Parallel Query 사용)
3) 가능한 메모리 내에서 작업 가능하도록 init Parameter나 Session 정보를 변경하여 사용한다. (Hash_area_size,
Hash_multiblock_io_count 등..)

수행속도는 시스템 리소스와 즉결된다. 사용자는 작업의 성격을 분명히 하고, 작업에 맞는 조인은 선택하여야만 수
행 속도를 보장할 수 있다. SQL작성 후 반드시 실행계획를 확인 하여 Optimizer가 사용자가 원하는 액세스를 하는 확
인하는 습관을 들어야 한다.

이상으로 3가지 조인의 특징 및 사용기준에 대하여 알아보았다.

Sort Merge Join의 특징 및 사용기준
다량의 데이터를 스캔방식으로 처리하는 Sort Merge Join은 양쪽테이블을 각자 액세스하여 처리 범위를 줄이고, 조
인컬럼 순으로 데이터를 Sort 후에 조인하는 방식이다.



수행 과정을 살펴보자
1) a.FLD1 인덱스 Range Scan.
2) Rowid로 TAB1에 랜덤액세스
3) 조인컬럼인 a.KEY1로 SORT
4) b.FLD2 인덱스 Range Scan.
5) Rowid로 TAB2에 랜덤액세스
6) 조인컬럼인 b.KEY2로 SORT 한다.
7) 양쪽 집합을 Scan하면서 a.KEY1 = b.KEY2 조인 시도
8) 성공한 Row 운반단위 이동

수행과정에서 나타나듯이 Nested Loop Join과 달리 상대 테이블의 결과에 의해 처리범위가 결정되는게 아니라 스스
로에게 주어진 조건 만으로 처리범위를 줄인 후 Sort하게 되므로, 조인 컬럼으로 이루어진 인데스는 사용하지 않게
된다.
Sort Merge Join의 특징 및 사용기준은 다음과 같다.

특징
1) 상대 테이블로부터 결과 값을 제공받지 않고, 자신에게 주어진 조건으로만 처리범위를 결정한다.(독립적).
2) 각자 SORT후에 조인을 하게 되므로 부분범위 처리가 아닌 전체범위 처리를 하게 된다.(전체범위 처리)
3) 조인의 순서에는 상관없다.(무방향성)
4) 인덱스가 아닌 컬럼도 Merge할 작업 대상을 줄이므로 중요한 의미를 가진다.

사용기준
1) 처리량이 많거나 전체범위 처리 시에 유리하다. 랜덤액세스가 많은 Nested Loop Join은 불리
2) 스스로 자신의 처리범위를 많이 줄일 수 있을 때 유리하다.
3) 연결고리 이상 상태에 영향을 받지 않으므로 연결고리 컬럼을 위한 인덱스를 생성하지 않고도 유용하게 사용할
수 있다.
4) 처리할 데이터량이 적은 온라인 어플리케이션에서는 Nested Loop Join이 유리한 경우가 많으므로 Sort Merge
Join은 주의하여 사용한다.


Hash Join의 특징 및 사용기준
대량의 데이터를 액세스하는 작업에서는 시스템 리소스를 많이 사용하는 대신 짧은 시간에 보장할 수 있어야 한다.
다음은 수행방법을 살펴보자





1) 두 테이블 중 적은 테이블을 선행 테이블로 결정한다.
2) 선행 테이블을 Hash Function을 이용하여 Hash Area에 Hash Table을 구성한다.(Build Input)
3) 만약 Hash Area만으로 생성 가능하다면 후행테이블은 크기에 상관없이 차례로 Hash Function을 이용하여 Hash
Table과 조인(Probe Input)하면서 성공한 결과값을 운반단위로 이동한다.
4) 만약 Hash Area만으로 Hash Table 생성이 불충분 하다면 Hash Table Overflow가 발생하여 데이터를 나눠서 저
장 할 Partition 수를 결정한다.(Fan -out)
5) 선행 테이블의 조인 컬럼과 Select List 컬럼을 메모리로 읽어 들여 첫번째 해쉬 함수를 이용하여 Partition을
Mapping하고, 두번째 해쉬 함수를 이용하여 해쉬 테이블 생성시 사용 할 해쉬 값을 생성한다.
6) 선행 테이블의 조인 컬럼의 유일 값만으로 Bit-Vector을 생성한다. ?추후 Bit-Vector filtering에 사용하기 위함.
7) Partition에 데이터를 MOVE하고 채워진 Partition은 디스크로 내려간다.
8) 선행 테이블이 모두 읽혀지면 Partition 테이블을 완성하고, Partition 크기순으로 정렬한 후 작은 Partition N개를
메모리에 로드한다.
9) 후행 테이블을 읽으면서 조인컬럼으로 Bit-Vector와 Filtering에 성공하였다면, 첫번째 해쉬함수로 Partition을 결
정하고, 두번째 해쉬 함수를 이용하여 메모리 상에 있는 선행테이블과 조인하고 성공하면 운반단위로 이동하고, 해
당 Partition이 메모리에 존재하지 않는다면 해쉬 키값,조인컬럼, Select List를 디스크에 쓴다.
10) 후행 테이블이 모두 읽혀지면, Bit-Vector Filtering에 성공했지만, 조인에 성공하지 못해 미 처리된 선행 파티션
과 후행 파티션을 메모리에 올려 차례로 반복수행 한다.

액세스해야 할 데이터가 많을 경우 Sort Merge Join은 Merge 단계에 들어 가기 위해 양쪽 테이블의 처리 범위가
SORT 되어야 하므로 SORT에 대한 부담이 크고, Nested Loop Join은 선행 테이블의 처리 범위가 넓을 경우 그 만큼
랜덤 액세스의 발생으로 수행속도를 보장할 수 없다.이해 반해 Hash Join은 다른 조인에 시스템 리소스를 가장 많이
사용하지만 Hash Function을 이용함으로써 Sort를 하지 않고, 각 테이블에 한번만 액세스하여 조인이 이루어 지므로
큰 테이블간이나, 큰 테이블과 적은 테이블의 조인에 효율적인 조인 방법이다.
Hash Join의 특징 및 사용기준은 다음과 같다.

특징
1) 다른 테이블의 결과 값을 제공받지 않고, 자신에게 주어진 조건으로만 처리범위를 결정한다.(독립적).
2) 해쉬 함수를 이용 하게 되므로 부분범위 처리를 할 수 없으며 전체범위 처리를 하게 된다.(전체범위 처리)
3) 메모리 영역만으로 해쉬 테이블을 생성시 최적의 효과를 낼 수 있으므로 적은 테이블이 선행으로 온다.
4) 해쉬 함수를 이용하므로 결과값의 정렬을 보장 받을 수 없다.

사용기준
1) 대량의 데이터 액세스 시, 배치 처리, Full Table Scan 하면서 조인 해야 할 때 유리하다.
2) 비용은 많이 들지만 수행속도를 보장해야 하는 작업에 유용하다.(Parallel Query 사용)
3) 가능한 메모리 내에서 작업 가능하도록 init Parameter나 Session 정보를 변경하여 사용한다. (Hash_area_size,
Hash_multiblock_io_count 등..)

수행속도는 시스템 리소스와 즉결된다. 사용자는 작업의 성격을 분명히 하고, 작업에 맞는 조인은 선택하여야만 수
행 속도를 보장할 수 있다. SQL작성 후 반드시 실행계획를 확인 하여 Optimizer가 사용자가 원하는 액세스를 하는 확
인하는 습관을 들어야 한다.

이상으로 3가지 조인의 특징 및 사용기준에 대하여 알아보았다.






Posted by 빛나는 돌

The Beatles, in Hey Jude

2009. 10. 12. 01:41


알려드립니다...밑의 글은 http://music.cyworld.com/musicnote/lzmania/1343067 에서 가져온 글입니다.
먼저... 허락없이 본 글을 제 블로그에 올린 것에 대해 사과드립니다...

이 글을 쓰신 이근형님께서 hey jude에 대해 좋은 글을 쓰신 것 같더군요.
제가 어렸을 때 hey jude를 들으면서 느꼈던 것과 비슷한 느낌을 가지셨더군요... ^^;

그래서 이 글에 이끌려 제 블로그에도 올려봅니다. 이해해 주실 것을 바라며....

(만일 원하지 않으신다면 바로 내리겠습니다...)



 

질풍노도의 시기, 그리고 Hey Jude


2001년, 서울 제기동의 어느 S중학교에 다니는, 다른 과목은 영 아닌데 특히 영어과목에만 관심이 있어서 그 쪽으로 가능성이 보이는 어느 남자 중학생에게 과연 삶을 살아가며 재미를 느끼는 것은 어떤 부분이었을까. 특히나 그 S중학교는 2001년에 1학년으로 들어오는 학생들부터 남녀공학으로 바뀌는 ‘오리지널 남자중학교’ 였기 때문에, 두 살 많은 선배들이 온통 남자들로 구성된 것은 어찌할 수 없는 숙명이었다. 그러니 당연 뺀질뺀질하게 옆 학교 미팅 할 줄 아는 ‘좀 노는 아이들’ 아니고서는, 이 학교에서 보통의 남학생으로 살아간다는 것은 별다른 재미를 못 느끼고 그저 책만 파야 하는 그런 일직선상의 생활이었다.



하지만 앞서 말했듯이 나는 특히 영어에 대해 관심이 많아서 그런지 몰라도, 한창 10대 중후반 시절 보통 일상적인 사물에서 나는 소리 외에 드디어 예술의 경지에 오르는 ‘음악’ 이라는 것에 관심이 많아져서, 자연스럽게 팝송이라는 것에 손을 대기 시작하였다. 이것 역시 우연을 가장한 필연이었다. 음악이라는 장치라고는 주말에 가족 회식을 나가러 아버지 차량에 탑승했을 때 들려오는 안드레아 보첼리 (Andrea Bocelli), 혹은 비틀즈 (The Beatles) 따위의 외국 팝송 부류가 다였음에도 불구하고, 결국 이렇게 아버지 차량에서 간접적으로 접하게 되는 일방통행의 음악감상에서, 이제는 스스로 내가 어떤 노래를 좋아하는지 파악하고 또 그 쪽으로 자리를 옮기는 ‘자급자족적인 음악감상’ 으로 발전하였단 말씀이다.



앞서 말했듯이 가장 쉽게 접할 수 있었던 음악은 비틀즈의 것이었다. 아버지가 워낙 비틀즈 마니아이셔서 그런지 몰라도, 자연스럽게 가장 가까이서 들을 수 있었던 것이 바로 비틀즈 음악이었다. 뭐 비틀즈 노래야 웬만한 비틀즈 전문가 아니고서는 설마 마니아틱한 The Beatles (화이트 앨범) 의 수록곡 Rocky Racoon, Happiness Is A Warm Gun, 그리고 Sgt. Pepper's Lonely Hearts Club Band의 수록곡 Lovely Rita를 처음부터 감상하였겠는가. 그저 우리가 비틀즈 하면 딱 떠오르는 명곡들인 Let It Be, Yesterday, 그리고 Hey Jude부터 찬찬히 파고 들어갔다. 이 중에서도 비틀즈의 싱글 앨범으로 발매되었다가 나중에 Past Masters라는 컴필레이션 앨범으로 레코딩 되었던 Hey Jude라는 노래가 특히 마음에 들었다.



뭐랄까, 7분 4초라는 엄청난 러닝 타임에서 단어 그대로 수 만 가지 이야기가 흘러넘치기 때문에, 질풍노도의 시기를 겪고 있는 16세의 중학교 3학년 학생에게는 이러한 Hey Jude가 들려주는 록의 대서사시에 사시나무 떨 듯이 몸을 안 흔들 수가 없었더란다. 아니, 처음 부분에서는 폴 매카트니가 조용한 음색으로 노래를 잘 풀어나가면서 잔잔한 가운데 또 거기에서 강직한 무언가의 세션이 펼쳐지다가, 갑자기 어느 순간부터 곡의 스피드는 급속도로 빨라짐과 동시에 펑 터트리는 식으로 과격한 세션이 흐르면서 마지막에 가서는 “나~ 나나~ 나나나나~” 하며 자연스럽게 송가 형식으로 뒤바뀌게 되니, 마치 귀로 감상하는 뮤지켤 한 편 같았다. 이 노래, 굉장히 중독성이 있었다. 내가 중학교 3학년 당시 학교 도서부에서 일하고 있었을 때, 친구들과 후배 학생들이 모여 있는 가운데 컴퓨터로 바로 이 비틀즈의 Hey Jude를 시험 삼아서 틀어봤다가, 나중에는 비틀즈 잘 모르는 아이들도 이 노래를 듣고서 단박에 반해버렸다는 그런 이야기. 결국 나 뿐만 아니라 그 당시 질풍노도를 겪고 있는 , 불확실한 미래를 두려워하며 마음이 변칙스러운 모든 중학생들이 Hey Jude의 음악과 닮아있었다.






야밤에 듣는 Hey Jude의 맛


시간은 1년 뒤로 거슬러 올라가 2002년, 서울 회기동 K대학교의 부속고등학교 1학년 재학시절의 이야기이다. 아마 그때가 꽤나 무더웠을 여름날이었던 것 같은데, 그래서 그런지 몰라도 나와 내 친동생, 그리고 어머니는 이렇게 더운 것은 못 참는 성격이라서 아버지 혼자 안방에 주무시게 한 다음에 시원하게 냉방을 해놓은 큰 방에서 세 식구가 다 함께 자는 일이 부지기수였다. 그런 가운데 어머니께서는 뭐 워낙 평소에 하시는 일이 많으시니까 금방 잠에 빠져들으셨지만, 나와 내 친동생은 4살 차이 간격으로 각각 17살, 그리고 13살 철부지 남자아이들이었기 때문에, 쉽게 쉽게 잠에 빠져드는 그런 순한 양 (?) 은 아니었다.



그래서 우리는 이렇게 기나긴 밤을 어떻게 하면 지새울 수 있을까 고민한 끝에, 아버지의 차량에서 빌린 비틀즈 베스트 앨범 테이프에 수록되어 있는 노래들을 감상하며 오손도손 이야기를 나누자 하였다. EMI, 계몽사 기획사에서 제작된 비틀즈 베스트 앨범은, 비록 지금 다시 그 테이프를 바라봤을 때에는 더는 이제 테이프 듣는 사람이 없으므로 마치 헌신짝 같아 보이지만, 2002년 그 당시만 하더라도 이 테이프는 나와 내 친동생에게 있어서 유일한 음악적 창구였다. 그렇게 우리 형제는 카세트 테이프에다가 이 앨범을 걸어놓은 다음에, 야밤에 듣는 음악이므로 이어폰을 각각 양쪽으로 나눠 가진 다음에 비틀즈 베스트 앨범에서 흘러나오는 Yesterday, Michelle, 그리고 Back In The USSR 등의 노래를 감상하였다.



이런 가운데, 역시 명곡은 모든 사람들이 다 공통적으로 알아본다는 그런 설이 진실이었을까. Hey Jude라는 7분대의 엄청난 러닝 타임의 노래를 듣는 타이밍이 오자, 내 친동생은 이 노래의 초반부를 감상하다가 갑자기 표정이 순간 비장해지기 시작하면서 나에게 “정말 좋은 곡이다” 라며 진실을 토로 (?) 하는 것이었다. 물론 Hey Jude 듣는 타이밍에 내 동생에게 이 노래에 대해 설명을 해주려고 했으나, 그렇게 내 동생에게 썰을 풀어넣기 (?) 도 전에 이미 내 동생은 Hey Jude가 엄청난 명곡임을 직감하게 되었고, 나는 그 순간부터 그 어떤 부가설명 필요 없이 그저 Hey Jude를 동생과 함께 무한 반복 감상하며 여름날의 밤을 지새웠다. 참고로 그 이후부터 내 동생에게 있어서 Hey Jude라는 노래란, 그 많고도 많은 비틀즈 명곡들 중에서 가장 짜릿하고 살 떨리는 그러한 ‘팝의 클래식’ 으로 통용된다.

 

 

 

 

 


 

Hey Jude 노래의 만들어진 계기, 그리고


무려 7분 4초대에 육박하는 엄청난 러닝 타임, 폴 매카트니의 다양한 보컬 변화를 캐치할 수 있는 그런 노래, 그리고 한 편의 라이브 무대를 보는 듯한 이 곡의 뮤직비디오 등등. Hey Jude는 어떻게 보면 비틀즈의 폴 매카트니가 이만큼 천재적인 작곡 실력을 갖췄다라는 방증을 하는 동시에, 라이벌 존 레넌 (John Lennon) 을 견제할 수 있는 사람은 오직 폴 매카트니 뿐이며, 또한 4명의 비틀즈 멤버들이 소소하게 꾸몄던 이전의 비틀즈 노래에서 이번에는 비틀즈 팬들, EMI 기획사 식구들, 그리고 전 세계 모든 비틀즈 마니아들이 하나가 되어, 합일 (合一) 이 되어 노래를 써내려가는 ‘공개적이고 협력적인’ 스타일로 뒤바뀌게 된 아주 역사적인 비틀즈 노래라고 말할 수 있겠다. 늘 들려오던 폴 매카트니의 주된 리드 보컬, 그리고 조지 해리슨과 존 레넌이 간간히 하모니를 넣어주고 뒤에서는 링고 스타가 드럼을 치는 단순한 포맷이 아니라, 그 자리에 있는 모두가 다 하나가 되어 Hey Jude를 이끌어나간다는 점에서 상당히 큰 의미가 있을 수 있다.



그런 협력적이고 공개적이며 모두가 다 하나 될 수 있는 노래 Hey Jude의 역사는, 결국 나 자신의 이기심이나 나 혼자만 생각하는 마인드가 아니라, 역지사지, 즉 남의 사정도 잘 알아가면서 적당히 오지랖 (?) 넓히며 남의 생각도 걱정해줄 수 있는 그러한 열린 마인드에서 출발한 노래였다. 이 자리를 빌어서 음악 리스너라면 모두가 다 알고 있는 Hey Jude의 탄생비화에 대해서 조금만 설명을 풀어보도록 하겠다. 존 레넌은 잘 알다시피 이혼한 경력이 있는데, 바로 그의 첫 번째 아내이자 한 살 연상인 신시아 (Cynthia) 와의 파혼이 그의 이혼경력에 포함되어 있다. 존 레넌과 신시아는 리버풀대학 동급년생으로 만나서 존 레넌이 끝없이 구애한 끝에 결혼하게 된 알콩달콩한 연상연하 커플이었고, 그 두 사람의 사이에서 나온 아들이 바로 그 유명한 세계적 뮤지션 줄리언 레넌 (Julian Lennon) 이었다. Hey Jude에서 그렇게 폴 매카트니가 외쳐대던 ‘Jude' 가 바로 줄리언 레넌이었던 것.



다름이 아니라 존 레넌과 신시아가 이혼서류에 도장을 찍고 남남이 되어버리자, 이 두 사람의 사이에서 풍부한 사랑을 받아온 줄리언 레넌으로서는 어찌할 도리가 없었다. 어린 아이였으므로, 당연히 아버지 어머니 두 사람이 갈라진 것에 대해 가장 큰 피해자였고, 또 그럼으로 해서 뮤지션인 아버지 밑에서 혹은 이혼한 어머니 밑에서 자라게 될 것이 뻔하므로 그 아이의 미래는 조금 우울할 수 밖에 없었다. 그런 존 레넌 가족의 비극을 옆에서 바로 지켜보게 된 존 레넌의 영원한 라이벌 폴 매카트니는, 풀이 죽어 있는 줄리언 레넌을 위해서 멋들어지게 노래 하나 써줬다. 바로 그것이 1968년 발매된 싱글 앨범 Revolution의 B사이드에 수록된 Hey Jude라는 노래이고, 잘 알다시피 이 노래가 말하고자 하는 것은 “줄리언, 아직 인생은 살만 하고, 인생을 개척해야할 장군감이 바로 너니까 힘을 내라!” 하는 폴 매카트니 삼촌의 감동어린, 그리고 뼈 있는 충고가 담겨진 그러한 비틀즈 명곡이다.



나는 개인적으로 이 Hey Jude의 비화에 대해 설명하는 팝 칼럼니스트들 중에서, 특히나 MBC FM <배철수의 음악캠프> 에서 우리들에게 항상 친근한 목소리로 음악을 선곡해주시는 DJ 배철수의 그 육성에 흘러나오는 Hey Jude 비화가 그렇게 좋을 수가 없다. 가끔 비틀즈 음악 이야기가 나올 때, 팝 칼럼니스트 임진모나 김태훈 등이 게스트로 출연하게 되면 Hey Jude의 탄생비화를 간간히 들을 수가 있는데, 항상 우리들에게 좋은 음악만 들려주고자 노력하고 또한 20년 이상 라디오를 지켜오면서 듣는 이에게 어떻게 말해야 따뜻하게 들려오는지 잘 알고 있는 배철수의 그 음색이, 폴 매카트니 삼촌의 애정어린 마음이 담긴 Hey Jude 탄생비화를 이야기할 때가 가장 멋있는 것 같다. 무언가 고정된 텍스트, 그리고 냉기가 흐르는 그러한 텍스트를 배철수의 따뜻한 음색으로 귀로 듣게 되니, 더욱 더 Hey Jude의 그 따뜻한 탄생비화가 몸으로, 그리고 마음으로 잘 전달되는 그런 느낌?

 

 

 

 

 


 

내 인생의 18번곡, Hey Jude


나에게 있어서 Hey Jude는 정말 시간을 초월하고, 공간을 초월하며, 그리고 기억을 초월한다. 지금 이렇게 글을 쓰고 있는 가운데 Hey Jude를 감상하게 되면, 나의 기억은 2001년 이 노래를 처음 들었던 그 충격적인 중 3 시절의 장면, 2002년 고 1 시절 동생과 함께 야밤에 감상했던 Hey Jude의 그 짜릿함, 그리고 이렇게 머리가 어느 정도 굵어진 다음에 감상하는 현재의 Hey Jude 등이 하나로 뭉쳐져서 나에게 말로 형언할 수 없는 시공초월의 감성으로 다가오게 된다. 그러면서 Hey Jude를 감상하며 신문을 읽고, 길거리를 지나다녔으며, 그리고 사랑의 실연에 아파하는 예전의 기억들까지 모두 다 싸그리 펼쳐졌다.



나는 음치이다. 아주 소문난 음치이다. 그렇기 때문에 굳이 이 노래 Hey Jude를 나의 18번곡으로 선택하지는 않겠다. 그러니까 뭐 이 노래를 노래방에서 자주 부르는 노래 리스트, 혹은 평소에 흥얼흥얼거리는 노래 이런 식으로 따지지 않겠다는 말씀이다. 나 자신이 얼마나 노래를 못 부르는지 잘 알기 때문에, Hey Jude를 가지고서 괜히 있어 보이려고, 혹은 유치하게 “내 인생 18번 곡이다~” 하며 깝죽대진 않겠다. 그렇지만 분명한 것은 Hey Jude는 나에게 있어서 처음으로 “노래로 하나가 되고”, 그리고 “이 노래에 담겨진 따스한 메시지가 있는” 그러한 감동적인 18번곡으로 기억될 전망이다.



나는 아직도 기억한다. Hey Jude의 뮤직비디오 장면에서, 비틀즈 멤버들이 EMI 사옥에 모인 여러 팬들과 주변 관계자들과 함께 어깨를 나란히 하며 “나~ 나나~ 나나나나~” 열창하는 장면을 말이다. 비틀즈 열혈 팬, 길거리 지나가다가 들르게 된 어느 흑인 아저씨, 그리고 예쁘장한 숙녀까지. 이 모든 평범한 사람들이 비틀즈와 어깨를 나란히 하였던, 비틀즈 노래 중에서 가장 인간미 넘치는 그러한 장면이었다.

Posted by 빛나는 돌
판 출력일...
상당히 육체적인 일입니다.
특히 수동식 CTP기계일 경우엔 더하죠.

판 넣고 빼는 것.
어찌보면 단순한 작업임에 분명합니다. 별 것 아니죠.

그런데... 의외로 심리적 요인이 많이 작용하는 일이기도 합니다.

맘이 복잡하거나 불안할 때.
딴 생각을 하고 있을 때.
몸이 고단할 때.

판은 분명히 잘못 나옵니다.
판을 대충 봤거나 출력시 주의사항을 지키지 않았거나 또는 또다른 이유에서건 말이죠.

경험상 심리적으로 안정되지 않은 상태에서 판을 뽑을 경우 머피의 법칙이 적용되는 것 같습니다.
잘못된 방향으로 일이 진행되는 경우가 상당히 많죠.

통계를 내보진 않았지만... 심리상태와 판의 질은 正의 방향을 그리는 것 아닌가하는 것이 저의 생각입니다.


요 몇 주간 심적으로 많이 힘들었습니다.
사직을 해야하는 것이 아닌가할 정도로 무진장 흔들렸습니다.
실제... 사직서를 제출할려고 윗 분에게 가기도 했었죠... 결국 내지는 못했지만요.

그래서 그런가 저번 주엔 야리판이 은근히 많이 나왔죠.


어제 밤에 일한 것의 결과가 오늘 나올 겁니다.

어제 밤에 컨디션은 꽤 좋았습니다.

하지만... 만일 다시 뽑은 판이 있다면 분명 아직 제 맘은 흔들리고 있는 중일겁니다.
분명히...

오늘 저녁 출근했을 때 어제의 성적표가 어떻게 나올지 궁금하네요...

스코어가 좋다면 별 문제 없겠지만...
나쁘다면... 많은 생각을 해봐야할 것 같습니다.

제 자신에 대해, 제 업무에 대해, 제 미래에 대해,  앞에 놓여진 언덕에 대해...
Posted by 빛나는 돌


 
사용자 삽입 이미지
      
         싸이질을 하다가 친구 미니홈피에
         들어갔더니 빌리조엘의 피아노맨이 메인음악으로
         나오고 있더군요.

         그 것을 듣자마자 저 역시 제 미니홈피에 메인음악으로
         피아노맨을 올려놨죠... ^^;

         올드 팝을 좋아하는 사람중에 빌리조엘을 좋아하는
         사람들이 꽤 될 겁니다.

         저 역시 그 중의 하나이구요.

         오랫만에 빌리조엘의 노래을 들으니 블로그에
         올려보고 싶어지더군요.

         추석입니다.
         빌리 조엘의 풍성한 목소리와 함께 즐거운 시간을
         보냈으면 합니다.
         



자... 그럼 그 유명한 피아노맨부터 시작해볼까요?




이 곡은 1973년도에 나온 곡입니다.
1973년도라... 제가 태어났던 해네요... ^^;
이 곡의 동영상으로 오리지널 비디오로 고를까하다가 음질이 그다지 별로더군요. 그래서 이 걸로 골랐습니다.

학생 때 너무나 좋아했던 곡입니다.
저희 형이 즐겨들었던 노래였는데 그 덕분에 저도 자주 들었었죠.

몇 일 전.... 너무 힘든 하루를 보냈었죠.
저에게도 힘들었고... 제 직장상사에게도 상처를 주었던 하루였죠.

이 노래를 듣는 순간... 힘든 것이 많이 사라지더군요.
들으시면 힘이 되실 겁니다.


그 다음은 Just the way you are 입니다.



어렸을 적에 밤에 라디오를 듣으면서 공부를 하고 있을 때면 올드 팝 관련된 방송에서 한 번씩은 나왔던 곡이죠.
빌리 조엘의 감미로운 목소리가 일품인 곡입니다.



다음은 Honesty 입니다.
피아노 맨과 함께 빌리 조엘의 노래 중 양대산맥(?)이죠...




이제 할아버지가 된 빌리 조엘인데도 목청이 너무나 좋습니다.
어떻게 목을 관리했는지 모르겠지만...
대단하다는 생각밖엔 들지 않습니다. ㅎㅎㅎ

우리나라에도 이렇게 나이가 들어서도 열정적인 공연을 할 수 있는 가수들이 많아졌으면 싶습니다.
제가 어렸을 때 좋아했던 가수들이 육십, 칠십살이 되어서도 공연장에서 멋있는 모습을 보여주길 기대해보며...
Posted by 빛나는 돌

DEPAPEPE

2009. 9. 21. 00:55


 
      
         DEPAPEPE를 접한 건 몇 달 전 후배 결혼식에
         갔을 때였습니다.

         그 후배 친구들이 DEPAPEPE의 Wedding bell를 
         연주하더군요.

         그 걸 들으면서 와~ 했었죠.
         어코스틱 기타로 클래식기타 느낌이 나게
         연주했었거든요.

         그 후부터 기분이 우울할 땐 가끔 DEPAPEPE의
         연주를 듣곤 했었죠.

         경쾌하면서도 나름의 음악해석이 좋았거든요.

         우리나라에서도 DEPAPEPE의 음악이 여러 경로로 
         나오고는 있지만 DEPAPEPE를 아는 사람은 그다지
         많지 않더군요.

         하지만 들어보시면 DEPAPEPE 팬이 되실겁니다
.



자... 그럼 Wedding bell 부터 시작해 볼까요?




잔잔하게 울리는 기타음이 꽤 좋죠?

언젠가 TV 연속극에서 배경음악으로 들어본 것 같은데 어떤 연속극이였는지는 기억나지 않네요...
아마 DEPAPEPE은 몰라도 이 곡을 들어보신 분은 많으실 것 같습니다.

그리고...
다음 곡은 CANON입니다.

이 곡은 꽤 유명한 곡이죠.
물론 클래식으로도 유명하죠. 한국인이 좋아하는 클래식중에 당당히 순위에 올라갈만큼 말입니다.

또한 몇 년전 임정현씨가 락버전으로 만들어 유튜브에 올려서 특히 더 유명해졌죠.
나중에 CANON의 각기 다른 여러 버전을 포스팅해볼까도 생각중입니다... ^^;

여기서는 DEPAPEPE의 특유의 경쾌한 리듬과 선율을 느껴보도록 하겠습니다.




다음으로 START를 골라봤습니다.

경쾌한 리듬이 시작이란 의미를 잘 살렸다고 생각해봅니다.
특히 아침에 들어보시면 흥겹게 디파페페의 즐거움과 함께 일을 시작하실 수가 있으실 겁니다... ^^;




Posted by 빛나는 돌

 
     이 번 글은 CTP출력실에서 사용하고 있는 maya와 bora 현상기의 operator setting 값을 바꿀 때 필요한 
     비밀번호를 찾을 수 있는 웹프로그램(php를 이용한)에 대한 글입니다.

     비밀번호를 찾기위해서 맨날 날짜, 시간을 종이쪼가리에서 찾아서 입력해주어야 하는 번거로움에서 벗어나기 위한
     귀차니즘의 소산으로 만들어봤습니다.

     본 프로그램은 자유롭게 사용가능합니다. 코드 수정 및 사용 모두 맘대로 하셔도 됩니다.
     하지만, 너무나 허접한 것이라 저외의 다른 사람들이 실제 사용할지 의문스럽긴 합니다.
    




이번 글은 자바스크립트와 php프로그래밍에 대한 지식이 있으신 분들을 기준으로 써봤습니다.

물론... 해당 프로그램만 단순히 사용하실 분이시라면 관계없습니다만 소스를 수정하고자 하실 분이 만일 계시다면 자바스크립트과 php에 대한 기본적인 지식이 필요하기 때문입니다. ^^;




maya와 bora현상기를 사용해보신 분이시라면 사용하기 꽤 편한 현상기라는 생각을 해보실 겁니다.
에러도 그다지 많이 나지 않고 현상기 청소만 제때 잘 해주게되면 판 나오는 것도 깔끔하게 잘 나오곤 하죠.

물론... 현상액 교체시 이전에 사용했던 현상액이 잘 안 빠져나가는 문제등 자질구레한 문제들은 있기도 하고 어떤 현상기처럼 현상기 현재상태에 대해 아주 자세하게 리포팅하지는 않지만 CTP판을 현상하는데는 이만한 놈도 드물다는 생각을 하곤 합니다.

그런데... 아주 짜증나고 신경쓰이는 구석이 있으니...
바로 현상조건(온도/현상타임/보충액 input량등)을 변경해줄 수 있는 operator setting메뉴로 들어갈려면 비밀번호를 입력해야한다는 점입니다.

왜 이런 비밀번호를 만들었는지 아쉽다는 말이 절로 나오는 대목입니다.
아마도, 제조사에선 현상조건이 자주 바뀌지 않을 것으로 생각해서 비밀번호를 걸어서 현상조건을 바꿀 때 한 번 더 생각하라는 뜻에서 이런 비밀번호를 입력하게끔 한 것 같습니다만...

그건 제판실의 업무에 대해 익숙하지 않으신 분들의 아이디어라는 생각이 듭니다.

여러 회사의 판을 사용하는 경우나 같은 회사의 판이라도 사이즈/제조일자에 따라 현상조건은 달라질 수 있게 되기에 현상조건을 변경하기 위한 비밀번호을 두는 것은 판 출력자가 자유롭게 현상조건을 바꿀 수 없는 제약조건이 되기 때문입니다.

그리하야... 나름 귀차니즘의 충족과 저의 잔머리를 응용해 초간단 비밀번호 생성 프로그램을 만들어봤습니다.

 
  
  간단하죠?  별 건 없습니다. 

  pc의 현재시간과 현상기 비밀번호 그리고 비밀번호를
  생성하기 위해 웹서버에 있는 php파일에 접근했을 때의
  웹서버의 시간을 표시하고 있습니다.

  본 프로그램은 서버/클라이언트 방식의 웹프로그램 방식을
  활용해서 구현이 됩니다.

  아래 파일을 다운 받으신 후 압축을 푸신 후
  hyunsang.htm파일을 실행시켜보시면 왼쪽에서 보시는
  모양의 화면이 나타날 것입니다.


(덧글) 윈도우 XP 서비스팩2가 설치된 PC에서는 보안상 액티브 컨텐츠를 표시제한할 수 있습니다.
 하지만... 실제 클라이언트 PC에는 아무런 영향을 주지 않는 내용만이 있을 뿐이니 주소창 바로 밑에 노랑색 알림줄을 클릭하신후 제한된 컨텐츠를 허용항목을 클릭하시면 내용을 보실 수 있으실 겁니다...  ^^;



자... 그럼 지금부터 내부 소스에 대해 이야길 나누어 보겠습니다.

본 프로그램은 디자인(UI)을 담고 있는 hyunsang.htm파일과 웹서버와 비동기적으로 통신할 수 있도록 하는 ajax.js, 그리고
웹서버내에 있어야 할 hyunsang.php파일로 구성되어 있는 아주 간단한 프로그램입니다.

자... 그럼 hyunsang.htm파일부터 시작해 볼까요?



기본적인 HTML태그와 자바스크립트를 아시는 분이시라면 쉽게 이해가 되실 겁니다.
dHTML태그부분에 자바스크립트로 데이타를 불러와서 넣어주는 구문입니다.


자... 그럼 php파일과 접속해서 데이타를 비동기적으로 가져오는 ajax.js입니다.



ajax를 접해보신 분이시라면 전혀 어렵지 않은 "교과서"적인 소스란 것을 아시게 될 겁니다.

다만... 참고로 말씀드리자면...
만일 웹서버를 운영하고 계시다면 압축파일 속에 있는 hyunsang.php파일을 해당 웹서버의 가상디렉토리등에
넣어놓신 후 hyunsang.htm의 68번째 줄의 주소를 해당 파일의 주소로 바꿔주시면 해당 웹서버의 파일로 통신하게
될 것입니다.

지금 제가 업무에 사용하고 있는 소스는 이 것과는 좀 다르게 정돈을 다시 해서 제 입맛에 맞게 수정을 한 소스입니다.
현재 사용하고 있는 소스를 그대로 보여드리기엔 좀 그렇기에 초기버전으로 보여드립니다..


자... 마지막으로 php부분입니다.
hyunsang.htm이나 ajax.js에서 해당 로직을 구현하지 않은 이유는 각각의 클라이언트 PC의 시간이 다 다를 수 있기 때문입니다.

현상기의 시간을 웹서버의 시간과 일치시킨 후 서버에 있는 php파일로 비밀번호를 가져온다면 비밀번호의 변동 시간에 맞게 달라지는 비밀번호를 가져올 수가 있을 것이니까요.



뭐... 간단하죠?
무진장 간단해서 글을 보시다 짜증이 나실지도 모르겠습니다.

웹 프로그램들은 어플리케이션 프로그램의 push와 같은 기능을 정확히 구현할 수는 없습니다.
그렇게 만들려면 비주얼베이직이나 비주얼 C++로 activeX 프로그램을 제작해서 HTML파일에 임베드시키는 방식으로 해야 하겠습니다만 이런 단순한 것을 가지고 굳이 activeX프로그램까지 만들 필요까지는 없을 것 같아서 그냥 간단히 만들어봤습니다.

아무튼... 소스는 이렇습니다...

스크롤바가 너무 길어졌네요.
간단한 것을 이렇게 길게 만드는 것도 일종의 재주(?)가 아닐까 싶습니다... ㅠ_ㅠ...
Posted by 빛나는 돌

카테고리

분류 전체보기 (135)
출력이야기... (20)
출판단지.... (1)
사는 이야기... (1)
잡동사니 (8)
음악 (23)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

달력

«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

글 보관함