책장2008. 12. 8. 10:32



2008.12.06 ★★★★★

너무나도 좋은책이라고 감히 말하고 싶다.
아이를 "잘" 키워보고 싶은 부모라면 꼭 한번 읽어야 할 책.
이전에 읽었던 "아이를 잘키운다는것"이 의학적으로 설명된 책이라면
이책은 푸름이와 초록이라는 두아이를 키운 아빠와 엄마가 직접 쓴 경험에 의한 육아서라고 해야할것이다.

제목에서 나와있듯이.
아이를 키우는 가장 중요한 키워드는 "배려"라고 말한다.
경험한 만큼 안다는 내용에 철저히 공감하면서.
아이에게 많은 경험을 해줄수 있도록 푸름이 아버지는 아이의 눈높이에 맞추어 "배려" 하고 있다.

조금있으면 현준이가. 20개월.
아직은 초보이며, 많이 부족한 부모이지만..
그래도 이렇게 책을 통해 배워가며 또 나를 바꿔가며 현준이를 키워야 하겠지...
조금더 현준이의 눈높이에 맞추어 배려하는 부모가 되어야 겠다.
Posted by 항아리고미
나는야 직딩맘/놀이2008. 12. 5. 11:26
낚시놀이

준비물 : 단어카드, 클립, 장난감 낚시대(없으면 나무젓가락으로 만드세요), U자 자석

▶ 놀이방법
① 단어카드에 클립을 끼우고 낚시대에 U자 자석을 매달아 아이와 낚시 놀이를 합니다.
② 식구 수대로 번갈아 가며 "메뚜기 잡아" 하면 낚시로 잡는 겁니다.
남자 애들이라면 좋아할거예요.





빨래줄에 단어 빨래 널기 놀이

준비물 : 색종이, 긴 줄, 색연필, 가위, 연필

▶ 놀이방법
① 색종이에 옷을 그려서 가위로 오린다. 셔츠나 바지를 접을 줄 안다면 종이접기를 해도 좋다. 색종이로 만든 옷에 단어를 써 넣는다.
② 긴 줄은 아이들이 다녀도 걸리지 않을 곳에 아이 눈높이정도로 메어 준다.
③ ‘현정아, 엄마랑 빨래 널자, 빨강색을 먼저 널어주고, 노랑색도 널고, 검정색도 널자“라고 말하면서 엄마가 색종이 옷을 빨래줄에 널어주면서 단어를 읽어준다.
④ 혼자서도 해보게 하고 놀이를 반복해서 한다.



 

시장 바구니 속에 야채단어

시장놀이를 통해 물건을 사고팔면서 구매자와 판매자를 이해하게 된다.
이 시장놀이에 적합한 단어카드를 준비해서 익힌다면 금상첨화.
야채카드 말고도 시장에서 파는 물건의 단어를 활용해도 된다.

준비물 :  야채 단어카드, 야채 그림카드, 작은 상자, 노끈, 색종이, 송곳, 가위, 풀

▶ 놀이방법
① 작은 상자에 색종이로 예쁘게 꾸며서 시장바구니를 만들어 준다. 양쪽을 각각 송곳으로 구멍을 뚫어서 손잡이를 만들어 준다.
② 아이는 야채장사로 변장하고 야채(그림카드)를 팔고 엄마는 아이에게 단어를 내보이면서 야채를 하나씩 산다. 아이와 역할을 바꿔서 놀이를 해본다.
③ 엄마가 가까운 수퍼를 갈때에도 아이에게 장난감 시장바구니를 들게하고 단어카드를 넣어서 생활속에 활용해 본다.


Posted by 항아리고미
ORACLE Tip2008. 12. 3. 00:56
파일이 저장될 디렉토리 설정하기.


1. sys 나 system user 로 접속한다.

$ sqlplus /nolog
SQL> conn sys/manager
Connected.

2. directory 를 생성한다.
SQL> create directory work_dir as '/work';
Directory created.

3. 생성된 directory 에 대한 read 권한을 준다.
SQL> grant read on directory work_dir to public;
Grant succeeded.

SQL> grant read on directory work_dir to public;
Grant succeeded.

4. 생성한 디렉토리 조회
SQL> select * from dba_directories;


소스보기 프로시져 생성하기


1. 프로시져 소스를 파일로 받는 함수 생성하기.


create or replace procedure cr_proc_script(p_pn varchar2)
is
file_id utl_file.file_type;
cursor c1(v_pn varchar2) is select name, text, line from user_source
where upper(name) like v_pn and type = 'PROCEDURE' order by name,line;
v_name varchar2(30) := ' ';
r_name varchar2(30);
r_text varchar2(4000);
r_line number;
v_line number := 0;

begin

open c1(p_pn);
loop
fetch c1 into r_name, r_text, r_line;
exit when c1%notfound;

if r_name != v_name then

    file_id :=
    utl_file.fopen('WORK_DIR','cr_'||r_name||'.sql', 'w');
    utl_file.put(file_id, 'create or replace ');

    select max(line) into v_line from user_source
    where name = r_name and type = 'PROCEDURE';

end if;

utl_file.put_line(file_id, r_text);
v_name := r_name;

if (r_name = v_name) and (r_line = v_line) then
    utl_file.put_line(file_id, '/');
    utl_file.fclose(file_id);
end if;

end loop;
close c1;

end;
/


2. 프로시져 소스 파일로 받기 사용 방법

- 특정 프로시져 파일로 받기.
SQL> exec cr_proc_script('프로시져명');

- user가 가지고 있는 모든 procedure의 source을 보고자 할때
SQL> exec cr_proc_script('%');


3. Trigger Source 파일로 받는 함수 생성하기.

create or replace procedure cr_trg_script(p_tn varchar2)
is
file_id utl_file.file_type;
cursor c1(v_tn varchar2) is select trigger_name, description, trigger_body
from user_triggers
where upper(trigger_name) like v_tn ;
r_trg_name varchar2(30);
r_description varchar2(2000);
r_trg_body varchar2(32000);

begin

open c1(p_tn);
loop
fetch c1 into r_trg_name, r_description, r_trg_body;
exit when c1%notfound;

file_id :=
utl_file.fopen('/mnt3/rctest80/tool', 'cr_'||r_trg_name||'.sql', 'w');
utl_file.put(file_id, 'create or replace trigger ');

utl_file.put_line(file_id, r_description);
utl_file.put_line(file_id, r_trg_body );

utl_file.put_line(file_id, '/');
utl_file.fclose(file_id);

end loop;
close c1;

end;
/


4. 트리거 소스 파일로 받기 사용 방법

- 특정 트리거 소스 파일로 받기.
SQL> exec cr_trg_script('트리거명');

- user가 가지고 있는 모든 trigger의 source을 보고자 할때
SQL> exec cr_trg_script('%');

Posted by 항아리고미
1. 양념통 뒤지기.

가스렌지 아래 싱크대에 양념을 모아놨다.
간장, 설탕, 소금, 기름 등등.
여기가 현준이가 주로 사고치는 곳이다.

주로 조심해야 하는 양념들로는 소금, 맛소금, 설탕 등이다.
양념이 들어있는 통을 통째로 엎어놓고 손으로 흐트러 트리기.
이것이 가장 뒷처리가 곤란한 현준이의 대형사고다.  --;;

요즘은 어머님 몰래 양념통을 하나 하나 꺼내 냄새맡기 놀이에 빠져있다.
우선은 고소한 참기름 꺼내 냄새 맡고, "이야~ 고소하다~~"
간장도 꺼내 "아이 짜네~~~"
식초도 꺼내 "아이 셔~"
물엿, 올리브유, 맛술, 등등... 냄새를 맡아보는 양념의 가짓수가 나날이 늘어간다.
이것도 어느정도 하고는 "이제 그만~" 해줘야지
안그러면 무한루프다. --;

여러가지 냄새를 맡아보게 하는것도 좋은 교육이겠거니...  에혀~

2. 정수기 물먹기.

한번은 내가 설겆이를 하고 있는데.
자꾸 매달려서 아빠가 싱크대 위에 올려놓은거가 계기가 되어
한동안 정수기 물먹기 놀이에 빠져 있었다.

아빠가 정수기에서 나오는 물을 입에대고 먹으면
그게 재밌는지 깔깔대고 웃는다.~
현준이도 혼자 해보고  좋아라 웃고..
아빠보고 또 먹으라고 하고

그날 아빤 정수기 물을 엄마가 설겆이를 다 할 동안 먹어야 했다. ㅋㅋ


3. 설겆이.

싱크대 위가 궁금한 현준이는..
싱크대 아래 문짝을 열고 그위에 올라서야만 간신히 그 위가 보인다.
설겆이를 해야하는데..  너무나 애처롭게 싱크대를 붙잡고 늘어지는 현준이에게
"현준아 그렇게 하면 아야하니깐 의자가지고 와서 있어~"
그랬더니 오마이갓. 정말 의자를 가지고 온다..   하여튼 힘하나는 장사다. ㅋㅋ
식탁 의자를 찌익~  밀고 오는 소리가 들린다.

설겆이를 하는 내내.
새 컵을 꺼내서 한참 수도꼭지에서 흐르는 물가지고 장난을 치고선..
"이제 그만~"  하면 가지고 놀던 컵을 다시 설겆이 하라고 던져 넣는다.
이러기를 서너번 마냥 놀고 있을 기세다.

엄마의 엄청난 힘으로.
현준이를 번쩍 안아 올려 다른곳으로 데려가면
자기 놀던거 그만두게 했다고 어찌나 서럽게 울어대는지..
난 금방 나쁜엄마가 된다.  아수.. --;;


4. 싱크대 서랍뒤지기

현준이의 마지막 부엌 놀이이다.

엄마가 밥하느라 현준이를 못보고 있는 틈을타
서랍을 확열어 제끼고 일회용 비닐장갑이나 일회용 비닐봉투가 들어있는걸 몽땅 뽑아버린다.
랩을 풀어해쳐 끌기도 하고.

아수 사고뭉치 헌뎅구루.





Posted by 항아리고미
ORACLE Tip2008. 11. 25. 09:38

아래와 같이 partition table을 생성한다.

SQL> create table part_tbl (
in_date number primary key ,
empno number,
ename varchar2(20),
job varchar2(20)
         )
        partition by range (in_date) (
partition part_tbl_03 values less than (20000331) tablespace pts_03,
partition part_tbl_04 values less than (20000430) tablespace pts_04,
partition part_tbl_05 values less than (20000531) tablespace pts_05,
partition part_tbl_06 values less than (20000630) tablespace pts_06,
partition part_tbl_07 values less than (20000731) tablespace pts_07,
partition part_tbl_08 values less than (20000831) tablespace pts_08,
partition part_tbl_09 values less than (20000930) tablespace pts_09,
partition part_tbl_10 values less than (20001031) tablespace pts_10
        );

1. partition 을 add하는 방법

11월과 12월에 대해 partition을 add하고 싶은 경우 다음과 같이 할 수 있다.

SQL> alter table part_tbl add partition part_tbl_11
values less than (20001130) tablespace pts_11;

SQL> alter table part_tbl add partition part_tbl_12
values less than (20001231) tablespace pts_12;

2. 특정 partition 을 삭제하는 방법

8월에 해당하는 partition을 없애고 싶은 경우는 다음과 같이 실행한다.

SQL> alter table part_tbl drop partition part_tbl_08;

drop된 후에 새로 8월에 해당하는 데이타가 입력되면
9월의 partition이 less then (20000930) 으로 되어 있으므로
9월에 해당하는 partition에 저장된다.

3. partition을 나누는 방법

1월, 2월에 해당하는 partition을 생성하려면 partition을
add하는 것으로는 불가능하고 기존의 partition에서 split 해야 한다.

SQL> alter table part_tbl split partition part_tbl_03
at (20000229)
into (partition part_tbl_02 tablespace pts_02,
partition part_tbl_03_1 tablespace pts_03);

위와 같이 하면 기존의 partition에서 2월29일을 기준으로 2월과 3월로
partition이 나눈다. 그리고 나서 다시 split 해야한다.

SQL> alter table part_tbl split partition part_tbl_02
at (20000131)
into (partition part_tbl_01 tablespace pts_01,
partition part_tbl_02_1 tablespace pts_02);

4. partition name을 변경하는 방법

partition name 을 바꾸고 싶다면 다음과 같이 실행한다.

SQL> alter table part_tbl rename partition part_tbl_02_1 to part_tbl_02;
SQL> alter table part_tbl rename partition part_tbl_03_1 to part_tbl_03;

5. partition의 tablespace를 옮기는 방법

partition part_tbl_10을 저장하는 tablespace를 pts_10 에서 pts_10_1로
바꾸고 싶은 경우 아래와 같은 command를 사용한다.

SQL> alter table part_tbl move partition part_tbl_10
tablespace pts_10_1 nologging;

6. 특정 partition의 data를 truncate하는 방법

partition의 data를 모두 삭제하려면 truncate하는 방법을 사용할 수가
있는 데, truncate는 rollback 이 불가능하며 특정 partition 전체를
삭제하므로 주의하여 사용하여야 한다.

SQL> alter table part_tbl truncate partition part_tbl_02;

7. Partition table의 물리적인 속성 변경

partition table은 특정 partition의 속성만 변경할 수 있고,
table의 속성을 변경하여 전체 partition에 대해 동일한 변경을 할 수 있다.

SQL> alter table part_tbl storage( next 10M);
-> part_tbl 의 모든 partition의 next 값이 변경된다.

SQL> alter table part_tbl modify partition part_tbl_05
storage ( maxextents 1000 );
-> part_tbl_05 partition의 maxextents 값만 변경한다.

8. Index의 관리

위와 같이 partition table 관련 작업을 한 후에는 table에 걸려 있는
local(partitioned) index 나 global index를 반드시 rebuild해 주어야 한다.

특정 partition의 index를 rebuild 하려면

SQL> alter index ind_part_tbl rebuild partition i_part_tbl_02;

그리고 global index를 rebuild하려면

SQL> alter index part_tbl_pk rebuild;

출처 : OTN Forums

Posted by 항아리고미

* 치킨 데리야끼
주재료 : 닭(1/2)
고기밑간 : 소금, 후춧가루, 올리브유
양념장재료 : 멸치육수(10), 간장(8), 맛술(6), 흑설탕(2), 물엿(2), 물(4), 생강가루
닭반마리 남은거 소금+후춧가루+올리브유에 재워놓고.
달궈진 후라이팬에 닭을 넣고 익히다가
그릇바꿔서 데리야끼 소스 넣고 조려준다.



> 주말에 아가씨네 식구가 와서 했는데..  생각보다 맛났다.
> 닭이 반마리 밖에 남지 않아서..  양이 조금 부족했으나..
> 원래 음식은 아쉬운듯 먹어야 더 맛있는법.. ㅋㅋ



Posted by 항아리고미


퇴근을 하고 돌아가면 저녁시간.
어머님과 아버님은 오늘 현준이가 벌여놓았던 일들을 말씀해주신다.
어제는 현준이의 만행 두가지를 말씀해 주셨다.

첫번째 만행.
목욕을 시켜놓고 옷을 입히고
잠깐 무얼 하셨는데
현준이가 없어서 찾아보니 옷을 입은채로 목욕탕에 들어가 있더란...  ㅋㅋㅋ

두번째 만행.   이 만행으로 어머니는 엄청 놀라셨다고... 
잠깐 무얼하셨는데..  현준이가 없더랜다.
평상시 구석탱이 숨어서 놀때가 많길래
현준아~ 이러면서 찾으시기 시작한 어머님. 
이러저리 찾아봐도 도통 뵈질 않아서 덜컥 겁이 나셨더란다.

어머니는 하다못해 옷걸이뒤, 컴퓨터책상아래, 냉장고안, 싱크대안, 세탁기안, 침대아래, 장농속을 몇번이나 찾으셨단다.
식은땀도 나기 시작하신 어머님...
현준이를 부르는 어머님의 목소리는 이미 이성을 잃어 악에 가까워졌는데...
(현준이를 찾았던 시간이 대략 10분 정도 되었다고함.. )

이때..  어디선가 들리는 발자국 소리.
삼촌방에서 거실로 현준이가 나오드란다..

분명히 삼촌방 구석구석을 찾으셨다는 어머님..
아마 현준이는 할머니랑 숨바꼭질을 했던 모양이다..   혼자만..
결국 할머니가 못찾으시니 시시해져서 나왔던 거겠지.. ㅋㅋ

어머님께 그랬다.
"어머님 담부터는 현준아~ 만 부르지 마시고 현준아 할머니랑 어야 갈까?  이렇게 물어보세요"
"그럼 응~  하고 답합니다.. "

Posted by 항아리고미
책장2008. 11. 20. 11:49


2008.11. 20 ★★★★★

육아에 대해 어디다 물어볼데는 없고..
소아정신과 분야 명의가 쓴 책이라 해서 함 읽어봤다.

과학적인 근거와 치료한 실사례를 들어 핵심적인 이야기들만 설명했기 때문에
이해도 쉽고 공감대도 형성되었다.
나의 생각없는 행동이 아이에게 어떻게 전달되는지 되새겨 보게된 책이다.
행복한 아이를 키워보고 싶은 부모라면 한번 읽어 볼 만한 책이다. 
우리 신랑에게도 강추!강추!

아이의 감정 경험에 대한 부모의 원칙은 '반응적 경청'이어야 합니다.
아이의 말을 귀기울여 들어주고, 아이의 감정에 적극적으로 공감한 뒤 반드시 반응해 주어야 합니다.
- 본문중에 -

과연 나는 내 아이에게 반응적 경청을 잘 해주고 있는것인가?
항상 나에게 물어야 할 말인거 같다.
Posted by 항아리고미
ORACLE Tip2008. 11. 19. 14:48


현재 돌고있는 SQL이 언제 끝나는지 예측할 수 있다.

v$session_longops view를 통해 알수 있는데 이 view가 보이지 않으면
DBMS_APPLICATION_INFO package의 SET_SESSION_LOGOPS procedure를 돌리면 된다.

Oracle 8.0 부터 제공되고 있는 v$session_longops 는 단일 long running operation에 대한 진행 상태를 operatoin별로 제공해 주는 view로 DSS, DW와 같은 long running job이 많은 system에서는 유용한 정보를 확인할 수 있는 table이다.

* 이 dynamic view에서 다루어지는 operation들에는 다음의 것들이 있다.
- Archiving
- Rman Backup and Restore
- Parallel Query
- Recovery ( Crash and Media )
- Full Table scans (10000 blocks 이상의 full table scan을 long operation으로 간주한다.)
- Sorting
- Analyze using DBMS_STATS Not seen yet
- Hash Cluster Creation
- Hash Joins Phase 2

* v$session_longops COLUMNS
- SID : Session identifier
- SERIAL# : Session serial number
- OPNAME : The operation name
- TARGET : The object on which the operation is carried out
- TARGET_DESC : Description of the target
- SOFAR : The units of work done so far
- TOTALWORK : The total units of work
- UNITS : The units of measurement
- START_TIME : The starting time of operation
- LAST_UPDATE_TIME : Time when statistics last updated
- ELAPSED_SECONDS : The number of elapsed seconds from the start of operations
- CONTEXT : Context
- MESSAGE : Statistics summary message

사용예 >
select *
from v$session_longops;

-- 특정 유저가 사용한 작업만을 보고자 할때.
select *
from v$session_longops
where (sid, serial#) in (select sid, serial# from v$session  where username = 'SCOTT');

-- 시작시간과 현재의 진행상태를 보고자 할때.
select sid, serial#, opname, to_char(start_time,'HH24:MI:SS') as START_TIME, (sofar/totalwork)*100 as percent_complete
from v$session_longops

Posted by 항아리고미

"훔머~"
입을 쑥내밀며 현준이가 하는말.
숨바꼭질 하자는 얘기다.

처음에는 "훔머~" 하는 소리가 "숨어~" 이소리란걸 알아차렸을때 엄마의 기쁨이란...  ^^
계속 듣게되니 따라도 하게된건가..?
현준이의 "훔머~"는 입을 쑥 내밀고 마치 숨을 내쉬듯 얘기한다.
내가 얘기할때 입을 쑥 내밀고 얘기했던가..??  ㅋㅋ

벽장속에 숨은 현준이. (이젠 혼자서도 잘 숨어 있는다.)
아빠가 찾는다.
"현준아~ 현준아~"
물론 여기까지는 대답을 안한고 가만 숨어 있는 현준이...
그러나.. 
그뒤로 이어지는 아빠의 물음에는 뭐든 답하는 현준이... 
아 이게 무슨 재미없는 숨바꼭질이란 말인가..?

그래도 당분간 우리 현준이의 숨바꼭질은 계속될것 같다~ ㅋㅋ






Posted by 항아리고미