lecture Home > ASP.NET > Taeyo's ASP.NET

Taeyo's ASP.NET

   °­Á ÃÖÃÊ ÀÛ¼ºÀÏ : 2008³â 03¿ù 24ÀÏ
   °­Á ÃÖÁ¾ ¼öÁ¤ÀÏ : 2008³â 03¿ù 25ÀÏ

  °­Á ÀÐÀ½ ¼ö : ȸ

   ÀÛ¼ºÀÚ : Taeyo(±è Å¿µ)
   ÆíÁýÀÚ : Taeyo(±è Å¿µ)

   °­Á Á¦¸ñ : MVC : Model ±¸¼ºÇϱâ 

°­Á Àü Å¿ÀÀÇ Àâ´ã>

¸ðµ¨°ú Entity¿¡ ´ëÇØ¼­ ÁöÀεé°ú À̾߱⸦ ³ª´©¸é¼­ ±ÛÀ» °è¼ÓÀûÀ¸·Î ´Ùµë´Ùº¸´Ï °­Á°¡ Á¶±Ý ´Ê¾ú³×¿ä
(´Ê¾ú´Ù°í ¸»Àº ÇÏÁö¸¸, ÀÌÀü °­Á¿ÍÀÇ ÅÒÀÌ ÀÏÁÖÀϵµ ¾ÈµÇ´Â ºÎºÐÀº Àúµµ ³î¶ø³×¿ä~~)
¸¹Àº Á¶¾ð°ú ÀǰßÀ» ÁֽŠÀ¯°æ»ó, ¾ÈÀç¿ì ¼ö¼®¿¡°Ô °¨»ç¸¦ µå¸³´Ï´Ù. ±×·± Àǹ̿¡¼­ ÇÑÀÜ?


Model ±¸¼ºÇϱâ

ASP.NET MVC ÇÁ·¹ÀÓ¿öÅ©¿¡¼­ ¸ðµ¨(Model)Àº ÇÙ½É ·ÎÁ÷À» ¼öÇàÇÏ°í µ¥ÀÌÅ͸¦ Á¶ÀÛÇÏ´Â ¿ªÇÒÀ» ´ã´çÇÕ´Ï´Ù. ÀϹÝÀûÀ¸·Î µ¥ÀÌÅͺ£À̽º¿Í °°Àº µ¥ÀÌÅÍ ÀúÀå¼Ò¿¡ Á¸ÀçÇÏ´Â µ¥ÀÌÅÍ¿¡ Á¢±ÙÇϰí, ±× µ¥ÀÌÅÍ¿¡ ´ëÇØ ¾÷¹« ·ÎÁ÷À» ¼öÇàÇÏ´Â °ÍÀÌÁÒ. ÀÌ·¯ÇÑ ¸ðµ¨Àº °³¹ßÇÏ·Á´Â ¾ÖÇø®ÄÉÀ̼ǿ¡ ¸ÂÃç ¼³°è°¡ µÇ¾î¾ß ÇÏ´Â ºÎºÐÀ̱⿡ ±× Çü½ÄÀÌ °íÁ¤µÇ¾î Àְųª ÇÏÁö ¾Ê½À´Ï´Ù. ±â¾÷ ȯ°æÀÇ °æ¿ì¿¡´Â ¾÷¹« ºÐ¼®À» ÅëÇØ¼­ »êÃâµÈ ¿£ÅÍÆ¼µéÀÇ ÁýÇÕÀÌ ÀÌ·¯ÇÑ ¸ðµ¨¿¡ ¼ÓÇϰï ÇÏÁö¸¸, .NETÀÌ ±âº»ÀûÀ¸·Î Á¦°øÇÏ´Â DataSet°ú °°Àº Çü½Äµµ ¸ðµ¨·Î¼­ ´Ù·ç¾îÁú ¼ö ÀÖ½À´Ï´Ù(¿©±â±îÁö´Â MSDN¿¡ ³ª¿À´Â ¸ðµ¨¿¡ ´ëÇÑ ¼³¸í°ú Å« Â÷À̰¡ ¾øÁÒ. ÇÏÇÏ).

µ¥ÀÌÅÍ ¸ðµ¨Àº ¿©·¯ °³ÀÇ Å¬·¡½º·Î ±¸¼ºµÉ ¼ö Àִµ¥, ¿©±â¿¡´Â ¾÷¹« ºÐ¼®À» ÅëÇØ »êÃâµÈ ¿£ÅÍÆ¼ Ŭ·¡½ºµé°ú ±× ¿£ÅÍÆ¼µéÀ» »ç¿ëÇÏ¿© µ¥ÀÌÅ͸¦ ´Ù·ç´Â ±â´ÉÀ» °®´Â ÄÁÅØ½ºÆ® Ŭ·¡½º µîÀÌ Æ÷Ç﵃ ¼ö ÀÖ½À´Ï´Ù(°æ¿ì¿¡ µû¶ó¼­´Â ÄÁÅØ½ºÆ®°¡ ¼öÇàÇÏ´Â ±â´ÉÀÌ ÄÁÆ®·Ñ·¯·Î ºüÁö´Â °æ¿ìµµ ÀÖ½À´Ï´Ù¸¸, ASP.NET MVC¿¡¼­´Â À̵µ µ¥ÀÌÅÍ ¸ðµ¨¿¡ Æ÷ÇÔÇϰí ÀÖ½À´Ï´Ù). ¿£ÅÍÆ¼µéÀº ÀϹÝÀûÀ¸·Î µ¥ÀÌÅͺ£À̽º¿¡ Á¸ÀçÇϴ ƯÁ¤ Å×À̺íÀÇ ½ºÅ°¸¶¿Í À¯»çÇϱä ÇÕ´Ï´Ù¸¸, Ç×»ó ±×·± °ÍÀº ¾Æ´Õ´Ï´Ù. ¼Ò±Ô¸ð À¥ ¾ÖÇø®ÄÉÀ̼ÇÀÇ °æ¿ì´Â Å×ÀÌºí ½ºÅ°¸¶¸¦ ±â¹ÝÀ¸·Î ¿£ÅÍÆ¼ Ŭ·¡½º¸¦ ±¸¼ºÇÏ¿© »ç¿ëÇØµµ Å©°Ô ¹®Á¦°¡ ¾ø´Â ÆíÀÌÁö¸¸(ÀÌ·¯ÇÑ ÀÛ¾÷À» ÀÚµ¿È­Çϱâ À§ÇÑ ORM µµ±¸µéÀ» ÀÌ¿ëÇϱ⵵ ÇÕ´Ï´Ù), ±Ô¸ð°¡ ÀÖ´Â ¾ÖÇø®ÄÉÀ̼ÇÀÇ °æ¿ì´Â Å×ÀÌºí ½ºÅ°¸¶¸¦ ±â¹ÝÀ¸·Î ¿£ÅÍÆ¼¸¦ µµÃâÇÏ´Â °ÍÀÌ ¿ÀÈ÷·Á ÀûÀýÇÏÁö ¾ÊÀº °æ¿ìµµ ¸¹±â ¶§¹®¿¡ ÁÖÀÇÇØ¾ß ÇÕ´Ï´Ù. µ¥ÀÌÅͺ£À̽º Å×À̺íÀº °ü°èÀû ±¸Á¶·Î ¼³°èµÇ¾î ÀÖÁö¸¸, OOP·Î ÀÛ¼ºµÇ´Â ¿£ÅÍÆ¼ Ŭ·¡½ºµéÀº »ó¼Ó ±¸Á¶·Î ¼³°èµÇ±â ¶§¹®¿¡ ±¸Á¶ÀûÀÎ Â÷ÀÌ·Î ÀÎÇÑ º¸Á¤ÀÌ ¿ä±¸µÇ´Â °Íµµ ÀÖ°í, Å×ÀÌºí ½ºÅ°¸¶¿¡ ±â¹ÝÇÑ Å¬·¡½º ¼³°è´Â µ¥ÀÌÅͺ£À̽º¿¡ ´ëÇÑ Á¾¼Ó¼ºÀ» °®°Ô Çϱ⿡ ±×¸¦ µ¶¸³ÀûÀ¸·Î ¿î¿ëÇϱâ À§ÇÑ °í·Á°¡ ¿ä±¸µÇ´Â µî ÀÌ·¯ÇÑ ¸ðµ¨¸µÀº °í¹ÎÇØ¾ß ÇÒ ´Ù¾çÇÑ ¿ä¼ÒµéÀÌ Á¸ÀçÇϱ⿡ °£´ÜÇÑ ÀÛ¾÷ÀÌ ¾Æ´Õ´Ï´Ù. ÇØ¼­, ÀÌ·¯ÇÑ ¸ðµ¨¸µ¸¸À» º°µµ·Î ¼öÇàÇÏ´Â Àü¹®°¡µé ¹× ±â¾÷µéµµ Á¸ÀçÇϰí ÀÖÁö¿ä. »ç½Ç, ÀÌ·¯ÇÑ ÀÛ¾÷Àº ±â´É¼º ÀÛ¾÷ÀÇ ±¸ÇöÀ» ÁÁ¾Æ¶óÇÏ´Â ÀúÈñ °°Àº °³¹ßÀڵ鿡°Ô´Â ´Ù¼Ò Áö·çÇÑ ºÎºÐÀ̱⵵ ÇÕ´Ï´Ù.

ÇØ¼­, ±âÁ¸ÀÇ ASP.NET À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ» ºñ·ÔÇÑ ´Ù¾çÇÑ À¥ ±â¹ÝÀÇ ÇÁ·ÎÁ§Æ®µé(½º¸¶Æ® Ŭ¶óÀÌ¾ðÆ® µî)¿¡¼­´Â º¸ÆíÀûÀ¸·Î DataSetÀ» »ç¿ëÇϰï Çß½À´Ï´Ù. ¿Ö³Ä±¸¿ä? DataSetÀº ±×³É ÀÌ°Í Àú°Í °í¹ÎÇÏÁö ¾Ê°í ½±°Ô »ç¿ëÇÒ ¼ö ÀÖÀ¸´Ï±î¿ä. »ç½Ç, ¿£ÅÍÆ¼ ±â¹ÝÀÇ ¾ÖÇø®ÄÉÀ̼ÇÀ» °³¹ßÇÏ´Â °ÍÀº »ó´çÈ÷ ¸¹Àº ÀÚ¿ø(½Ã°£, ³ë·Â, Àοø)À» ¿ä±¸ÇÏ´Â ÆíÀÔ´Ï´Ù. »Ç´ë°¡ ³­´Ù´Â ÀÌÀ¯·Î ¼²ºÒ¸® ¿£ÅÍÆ¼¸¦ µµÀÔÇÏ¿© ¹èº¸´Ù ¹è²ÅÀÌ ´õ Ä¿Áö´Â ´çȲ½º·± °æÇèÀ» ÇØ º» °³¹ßÀÚ¶ó¸é ¿£ÅÍÆ¼ ±â¹ÝÀÇ ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ß¿¡ °í°³¸¦ »çÁ¤¾øÀÌ Èçµé±âµµ ÇÒ °ÍÀÔ´Ï´Ù. ±×·± Àǹ̿¡¼­ º¸¸é, ¿£ÅÍÆ¼ÀÇ Àû¿ëÀº ´ë±Ô¸ð ¾ÖÇø®ÄÉÀ̼Ǻ¸´Ù´Â ¼Ò±Ô¸ð ¾ÖÇø®ÄÉÀ̼ǿ¡ ¿ÀÈ÷·Á ´õ ºÎÇÕÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ±×·¡¼­, ¿ÀÈ÷·Á ´ëÇüÀϼö·Ï ¿£ÅÍÆ¼º¸´Ù´Â DataSetÀ» ´õ À¯¿ëÇÏ°Ô »ç¿ëÇÏ´Â °ÍÀÎÁöµµ ¸ð¸¨´Ï´Ù. ¿£ÅÍÆ¼¸¦ »ç¿ëÇÒ °æ¿ì¿¡ ¼ö¹ÝµÇ´Â »ý»ê¼º ¹®Á¦ µî ´Ù¾çÇÑ °í¹Î°Å¸®µé¿¡ ´ëÇØ ÀÌ°Í Àú°Í °í¹ÎÇÒ Çʿ䰡 ¾øÀ¸´Ï ¸»ÀÌÁÒ.

±×·¸±â¿¡, µ¥ÀÌÅÍ ¸ðµ¨·Î½á ¿©ÀüÈ÷ DataSetÀ» »ç¿ëÇÒ ¼ö´Â ÀÖ½À´Ï´Ù¸¸(±×¸®°í, ½ÇÁ¦·Îµµ DataSetÀ» ¿©ÀüÈ÷ ³Î¸® »ç¿ëÇϰí ÀÖ½À´Ï´Ù¸¸), Microsoft´Â VS 2008À» ±âÁ¡À¸·Î ÇÏ¿©(½ÇÀº ±× ÀüºÎÅÍÀ̱ä ÇÏÁö¸¸) °¡±ÞÀû DataSetº¸´Ù´Â »ç¿ëÀÚ Á¤ÀÇ Å¸ÀÔÀÎ ¿£ÅÍÆ¼ Ŭ·¡½º¸¦ ¸¸µé¾î¼­ »ç¿ëÇÒ °ÍÀ» »ìÆ÷½Ã ±ÇÀ¯(?)Çϰí ÀÖÀ¸¸ç, ½ÉÁö¾î, VS 2008¿¡¼­´Â ±×·¯ÇÑ ÀÛ¾÷À» ÀÚµ¿ÀûÀ¸·Î ÇØÁÖ´Â(¹°·Ð, µ¥ÀÌÅͺ£À̽º Å×ÀÌºí ½ºÅ°¸¶ ±â¹ÝÀ¸·Î) LINQ to SQLÀ̶ó´Â Ŭ·¡½º¸¦ Á¦°øÇϰí Àֱ⵵ ÇÕ´Ï´Ù. ÀÌ´Â µ¥ÀÌÅͺ£À̽ºÀÇ Å×ÀÌºí ½ºÅ°¸¶¸¦ ±â¹ÝÀ¸·Î ¿£ÅÍÆ¼ Ŭ·¡½º¸¦ ÀÚµ¿À¸·Î ¸¸µé¾îÁÖ´Â ORM(Object-Relational Mapping) µµ±¸¶ó°í º¸½Ã¸é µË´Ï´Ù. ¸Å¿ì À¯¿ëÇϱä ÇÏÁö¸¸ À̸¦ ÅëÇØ »ý¼ºµÈ ¿£ÅÍÆ¼ Ŭ·¡½º´Â ´Ù¼Ò º¹ÀâÇÑ È¯°æÀÇ ¾ÖÇø®ÄÉÀ̼ǿ¡¼­´Â ¸¹Àº º¸Á¤ÀÛ¾÷ÀÌ ÇÊ¿äÇÒ ¼öµµ ÀÖÀ¸¸ç, ´õºÒ¾î º´Çà °³¹ß ½ÃÀÇ ÂüÁ¶ ¹®Á¦³ª ¹èÆ÷°ü·Ã ¹®Á¦µµ °í¹Î°Å¸® Áß¿¡ ÇϳªÀ̱⿡ ¸é¹ÐÈ÷ ¼³°è ¹× °ËÅäÇÑ µÚ »ç¿ëÇÏ¼Å¾ß ÇÕ´Ï´Ù.

¿£ÅÍÆ¼°¡ ¿©·¯ Ãø¸é¿¡¼­ ¸¹Àº ÀåÁ¡À» °¡Áö°í ÀÖ´Â °ÍÀº »ç½ÇÀÔ´Ï´Ù¸¸, ±× ¸ÚÁø ¸ð½À À̸鿡´Â ¼û°ÜÁø ¸¹Àº °í¹Î°Å¸®µéÀÌ Á¸ÀçÇϰí Àֱ⿡, ¾ÖÇø®ÄÉÀ̼ÇÀ» ¿£ÅÍÆ¼ ±â¹ÝÀ¸·Î ±¸¼ºÇÏ´Â °ÍÀÌ ÃÖ°íÀÇ ´äÀº ¾Æ´Ï¶ó´Â Á¡Àº ¸í½ÉÇϽñ⠹ٶø´Ï´Ù(ÀÌ¿¡ ´ëÇØ¼­´Â À¯°æ»ó ¼ö¼®ÀÌ "DataSet ¿¹Âù·Ð(?)"À̶õ °¡Á¦·Î ±ÛÀ» ÁغñÇϰí Àֱ⵵ ÇÕ´Ï´Ù. ¹®Á¦´Â ±ÛÀÌ ¾ðÁ¦ ¿Ã¶ó¿À´À³Ä°ÚÁÒ! ¹ö·°!).

±×·¸±ä ÇÏÁö¸¸, Àú´Â À̾îÁö´Â ¿¹Á¦¿¡¼­ LINQ to SQL Class¸¦ »ç¿ëÇØ¼­ ¿£ÅÍÆ¼¸¦ »ý¼ºÇÏ¿© »ç¿ëÇÒ ¿¹Á¤ÀÔ´Ï´Ù. ºñ·Ï ÀÌ·¯ÇÑ ÀÛ¾÷ÀÌ ´ëÇü ±Ô¸ð¿¡¼­´Â ¿ÀÈ÷·Á ÇǰïÇÑ ¹æ¹ýÀÌ µÉ·± Áö´Â ¸ð¸£°ÚÁö¸¸, ÀϹÝÀûÀΠȯ°æ(¿¹¸¦ µé¸é, Å¿À »çÀÌÆ® °°Àº Áß,¼Ò ±Ô¸ð »çÀÌÆ®?)¿¡¼­´Â À¯¿ëÇÏ°í ¾µ¸¸ÇÑ ¹æ¹ýÀ̱⠶§¹®ÀÔ´Ï´Ù(±×¸®°í, »ç¿ëÇØºÁ¾ß ¹¹°¡ ºÒÆíÇÑ °ÍÀÎÁöµµ ±ú´ÞÀ» ¼ö ÀÖ°ÚÁÒ?).

´ëºÎºÐ ¿£ÅÍÇÁ¶óÀÌÁî ȯ°æ¿¡ °è½Å ºÐµéÀº ¿£ÅÍÆ¼ ±â¹ÝÀ¸·Î °³¹ßÀ» ÁøÇàÇÏ´Â °æ¿ì, µ¥ÀÌÅÍ ¸ðµ¨ ±¸¼º ÀÛ¾÷À» À§Çؼ­ ¸ðµ¨¸µ ÄÁ¼³ÅÏÆ®¸¦ °í¿ëÇѴٰųª, ÀÚü TFT¸¦ ±¸¼ºÇÏ¿© ÀÛ¾÷À» ÇϼÌÀ» °ÍÀÌ´Ï ÀÌ¹Ì µ¥ÀÌÅÍ ¸ðµ¨À» °¡Áö°í ÀÖ´Â »óÅÂÀÌ½Ç °ÍÀÔ´Ï´Ù. ^^ ±×·¸±â¿¡, ±× ºÐµé¿¡°Ô´Â LINQ to SQL Ŭ·¡½º¸¦ ÀÌ¿ëÇÏ´Â º°µµÀÇ ¸ðµ¨ ±¸¼º ÀÛ¾÷Àº ÇÊ¿ä ¾øÀ» °ÍÀÔ´Ï´Ù.

´õºÒ¾î, »ç½Ç ±â¾÷ ȯ°æ(¿£ÅÍÇÁ¶óÀÌÁî¶ó°í ÁÖ·Î ºÒ¸®´Â)À̶ó ÇØµµ Ç×»ó ¾öû³­ ±Ô¸ðÀÇ ÇÁ·ÎÁ§Æ®¸¸À» ÇÏ´Â °ÍÀº ¾Æ´Õ´Ï´Ù. ´ëÇü ÇÁ·ÎÁ§Æ®¶ó ÇØµµ ±× ³»ºÎÀûÀ¸·Î´Â ÀϹÝÀûÀ¸·Î ÀÛÀº ±Ô¸ðÀÇ ¾ÖÇø®ÄÉÀ̼ǵéÀÌ ¸¹ÀÌ Á¸ÀçÇÏ´Â ÆíÀ̴ϱî¿ä. ±×¸®°í, ±×·¯ÇÑ ÀÛÀº ÇÁ·ÎÁ§Æ®¿¡¼­´Â ÀÌ·¯ÇÑ ¹æ½Ä(LINQ to SQL Ŭ·¡½º¸¦ »ç¿ëÇÏ¿© Å×ÀÌºí ½ºÅ°¸¶ ±â¹ÝÀ¸·Î ¸ðµ¨À» ±¸¼ºÇÏ´Â ¹æ½Ä)À¸·Î ¸ðµ¨À» ±¸¼ºÇÏ´Â °Íµµ ÃæºÐÈ÷ °¡´ÉÇÕ´Ï´Ù(Ãʱâ ÇÁ·ÎÁ§Æ® Áöħ¼­¿¡¼­´Â ±ÇÀåÇÏÁö ¾ÊÀ»Áöµµ ¸ð¸£Áö¸¸, »ç´Â °Ô ±×·¸Áö ¾Ê½À´Ï±î? ÇÏÇÏ). »ç½Ç, °Å´ë ÇÁ·ÎÁ§Æ®ÀÇ ÀϺÎÀ̱ä ÇÏÁö¸¸ ¿©·¯ °³ÀÇ ÀÛÀº À¥ »çÀÌÆ®µé·Î ±¸¼ºµÈ ¾ÖÇø®ÄÉÀ̼ÇÀ» °³¹ßÇÏ´Â °æ¿ì¿¡ ¼ö ¸¹Àº °Ô½ÃÆÇÀ» ÁÖ¸Ô±¸±¸ ½ÄÀ¸·Î °³¹ßÇØ¿Ô´ø Áö³­ °³¹ßȯ°æÀ» »ý°¢Çغ¸¸é, ÀÌ ¹æ½ÄÀÌ »ý°¢º¸´Ù ¿ÀÈ÷·Á ¸¹ÀÌ »ç¿ëµÉ ¼ö ÀÖ¾î º¸À̱⵵ ÇÕ´Ï´Ù(»ç½Ç, ¿£ÅÍÇÁ¶óÀÌÁî ȯ°æ¿¡¼­ LINQ³ª LINQ to SQL °ü·Ã ±â¼úÀÇ Àû¿ëÀº ´Ù¼Ò ºñ°üÀûÀÎ ÆíÀ̱ä ÇÕ´Ï´Ù¸¸, ¼¼»óÀÇ ¸ðµç ÇÁ·ÎÁ§Æ®°¡ ¸ðµÎ ¿£ÅÍÇÁ¶óÀÌÁî ±ÞÀÎ °ÍÀº ¾Æ´Ò »Ó´õ·¯, ÀûÀýÇÏ°Ô »ç¿ëÇϸé ÁÁÀ» °÷Àº ºÐ¸íÈ÷ ¸¹À»Å×´Ï ¸»ÀÔ´Ï´Ù).

µå¿ø Å×Å©³î·ÎÁöÀÇ À¯°æ»ó ¼ö¼®°ú ¸®ÇÊ ÀÇÁ¸ÀûÀÎ Ä¿ÇÇŸÀÓÀ» °¡Áö¸é¼­ ÀÌ¿¡ ´ëÇÑ ÀǰßÀ» ±³È¯ÇÏ´Ù°¡ ´À³¤ Á¡À» Ãß°¡ÀûÀ¸·Î ¾ð±ÞÇÏÀÚ¸é, Á¦°¡ LINQ to SQLÀÌ Áß,¼Ò ±Ô¸ð¿¡¼­ ±×·±´ë·Î ¾µ¸¸ÇÏ´Ù°í ¸»¾¸µå¸° ºÎºÐÀº À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ» ´ë»óÀ¸·Î ÇÑ ÀǰßÀ̶ó´Â °ÍÀÔ´Ï´Ù. ½º¸¶Æ® Ŭ¶óÀÌ¾ðÆ®³ª À¥ ¼­ºñ½º ¿¬µ¿ÀÇ À©µµ¿ì ¾ÖÇø®ÄÉÀ̼ÇÀÇ °æ¿ì´Â »ç½Ç»ó ¼­¹ö¿¡¼­ºÎÅÍ Å¬¶óÀÌ¾ðÆ®±îÁö À̾îÁö´Â ÀÌ·¯ÇÑ ¿£ÅÍÆ¼ ¶óÀ̺귯¸®ÀÇ ¿¬°è¿¡ »ó´çÈ÷ ¸¹Àº °í¹Î°Å¸®µéÀÌ ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù. »ç½Ç, ÀÌ ¹®Á¦´Â ´å³Ý¿¢½ºÆÛÆ®ÀÇ ¾ÈÀç¿ì ¼ö¼®ÀÌ ÀÌ¹Ì ÀÚ½ÅÀÇ ºí·Î±×¸¦ ÅëÇØ¼­ °­Á¶ÇÑ Àûµµ ÀÖ½À´Ï´Ù. ´ÙÀ½ Ä÷³À» Çѹø Àо¼¼¿ä(½Ã°£ÀÌ ³Ë³ËÄ¡ ¾ÊÀ¸½Å ºÐÀº ±× Ä÷³ÀÇ ÇÏ´Ü¿¡ LINQ to SQLÀÇ ¹®Á¦¸¦ ÁöÀûÇÑ ºÎºÐ¸¸À» Àо¼Åµµ µË´Ï´Ù).

http://blog.naver.com/saltynut/120045036743

LINQ to SQLÀÌ »ý¼ºÇØÁÖ´Â ¿£ÅÍÆ¼µé »Ó¸¸ ¾Æ´Ï¶ó ½ÇÁ¦ ±â¾÷ ȯ°æ¿¡¼­ ¿ä±¸µÇ´Â ¿£ÅÍÆ¼µéÀÌ µ¥ÀÌÅͺ£À̽º¿¡ Á¾¼Ó¼ºÀ» °®´Â ºÎºÐ¿¡ ´ëÇÑ °í¹Î(¼³°èÀûÀÎ ¹®Á¦) ¿Ü¿¡µµ °³¹ß »ý»ê¼º°ú °ü·ÃÇÏ¿© º´Çà °³¹ß ½ÃÀÇ ¶óÀ̺귯¸® ÂüÁ¶¹®Á¦ ¹× ¿î¿µ Ãø¸é¿¡¼­ÀÇ ¹èÆ÷ ¹®Á¦ µîÀº ÇöÀç±îÁöµµ ²ÙÁØÈ÷ À̾îÁ® ¿À°í ÀÖ´Â °í¹Î°Å¸®ÀÔ´Ï´Ù. °£´ÜÇÏ°Ô ¼³¸í µå¸®ÀÚ¸é, °³¹ß Áß¿¡ µ¥ÀÌÅͺ£À̽º ½ºÅ°¸¶¿¡ º¯°æÀÌ »ý°å´Ù¸é(»ý°¢º¸´Ù ÀÌ·± ÀÏÀÌ Çö½Ç¿¡¼­´Â ÀÚÁÖ ÀϾÁÒ), ±×¿¡ µû¶ó ¿£ÅÍÆ¼ ¶óÀ̺귯¸®µµ Àç ºôµå°¡ µÇ¾î¾ß ÇÒ °ÍÀ̸ç, ±× ¶óÀ̺귯¸®¸¦ ÂüÁ¶Çϰí ÀÖ´Â ¾ÖÇø®ÄÉÀ̼ǵ鵵 ¸ðµÎ Àç ºôµå ÇØ¾ß ÇÑ´Ù´Â °ÍÀÌÁÒ. ÇÁ·ÎÁ§Æ®°¡ 3-4°³ Á¤µµÀÎ °¡º­¿î ±Ô¸ð¶ó¸é '±×°Ô ¹«½¼ ¹®Á¦°¡ µÅ?'¶ó°í ¸»¾¸ÇÏ½Ç ¼öµµ ÀÖÁö¸¸, ÇÁ·ÎÁ§Æ®°¡ ¼ö½Ê °³ ȤÀº ¼ö¹é °³·Î ÀÌ·ç¾îÁö´Â °æ¿ì¿¡´Â ÀÌ ÀÛ¾÷Àº ´ë´ÜÇÑ ºÎ´ãÀÌ µË´Ï´Ù. ´õºÒ¾î, 1Â÷ ¹èÆ÷°¡ ¿Ï·áµÇ¾î ½ÇÁ¦·Î ¾ÖÇø®ÄÉÀ̼ÇÀ» ¿î¿µ ÁßÀÎ »óȲ¿¡¼­, Ä÷³¸íÀÌ º¯°æµÈ´Ù°Å³ª ½ºÅ°¸¶¿¡ º¯°æÀÌ °¡ÇØÁø´Ù°Å³ª Çϸé À§ÀÇ ÀÛ¾÷À» °è¼ÓÀûÀ¸·Î ¹Ýº¹ÇØ¾ß ÇÏ´Â °Í »Ó¸¸ ¾Æ´Ï¶ó, ¿£ÅÍÆ¼ ¶óÀ̺귯¸®¸¦ Ŭ¶óÀÌ¾ðÆ®¿¡°Ô±îÁö Àç ¹èÆ÷(½º¸¶Æ® Ŭ¶óÀÌ¾ðÆ®¿Í °°Àº À©µµ¿ì ¾ÖÇø®ÄÉÀ̼ÇÀÇ °æ¿ì) ÇØ¾ß ÇÏ´Â ºÎ´ãµµ Á¸ÀçÇÕ´Ï´Ù. ±×¸®°í, ÀÌ·± ÀÛÀº ¼öÁ¤ÀÌ ºó¹øÇÏ°Ô ¹ß»ýÇÏ°Ô µÈ´Ù¸é(ÁÖ·Î ¹èÆ÷ Ãʱ⿡ ÀÌ·± ÀÏÀÌ ÀæÀº ÆíÀÌÁÒ), ÀÌ·¯ÇÑ º¹ÀâÇÏ°íµµ ÇǰïÇÑ ÀÛ¾÷À» ¸Å¹ø ¹Ýº¹Çؾ߸¸ ÇÕ´Ï´Ù. ÇØ¼­, ¿ÀÈ÷·Á °³¹ßÇÏ´Â µ¥ µå´Â ½Ã°£º¸´Ù, ºôµåÇÏ°í ¹èÆ÷ÇÏ´Â µ¥¿¡ ´õ ¸¹Àº ½Ã°£°ú ³ë·ÂÀÌ ¿ä±¸µË´Ï´Ù. °á±¹, ÇÁ·ÎÁ§Æ® ¿Ï·á Àü¿¡ ÀÌ·¯ÇÑ ¹®Á¦µé¿¡ ´ëÇØ¼­ ±ò²ûÇÏ°Ô ´ëóÇÒ ¼ö ÀÖ´Â ¹æ¾ÈÀ» ¼¼¿ö³õÁö ¾Ê´Â´Ù¸é, ÇÁ·ÎÁ§Æ® ³¡³ª°íµµ ¼ö °³¿ù°£ µÚÄ¡´Ù²¨¸®¿¡ Ä¡¿© »ì°Ô µÉ ¼ö ÀÖ´Ù´Â °ÍÀÌÁÒ.

±×·¡¼­, ±â¾÷ Áß¿¡´Â ¿£ÅÍÆ¼¸¦ µµÀÔÇÏ·Á´Ù°¡ Áßµµ¿¡ Æ÷±âÇÏ´Â °æ¿ìµµ ²Ï ÀÖÀ¸¸ç, ȤÀº ¼º°øÀûÀ¸·Î(ÀÏ´ÜÀº) ÇÁ·ÎÁ§Æ®¸¦ ³¡³½ µÚ¿¡µµ »êÃâµÈ ¿£ÅÍÆ¼ ¶óÀ̺귯¸®¸¦ Àç»ç¿ëÇÏÁö ¾Ê´Â °æ¿ìµµ ÀÖ½À´Ï´Ù.

ÇØ¼­, LINQ to SQLÀÇ È¿¿ë¼º, ´õ ³ª¾Æ°¡ ¿£ÅÍÆ¼ ¶óÀ̺귯¸®ÀÇ È¿À²ÀûÀÎ »ç¿ë¿¡ ´ëÇØ¼­´Â °¡º±°Ô À̾߱âÇÒ ¼ö ÀÖ´Â ºÎºÐÀÌ ¾Æ´Õ´Ï´Ù. È¿À²¼º¿¡ ´ëÇÑ °í¹ÎÀº ´Ù¾çÇÑ È¯°æ¿¡¼­ À¯»çÇÏÁö¸¸ ¾à°£¾¿ ´Ù¸¥ °æÇèÀ» ÇÑ ¿©·¯ Àü¹®°¡µé, ¼±¹èµé, µ¿·áµé°ú ÀǰßÀ» ±³È¯Çϸ鼭 °è¼ÓÀûÀ¸·Î ´õ ³ªÀº ¹æ¹ýÀ» ã¾Æ³ª°¡¾ß ÇÏÁö ¾Ê³ª ÇÕ´Ï´Ù. ÃÖ°íÀÇ ¹æ¹ýÀÌ ¾Æ´Ñ ÃÖ¼±ÀÇ ¹æ¹ýÀ» ã±â À§Çؼ­ ¸»ÀÌÁÒ~

´©±º°¡ ±×·¯´õ±º¿ä. "¿£ÅÍÆ¼¸¦ Àû¿ëÇÑ´Ù´Â °ÍÀº ¸Å¿ì À¯¿ëÇϸç È¿°úÀûÀÎ °ÍÀÓ¿¡´Â Ʋ¸²ÀÌ ¾ø´Ù. ±×·¯³ª, ±×°ÍÀ» È¿°úÀûÀ¸·Î »ç¿ëÇϱâ À§ÇØ µå´Â ºñ¿ëÀº ¿£ÅÍÆ¼¸¦ »ç¿ëÇÏ´Â °ÍÀÌ °ú¿¬ ÁÁÀº Áö¸¦ ÀǽÉÇÏ°Ô Çϰï ÇÑ´Ù"°í¿ä. (È£¿À~ ¾²°í º¸´Ï ±×·² µí ÇѰÉ~)

PS : ¿ÀÇØÀÇ ¼ÒÁö°¡ ÀÖÀ»±î ºÁ µ¡ºÙÀÔ´Ï´Ù. LINQ ±â¼ú¿¡ ¿À·ÎÁö LINQ to SQL ¸¸ Á¸ÀçÇÏ´Â °ÍÀº ¾Æ´Õ´Ï´Ù. LINQ to XMLÀ̳ª LINQ to DataSets µîÀÇ ±â¼úµµ Á¸ÀçÇϰí ÀÖÀ¸¸ç À̵éÀº ²Ï³ª À¯¿ëÇÒ °ÍÀ¸·Î º¸ÀÔ´Ï´Ù. ±×·¸±â¿¡, LINQ ±â¼ú ÀÚü´Â »ó´çÈ÷ Èï¹Ì·Î¿î ±â¼úÀ̸ç, °ü½ÉÀ» °¡Á®º¼ ¸¸ ÇÕ´Ï´Ù. ´ÙÀ½ ¸µÅ©µµ Çѹø Âü°íÇØ º¸¼¼¿ä.

http://blogs.msdn.com/charlie/archive/2008/02/28/link-to-everything-a-list-of-linq-providers.aspx

¹º°¡ Å¿ÀÀÇ ±Û ´äÁö ¾Ê°Ô Ãß»óÀûÀ̸鼭, ¾î·Á¿ö º¸ÀÌ´Â ¸»µéÀÌ ¸¹¾Ò´Âµ¥¿ä. ¿ª½Ã³ª ÀÌ·± ·ùÀÇ ¾Æ´Â ôÀº Àú¿Í´Â ¿ØÁö ¾î¿ï¸®Áö ¾Ê´Â µí Çϳ׿ä ÇÏÇÏÇÏ.

±×·³. ÀÌ·¯´Ï Àú·¯´Ï ÇÏ´Â º¹ÀâÇÑ À̾߱âµéÀº Àá½Ã µÚ·Î ¹Ì·ï³õ°í¿ä. ÀÌÁ¦ µ¥ÀÌÅÍ ¸ðµ¨À» Çѹø ¸¸µé¾î º¸µµ·Ï ÇϰڽÀ´Ï´Ù? ¿ø·ÐÀûÀÎ À̾߱âµéÀº ¾îÂ÷ÇÇ °­ÁÂ¿Í º°µµ·Î ²ÙÁØÈ÷ Åä·ÐÀÌ µÇ¾î¾ß ÇÒ ºÎºÐÀÏ Å״ϱî¿ä.

¿ì¼±, µ¥ÀÌÅͺ£À̽º°¡ ÇÊ¿äÇÕ´Ï´Ù. ±×·¸´Ù¸é, SQL ¼­¹ö¿Í °°Àº µ¥ÀÌÅͺ£À̽º ¼­¹ö Á¦Ç°À» ¶Ç ¼³Ä¡ÇØ¾ß ÇÏ´Â °ÍÀϱî¿ä? ÀÌ¹Ì ±×·¯ÇÑ µ¥ÀÌÅͺ£À̽º ¼­¹ö¸¦ º¸À¯Çϰí ÀÖ´Ù¸é ±×¸¦ ¿¬°áÇØ¼­ »ç¿ëÇÏ½Ã¸é µÇ°ÚÁö¸¸, ¼ÒÇÁÆ®¿þ¾î°¡ ¾ø´Ù°í ÇØ¼­ °ÆÁ¤ÇÏ½Ç ÇÊ¿ä´Â ¾ø½À´Ï´Ù. VS 2008Àº ±âº»ÀûÀ¸·Î SQL Server 2008 Express ¹öÀüÀ» žÀçÇϰí ÀÖÀ¸¹Ç·Î, º°µµÀÇ µ¥ÀÌÅͺ£À̽º ¼­¹ö¸¦ ¼³Ä¡ÇÏÁö ¾ÊÀ¸¼Åµµ ÀÏ´ÜÀº »ç¿ëÀÌ °¡´ÉÇÕ´Ï´Ù.

´ÙÀ½ ±×¸²°ú °°ÀÌ App_Data Æú´õ¿¡ ¸¶¿ì½º ¿ìÃø Ŭ¸¯ÇÏ¿© »õ·Î¿î Ç׸ñ(SQL Server µ¥ÀÌÅͺ£À̽º)À» Ãß°¡Çϵµ·Ï Çϼ¼¿ä. Àú´Â µ¥ÀÌÅͺ£À̽º ÆÄÀÏÀÇ À̸§À¸·Î MyData.mdf¸¦ ÁÖ¾ú½À´Ï´Ù¸¸, ÀÌ À̸§Àº ¿©·¯ºÐÀÌ ÆíÇÑ À̸§À¸·Î ÁöÁ¤Çϼŵµ µË´Ï´Ù.

±×¸®°í, »ý¼ºµÈ mdf¸¦ ´õºí Ŭ¸¯ÇϽеÚ, ºñ¾îÀÖ´Â µ¥ÀÌÅͺ£À̽º¿¡ ´ÙÀ½ ±×¸²À» Âü°í·Î ÇÏ¿© Å×À̺íÀ» Çϳª Ãß°¡ÇØ ÁÖ¼¼¿ä. ´Ù¸¸, Å×À̺íÀÇ À̸§Àº Memo·Î ÇØÁֽðí, Seq Ä÷³Àº ¹Ýµå½Ã Ű Ä÷³À¸·Î Àâ¾ÆÁֽðí, Identity ¼³Á¤µµ Yes(¿¹)·Î ¼³Á¤Çϼż­ ÀÚµ¿À¸·Î °ªÀÌ Áõ°¡ÇÏ´Â Ä÷³À¸·Î ¸¸µé¾î Áֽñ⠹ٶø´Ï´Ù. ±×¸®°í, TransDate¶ó´Â Ä÷³¿¡ ´ëÇØ¼­´Â ±âº» °ªÀ» getdate() ¸¦ ÁöÁ¤Çϵµ·Ï Çϼ¼¿ä. ±×·¡¾ß, µ¥ÀÌÅͰ¡ ÀÔ·ÂµÉ ¶§ ³¯Â¥µµ ÇöÀç ½Ã°£À¸·Î ÀÚµ¿ ÀúÀåµÉÅ״ϱî¿ä.

ÀÌÁ¦ µ¥ÀÌÅͺ£À̽º¿Í Å×À̺íÀº Áغñ°¡ µÇ¾ú³×¿ä ^^; ±×·¸´Ù¸é, ¸¸µé¾îÁø ±â³äÀ¸·Î Å×À̺íÀ» ¿­°í 2-3°ÇÀÇ µ¥ÀÌÅ͸¦ ÀÔ·ÂÇØ µÎ½Ã±â ¹Ù¶ø´Ï´Ù. ³ªÁß¿¡ Ãâ·ÂÀÌ Àß µÇ´ÂÁö È®ÀÎÇϱâ À§Çؼ­ ¹Ì¸® ¾à°£ÀÇ µ¥ÀÌÅͰ¡ µé¾îÀÖÀ¸¸é ¸Å¿ì ÁÁÀ¸´Ï±î¿ä ^^ (¾î¶»°Ô ÀÔ·ÂÇϳİí¿ä? ¼­¹ö Ž»ö±â¿¡¼­ Memo Å×À̺íÀ» ¼±ÅÃÇÏ°í ¸¶¿ì½º ¿ìÃøÅ¬¸¯ ÇÑ µÚ, [Å×ÀÌºí µ¥ÀÌÅÍ Ç¥½Ã]¸¦ ¼±ÅÃÇÏ½Ã¸é ±âÁ¸ µ¥ÀÌÅ͸¦ »ìÆìº¼ ¼ö ÀÖÀ» »Ó¸¸ ¾Æ´Ï¶ó, ÀÔ·ÂÇÏ½Ç ¼öµµ ÀÖ½À´Ï´Ù) ´ÙÀ½ ±×¸²Ã³·³ ¸»ÀÌÁÒ.

µ¥ÀÌÅͺ£À̽º°¡ ÁغñµÇ¾úÀ¸´Ï, ÀÌÁ¦, ÁøÂ¥·Î!! ¸ðµ¨À» ¸¸µé±â À§Çؼ­ Models Æú´õ¿¡ LINQ to SQL Ŭ·¡½º¸¦ Çϳª »ý¼ºÇØ º¸µµ·Ï ÇϰڽÀ´Ï´Ù. Models Æú´õ¿¡ ¸¶¿ì½º ¿ìÃø Ŭ¸¯À» ÇÑ µÚ, »õ·Î¿î Ç׸ñÀ» Ãß°¡Çϼ¼¿ä. ´ÙÀ½°ú °°ÀÌ ¸»ÀÌÁÒ.

±×·¯¸é, Memo.dbml À̶ó´Â ÆÄÀÏÀÌ Models Æú´õ¿¡ »ý¼ºµÊ°ú µ¿½Ã¿¡, VS 2008Àº ±×¸²°ú °°ÀÌ [°³Ã¼ °ü°èÇü µðÀÚÀ̳Ê]¸¦ ³ªÅ¸³»°Ô µÇ´Âµ¥¿ä. ¿©±â¿¡ Memo Å×À̺íÀ» µå·¡±× ¾Ø µå·ÓÇÏ¿© ¿Ã·Á³õÀ¸½Ã¸é µË´Ï´Ù.

±×¸®°í, ÀúÀå! ÇϽøé, VS 2008Àº ÀÚµ¿À¸·Î Å×ÀÌºí ½ºÅ°¸¶¸¦ ±â¹ÝÀ¸·Î ÇÏ¿© Memo Ŭ·¡½º¿Í ÀÌ ¸¦ ÀÌ¿ëÇÏ¿© µ¥ÀÌÅ͸¦ ó¸®ÇÒ ¼ö ÀÖµµ·Ï Áö¿øÇÏ´Â MemoDataContext Ŭ·¡½º¸¦ »ý¼ºÇØ ÁÝ´Ï´Ù(À̸¦ È®ÀÎÇϽ÷Á¸é Memo.dbml ÆÄÀÏÀ» È®ÀåÇÏ¿© Memo.designer.cs ÆÄÀÏÀ» ¿­¾îº¸½Ã¸é µË´Ï´Ù). ÀÌ·Î½á ¾ÆÁÖ °£´ÜÇÏ°Ô µ¥ÀÌÅÍ ¸ðµ¨ÀÌ ¸¸µé¾îÁø °ÍÀÔ´Ï´Ù. Á¤¸» ½±ÁÒ?

´Ù¸¸, ÀÌ´Â 1ȸ¼ºÀÇ »ý¼ºÀ̱⿡ ÀÚµ¿ »ý¼ºµÈ µ¥ÀÌÅÍ Å¬·¡½º°¡ µ¥ÀÌÅͺ£À̽º Å×À̺í(Memo)°ú µ¿±âÈ­°¡ µÇ°Å³ª ÇÏÁö´Â ¾Ê½À´Ï´Ù. Áï, Å×À̺íÀÇ ½ºÅ°¸¶°¡ º¯°æµÇ¾ú´Ù°í ÇØ¼­ ÀÚµ¿À¸·Î Memo Ŭ·¡½ºµµ º¯°æ(Áï, Àç»ý¼º)µÈ´Ù°Å³ª, Memo Ŭ·¡½º¿¡ Ãß°¡ ¼Ó¼ºÀ» ³Ö´Â´Ù°í ÇØ¼­ µ¥ÀÌÅͺ£À̽º Å×ÀÌºí¿¡µµ ±× Çʵ尡 ¹Ý¿µµÇÁö´Â ¾Ê´Â´Ù´Â °ÍÀÌÁÒ. ±×·¸±â¿¡, Å×ÀÌºí ½ºÅ°¸¶°¡ º¯°æµÇ¸é ´Ù½Ã±Ý À§ÀÇ ÀÛ¾÷À» ¹Ýº¹ÇÏ¿© Memo Ŭ·¡½º¸¦ Àç»ý¼º ÇØÁÖ¾î¾ß ÇÕ´Ï´Ù(¿©±â¼­, ¿©·¯ºÐÀº ºÒÆíÇÔ Áß ÇÑ °¡Áö¸¦ ¾Ë°Ô µÇ½Å °Ì´Ï´Ù). ^^

ÇÏÁö¸¸, LINQ to SQL Ŭ·¡½º¸¦ »ç¿ëÇÔÀ¸·Î½á ¸Å¿ì ½±°Ô ¿ì¸®´Â »ç¿ëÀÚ Á¤ÀÇ Å¸ÀÔÀ» ÀÛ¼ºÇÒ ¼ö ÀÖ¾ú½À´Ï´Ù. ±×ÃÝ? ±×¸®°í, À̷νá ÀÌÁ¦ µ¥ÀÌÅͺ£À̽º¿Í ±×¸¦ ±â¹ÝÀ¸·Î ÇÏ´Â µ¥ÀÌÅÍ ¸ðµ¨Àº Áغñ°¡ ¿Ï·áµÇ¾ú½À´Ï´Ù. Áï, MVC Áß M¿¡ ÇØ´çÇÏ´Â ºÎºÐÀº Áغñ°¡ µÇ¾ú´Ù´Â °ÍÀÌÁö¿ä.

±×·³, ÀÌÁ¦ ÄÁÆ®·Ñ·¯¸¦ Á¦ÀÛÇÏ´Â ÂÊÀ¸·Î ³Ñ¾î°¡ º¸µµ·Ï ÇÏÁÒ. ¹°·Ð, ±×¿¡ ¾Õ¼­ MVC ÇÁ·¹ÀÓ¿öÅ©°¡ Áö¿øÇÏ´Â URL ¸ÅÇÎ ¹æ½ÄÀ» ¸ÕÀú ÀÌÇØÇÏ°í ³ª¼­ ¸»ÀÌÁÒ~ (±×·¯´Ï±ñ, ÀÌ ¸»Àº ´ÙÀ½ °­Á´ URL ¸ÅÇο¡ °üÇÑ À̾߱â¶ó´Â °ÍÀÔ´Ï´Ù)

 

°­Á ¸ñ·ÏÀ¸·Î..