¾È±Ô °øºÎ¹æ

MS-SQL > Transaction & Lock - Æ®·£Àè¼Ç ó¸®

µî·ÏÀÏ : 2017-07-03 19:40 Á¶È¸¼ö : 52,630

¾È³Ä¼¼¿©. ¿À´ÃÀº ½ÇÁ¦ ¿¹¹®À» º¸¸é¼­ ÇϳªÇϳª °°ÀÌ º¸µµ·Ï ÇÏ°Ú½À´Ï´Ù.
 
  9.2.1. @@trancount

¸ÕÀú ´Ù¸¥ 󸮿¡ ¾Õ¼­¼­ @@trancount ¶ó´Â ±Û·Î¹ú º¯¼ö¿¡ ´ëÇؼ­ ¾Ë¾Æ¾ß ÇÒ°Í °°³×¿©.. ^^
À̺¯¼ö´Â ¹ú½á ÀúÀåÇÁ·Î½ÃÁ®ÀÇ ±âº»¹®¹ý(º¯¼ö¼±¾ð) ¿¡¼­ º¸±¸ ³Ñ¾î ¿Ô´ø ³»¿ëÀ̳׿ä.

@@trancount
         
Æ®·£Àè¼ÇÀÇ ÁßøµÈ »óŸ¦ °¡Áö°í ÀÖ´Â º¯¼öÀÔ´Ï´Ù.
Æ®·£Àè¼Ç ¹Û¿¡ ÀÖÀ¸¸é 0, Æ®·£Á§¼ÇÀÌ ÁøÇàÁßÀ̸é,,, 1 À̶õ °ªÀ» °¡Áö°í ÀÖ´ä´Ï´Ù.

  9.2.2. Æ®·£Àè¼ÇÀÇ ½ÃÀÛ°ú ³¡.
 
±×·³ ¿¹Á¦¸¦ Çϳª ÇØ º¸Á®.??




À§ÀÇ ¿¹Á¦¸¦ º¸¸é¼­ Çϳª Çϳª º¸µµ·Ï ÇÏ°Ú½À´Ï´Ù.
ÀÏ´Ü À§¿¡¼­ º¸¸é create table tran1(id int,trancnt int) tran1 Å×À̺íÀ» ¸¸µé¾ú½À´Ï´Ù.
SELECT @@TRANCOUNT ¸í·ÉÀ» ÅëÇؼ­ @@TRANCOUNT °ªÀ» »Ì¾Æº¾´Ï´Ù... °ªÀº 0ÀÌ Ãâ·ÂµË´Ï´Ù.
Á÷Á¢Çغ¸¼¼¿ä.

È®½ÇÇÑ°¡¿©???

±×·±ÈÄ

INSERT TRAN1 VALUES(1,@@TRANCOUNT) ¸¦ ÅëÇØ °ªÀ» ÀÔ·ÂÇß½À´Ï´Ù.

Å×ÀÌºí¿¡ °ªÀº ¸ð°¡ µé¾î °¥±î¿©? '0'°ªÀÌ µé¾î°¥±î¿©???? ¾Æ´Õ´Ï´Ù.

'1'°ªÀÌ µé¾î°©´Ï´Ù.

SELECT * FROM TRAN1¸¦ ÅëÇØ 봑ÀÎÇØ º¸½Ã¸é ¾Ë°ÚÁö¸¸, È®½ÇÇϽÃÁ®?????
¿©·¯ºÐÀÌ º¸¼ÅµÎ ¾Æ½Ã°ÚÁö¸¸ Äõ¸® °¢°¢ÀÇ ´Ü°è¿¡¼­ È®ÀÎÇØ º»°á°ú 0°ªÀ» °¡Áö°í ÀÖ½À´Ï´Ù.
ÇÏÁö¸¸ TRAN1 Å×ÀÌºí¿¡ ÀúÀåµÈ 1ÀÇ °ªÀ» º¸¸é ¸ðµç ÇϳªÀÇ Æ®·£Àè¼Ç³»¿¡¼­ INSERT µÇ¾úÀ½À»
¾Ë¼öÀÖ½À´Ï´Ù.

Áï, SQL ¼­¹ö¿¡¼­´Â ±âº»ÀûÀ¸·Î µ¥ÀÌÅ͸¦ ¼öÁ¤ÇÏ´Â ¸ðµç Äõ¸®´Â ÀÚü·Î ÇϳªÀÇ Æ®·£Àè¼Ç ´ÜÀ§°¡
µÇ¸ç À§ÀÇ ¿¹Á¦¿Í °°Àº Äõ¸®´Â ³»ºÎÀûÀ¸·Î ¾Æ·¡¿Í °°Àº Çü½ÄÀ¸·Î 󸮵Ǿî Áý´Ï´Ù.

     


À§ÀÇ ¿¹Á¦¸¦ º¸¸é¼­ Çϳª Çϳª º¸µµ·Ï ÇÏ°Ú½À´Ï´Ù.
ÀÏ´Ü À§¿¡¼­ º¸¸é create table tran1(id int,trancnt int) tran1 Å×À̺íÀ» ¸¸µé¾ú½À´Ï´Ù.
SELECT @@TRANCOUNT ¸í·ÉÀ» ÅëÇؼ­ @@TRANCOUNT °ªÀ» »Ì¾Æº¾´Ï´Ù... °ªÀº 0ÀÌ Ãâ·ÂµË´Ï´Ù.
Á÷Á¢Çغ¸¼¼¿ä.

È®½ÇÇÑ°¡¿©???

±×·±ÈÄ

INSERT TRAN1 VALUES(1,@@TRANCOUNT) ¸¦ ÅëÇØ °ªÀ» ÀÔ·ÂÇß½À´Ï´Ù.

Å×ÀÌºí¿¡ °ªÀº ¸ð°¡ µé¾î °¥±î¿©? '0'°ªÀÌ µé¾î°¥±î¿©???? ¾Æ´Õ´Ï´Ù.

'1'°ªÀÌ µé¾î°©´Ï´Ù.

SELECT * FROM TRAN1¸¦ ÅëÇØ 봑ÀÎÇØ º¸½Ã¸é ¾Ë°ÚÁö¸¸, È®½ÇÇϽÃÁ®?????
¿©·¯ºÐÀÌ º¸¼ÅµÎ ¾Æ½Ã°ÚÁö¸¸ Äõ¸® °¢°¢ÀÇ ´Ü°è¿¡¼­ È®ÀÎÇØ º»°á°ú 0°ªÀ» °¡Áö°í ÀÖ½À´Ï´Ù.
ÇÏÁö¸¸ TRAN1 Å×ÀÌºí¿¡ ÀúÀåµÈ 1ÀÇ °ªÀ» º¸¸é ¸ðµç ÇϳªÀÇ Æ®·£Àè¼Ç³»¿¡¼­ INSERT µÇ¾úÀ½À»
¾Ë¼öÀÖ½À´Ï´Ù.

Áï, SQL ¼­¹ö¿¡¼­´Â ±âº»ÀûÀ¸·Î µ¥ÀÌÅ͸¦ ¼öÁ¤ÇÏ´Â ¸ðµç Äõ¸®´Â ÀÚü·Î ÇϳªÀÇ Æ®·£Àè¼Ç ´ÜÀ§°¡
µÇ¸ç À§ÀÇ ¿¹Á¦¿Í °°Àº Äõ¸®´Â ³»ºÎÀûÀ¸·Î ¾Æ·¡¿Í °°Àº Çü½ÄÀ¸·Î 󸮵Ǿî Áý´Ï´Ù.

     

..
Æ®·£Àè¼Ç ½ÃÀÛ
   INSERT TRAN1
Æ®·£Àè¼Ç Á¾·á

..

Æ®·£Àè¼Ç ½ÃÀÛ
   INSERT TRAN1
Æ®·£Àè¼Ç Á¾·á
 
    

¿Ö ±×¸²ÀÇ ¿¹Á¦¸¦ ½ÇÇàÇßÀ»¶§ °á°ú°¡ '0'ÀÌ ¾Æ´Ñ '1'ÀÌ ³ª¿Ô´ÂÁö ¾Æ½Ã°Ú³ª¿©???

±×·³, ÀÌÁ¦ »ç¿ëÀÚ°¡ Á÷Á¢ ½ÃÀÛ°ú ³¡À» ÁöÁ¤ÇÏ°í ½Í´Ù¸é ¾îÄÉ ÇØ¾ß ÇÒ±î¿ä.
Áï, ¸í½ÃÀûÀÎ Æ®·£Àè¼ÇÀ» ¸»ÇÏ´Â °Ì´Ï´Ù.
ÀÌÁ¦ ¸í½ÃÀûÀÎ Æ®·£Àè¼ÇÀ» °£´ÜÈ÷ ¾Ë¾Æº¸µµ·ÏÇÏ°Ú½À´Ï´Ù.

  9.2.3. ¸í½ÃÀûÀÎ Æ®·£Àè¼Ç
 
  ¾ÕÀÇ ¿¹Á¦¸¦ ÅëÇؼ­ SQL¼­¹ö¿¡¼­ µ¥ÀÌÅÍ¿¡ º¯°æÀ» °¡ÇÏ´Â ÀÛ¾÷Àº ¸ðµÎ °¡°¢ ÇϳªÀÇ Æ®·£Àè¼ÇÀ¸·Î
  󸮵ÊÀ» È®ÀÎÇÒ¼ö ÀÖ¾ú½À´Ï´Ù.
 
  ÇÏÁö¸¸ µ¥ÀÌÅÍÀÇ ÀÏ°ü¼ºÀ» À§Çؼ­´Â ¾÷¹« ±ÔÄ¢»ó ¼­·Î °ü·ÃÀÖ´Â ÀÛ¾÷Àº ¸ðµÎ ¹­¾î¼­ ÇϳªÀÇ Æ®·£Àè¼Ç
  À¸·Î ó¸®ÇØÁà¾ß ÇÕ´Ï´Ù.
 
     

¡á BEGIN TRANSACTION : ¸í½ÃÀû Æ®·£Àè¼ÇÀÇ ½ÃÀÛ.
¡á COMMIT TRANSACTION : ¸í½ÃÀû Æ®·£Àè¼ÇÀÇ ¿Ï·á.
¡á ROLLBACK TRAN : ¸í½ÃÀû Æ®·£Àè¼ÇÀÇ Ãë¼Ò
    

ÀÚ, ¶ÇÇϳªÀÇ ¿¹Á¦¸¦ º¸µµ·Ï ÇÏ°Ú½À´Ï´Ù.

¿©·¯ºÐÀÌ °èÁ ÀÌü¸¦ ½Ãŵ´Ï´Ù.

Ã־ȱ԰¡ ¾È±Ô¾ØÇÑÅ× ¿ëµ·À» º¸³»ÁÝ´Ï´Ù.
 

	   1. UPDATE ¾È±Ô_°èÁ¹øÈ£_Å×ÀÌºí   SET ±Ý¾×=±Ý¾×-50000 WHERE °èÁ¹øÈ£_Çʵå='¾È±Ô_°èÁ¹øÈ£'
	   2. UPDATE ¾È±Ô¾Ø_°èÁ¹øÈ£_Å×À̺í SET ±Ý¾×=±Ý¾×+50000 WHERE °èÁ¹øÈ£_Çʵå='¾È±Ô¾Ø_°èÁ¹øÈ£'



ÀÌÄÉ µÎ°³ÀÇ ÀÛ¾÷À» Çؾ߰ÚÁö¿©?
  

	BEGIN TRAN
	   1. UPDATE ¾È±Ô_°èÁ¹øÈ£_Å×ÀÌºí   SET ±Ý¾×=±Ý¾×-50000 WHERE °èÁ¹øÈ£_Çʵå='¾È±Ô_°èÁ¹øÈ£'
	COMMIT TRAN
	
	BEGIN TRAN   
	   2. UPDATE ¾È±Ô¾Ø_°èÁ¹øÈ£_Å×À̺í SET ±Ý¾×=±Ý¾×+50000 WHERE °èÁ¹øÈ£_Çʵå='¾È±Ô¾Ø_°èÁ¹øÈ£'
	COMMIT TRAN


  
ÀÌÄÉ µÇ¾ß°ÚÁö¿©???
ÀÌ°Ô ¹Ù·Î ¸í½ÃÀûÀÎ Æ®·£Àè¼Ç À̶ø´Ï´Ù. ÀÌÇØ ÇϽÃÁ®??

±Ùµ¥¿© À§¿Í °°Àº °æ¿ì ¸¸¾à 1¹ø ÀÛ¾÷À» ÇÒ¶§ ¿¡·¯°¡ ¾ø¾ú¾î¿©. ±Ùµ¥ 2¹øÀÛ¾÷À» ÇÒ¶§ ¿¡·¯°¡ »ý°å´Ù¸é
µ¥ÀÌŸ´Â ¾îÄÉ µÉ±î¿©??? Á¦ ÅëÀå¿¡´Â µ·ÀÌ ºüÁ® ³ª°¬Áö¸¸ ¿ì¸®¾Ø ÅëÀå¿¡ ÀÔ±ÝÀÌ µÉ±î¿©???

¾Æ~~ ÀÌ·Ð...

ÀÌ·± °æ¿ì°¡ »ý±â¸é Àü ¿ï¾ØÇÑÅ× ¸Â¾Æ 듁½À´Ï´Ù... -.-

Àú¾ß È®ÀÎÇÒ ±æÀÌ ¾ø°ÚÁö¿©??? ºÐ¸íÈ÷ ºüÁ® ³ª°¬À¸´Ï±î,,,, ±×·³ Àü ¾îÄÉ ÇØ¾ß Çϳª¿©? ¿µ¼öÁõ°¡Áö°í
ÀºÇà°¡¼­ ¹«Àð°Ô µûÁö¸é µÇÁö¿©... ļļļ,,,

Àú ¼º°Ý ´õ·´½À´Ï´Ù.....È÷È÷~~~

À§ÀÇ °æ¿ìµµ ¾à°£ÀÇ ¹®Á¦Á¡ÀÌ ÀÖ½À´Ï´Ù.

±×·¸Áö¿©?? ÀÌ·±°æ¿ì¶§¹®¿¡ ¸í½ÃÀûÀÎ Æ®·£Àè¼ÇÀº ¹Ýµå½Ã ÇÊ¿äÇÑ °Ì´Ï´Ù.

±×·³ ¾îÄÉ ÇÏ¸é µÉ±î¿©?
 

	
	BEGIN TRAN
	   1. UPDATE ¾È±Ô_°èÁ¹øÈ£_Å×ÀÌºí   SET ±Ý¾×=±Ý¾×-50000 WHERE °èÁ¹øÈ£_Çʵå='¾È±Ô_°èÁ¹øÈ£'
	   2. UPDATE ¾È±Ô¾Ø_°èÁ¹øÈ£_Å×À̺í SET ±Ý¾×=±Ý¾×+50000 WHERE °èÁ¹øÈ£_Çʵå='¾È±Ô¾Ø_°èÁ¹øÈ£'
	COMMIT TRAN


 
¿ä·¸°Ô ÇÕÄ¡¸é µÈ´ä´Ï´Ù... ÇÏÇÏÇÏ~~~~~

¾Ë°ÚÁö¿©?????

ÀÚ ±×·³ ´õ »ó¼¼ÇÏ°Ô À̹ø¿¡ ·Ñ¹é±îÁö °çµå¸° ³»¿ëÀ» º¼±î¿©???

	BEGIN TRAN
	
	UPDATE ¾È±Ô_°èÁ¹øÈ£_Å×ÀÌºí   SET ±Ý¾×=±Ý¾×-50000 WHERE °èÁ¹øÈ£_Çʵå='¾È±Ô_°èÁ¹øÈ£'
	
	IF( @@error<>0)
	    ROLLBACK TRAN
	ELSE
	    BEGIN 
	         UPDATE ¾È±Ô¾Ø_°èÁ¹øÈ£_Å×À̺í SET ±Ý¾×=±Ý¾×+50000 WHERE °èÁ¹øÈ£_Çʵå='¾È±Ô¾Ø_°èÁ¹øÈ£'
	         IF(@@error<>0)
	             ROLLBACK TRAN
	         ELSE 
	             COMMIT TRAN    
	    END    




¾î¶»½À´Ï±î???

@@ERROR º¯¼ö´Â ÀúÀåÇÁ·Î½ÃÁ®¿¡¼­ ÀÌ¹Ì º¸°í ³Ñ¾î¿Â ³»¿ëÀ̱⠶§¹®¿¡ ±Ã±ÝÇϽźÐÀº,,, ´Ù½Ã È®ÀÎÇØ º¸½Ã°í
¿À¼¼¿ä.

À§ÀÇ ¿¹Á¦´Â óÀ½ UPDATE ÇÏ°í ³ª¼­ ¿¡·¯°¡ ÀÖÀ¸¸é ·Ñ¹é󸮸¦ ÇÏ°í, ±×·¸Áö ¾ÊÀ¸¸é ¿ì¸®¾Ø ÅëÀåÀ» ¾÷µ¥ÀÌÆ®
½ÃÄÑÁÖÁö¿ä. À̰͵µ ¶ÇÇÑ ¿¡·¯ ¾ø´Ù¸é ¸ðµÎ COMMIT ÇÏÁö¸¸ ±×·¸Áö ¾ÊÀ»¶§ ROLLBACK ½ÃÅ°¸é µÇ°ÚÁö¿ä?

¾î¶²°¡¿©??? ÀÌÇØ°¡ °¡½ÃÁ®??? ±×¸® ¾î·ÆÁö ¾ÊÀº ³»¿ëµéÀÌ´Ï, ±Ý¹æµé ÇϽǼö ÀÖÀ»°Ì´Ï´Ù.

  9.2.4. ³»ºÎÀû Æ®·£Àè¼Ç(IMPLICIT)
 
  Áö±Ý±îÁö´Â Æ®·£Àè¼ÇÀ» ó¸®Çϱâ À§Çؼ­ °³¹ßÀÚ°¡ ¸í½ÃÀûÀ¸·Î BEGIN TRAN ¹®À» »ç¿ëÇؼ­ Æ®·£Àè¼ÇÀÌ
  ½ÃÀ۵ǾúÀ½À» ¾Ë¸®´Â ¹æ¹ýÀ» ¼³¸íÇß½À´Ï´Ù.
 
  SET IMPLICIT_TRANSACTIONS ¿É¼Ç ¼³Á¤Àº Ä¿³Ø¼Ç ·¹º§ ¼³Á¤À¸·Î ÇØ´ç Ä¿³Ø¼Ç¿¡¼­ µ¥ÀÌÅ͸¦ ¼öÁ¤ÇÏ´Â Äõ¸®¸¦
  ½ÇÇàÇϸé ÀÚµ¿À¸·Î ÇϳªÀÇ Æ®·£Àè¼ÇÀÌ ½ÃÀÛµÈ ÈÄ °³¹ßÀÚ°¡ ¸í½ÃÀûÀ¸·Î COMMIT ¶Ç´Â ROLLBACK 󸮸¦ ÇØÁà¾ß¸¸
  Æ®·£Àè¼ÇÀÌ ¿Ï·áµÇµµ·Ï ÇÏ´Â °ÍÀÔ´Ï´Ù.
 
  ÀÌ°ÍÀº ±âº» »óÅ¿¡¼­ µ¥ÀÌÅ͸¦ ¼öÁ¤ÇÏ´Â Äõ¸®¸¦ ½ÇÇàÇÏ¸é µ¥ÀÌÅÍ°¡ ¼öÁ¤µÈ ÈÄ ÀÚµ¿À¸·Î Æ®·£Àè¼Ç¿Ï·áµÇ¾î
  µ¥ÀÌÅ͸¦ º¹±¸ ÇÒ¼ö ¾ø´Â°Í°ú ºñ±³µÇ´Â °³³äÀ¸·Î ½Ç¼ö·Î µ¥ÀÌÅ͸¦ Áö¿üÀ» ¶§¿¡µµ ROLLBACK 󸮰¡ °¡´ÉÇÏ°Ô
  ÇØ ÁÝ´Ï´Ù.
  IMPLICIT_TRANSACTION ¿É¼ÇÀÌ ¼³Á¤µÇ¾î ÀÖÀ»¶§´Â ´ÙÀ½°ú °°Àº ¹®ÀåÀ» »ç¿ëÇÒ¶§ ³»ºÎÀûÀ¸·Î Æ®·£Àè¼ÇÀÌ ÀÚµ¿À¸·Î
  ½ÃÀ۵Ǹç Æ®·£Àè¼ÇÀ» Á¾·áÇϱâ À§Çؼ­´Â ¸í½ÃÀûÀ¸·Î COMMIT À̳ª ROLLBACK ¹®À» »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.
 
       
ALTER TABLE , CREATE, DELETE,DROP,FETCH,GRANT,INSERT,OPEN,REVOKE,SELECT,TRUNCATE TABLE,UPDATE
    
 

  	CREATE TABLE test_tbl(id int)
  	
  	SET IMPLICIT_TRANSACTIONS ON
  	INSERT TABEL_TBL VALUES(1)
  	SELECT @@TRANCOUNT
  	DBCC OPENTRAN


 
  À§ÀÇ ¹®ÀåÀ» ½ÇÇàÇØ º¸½Ã±â ¹Ù¶ø´Ï´Ù.
 
  À§ÀÇ ¹®ÀåÀ» ½ÇÇàÇϸé, INSERT TABEL_TBL VALUES(1) ¹®ÀÌ ½ÇÇàµÇ¸é¼­ ÀÚµ¿À¸·Î Æ®·£Àè¼ÇÀÌ ½ÃÀ۵˴ϴÙ.
  ±×·¯³ª, ÀÚµ¿¿Ï·á°¡ µÇÁö ¾Ê±â ¶§¹®¿¡  ¿©·¯ºÐÀÌ ROLLBACK À̳ª COMMIT ¹®À» ÀÌ¿ëÇؼ­ µÇµ¹¸®°Å³ª, ¿Ï·á¸¦ ½Ãų¼ö°¡
  ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ ±â´ÉÀ» ÇØ ÁÖ´Â°Ô ¹Ù·Î SET IMPLICIT_TRANSACTIONS ¹®ÀÔ´Ï´Ù.
 
  ÀÌ°Ü¿¡¼­ DBCC OPENTRAN ¸í·ÉÀº ÇöÀçÀÇ Æ®·£Àè¼ÇÀÇ »óŸ¦ º¸¿©ÁÝ´Ï´Ù.
 
  ¾î¶²°¡¿©??? ÇìÇì µµ¿òÀÌ µÇ¼ÌÀ¸¸é ÁÁ°Ú´Âµ­.. ³Ê¹« ½¬¿î ³»¿ëµéÀÌ¿´½À´Ï´Ù.
  ±×·³,
 
 
Tip (¿À¶óŬÀÇ Set implicit_transactions)
¿À¶óŬÀÇ Set implicit_transactions ¼³Á¤°ú °°Àº °³³äÀº ¿À¶óŬÀÇ SQL *plus¿¡¼­´Â ±âº» ¼³Á¤µÇ¾î ÀÖ½À´Ï´Ù.
±×·¯¹Ç·Î ¿À¶óŬÀ» »ç¿ëÇÏ´ø °³¹ßÀÚµéÀÌ sql ¼­¹ö¸¦ »ç¿ëÇÒ¶§ ÈçÈ÷ ½Ç¼öÇϴ°ÍÀÌ µ¥ÀÌÅ͸¦ À߸ø ¼öÁ¤Çصµ
rollback¹®À¸·Î º¹±¸°¡ °¡´ÉÇÑ°ÍÀ¸·Î ¾Ë°í Àִٴ°ÍÀÔ´Ï´Ù.
Áß¿äÇѵ¥¿©. SQL ¼­¹öÀÇ ±âº»¼³Á¤Àº Æ®·£Àè¼ÇÀÇ ÀÚµ¿ Á¾·á, Áï AUTO COMMIT ¼³Á¤À¸·Î À߸ø ¼öÁ¤ÇÑ µ¥ÀÌÅÍ
ÀÚü·Î´Â º¹±¸°¡ ºÒ°¡´ÉÇÏ¸ç µ¥ÀÌÅÍ ¹é¾÷°ú ¸®½ºÅä¾î °úÁ¤À» »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.
¡Ø Ȥ½Ã µµ¿òÀÌ µÇ¼Ì´Ù¸é ´ñ±Û¿¡ ÇѸ¶µð ³²°ÜÁÖ¼¼¿ä!
ÀÛ¼ºÀÚ   ºñ¹Ð¹øÈ£
ÀÚµ¿±Û ¹æÁö     (ÀÚµ¿±Û ¹æÁö ±â´ÉÀÔ´Ï´Ù.)
³»¿ë   ´ñ±Û´Þ±â 
À̸ÞÀÏ ¹®ÀÇ : cak0280@nate.com  
Copyright 2000 By ENTERSOFT.KR All Rights Reserved.