±ÍÇÏ´Â ¼Õ´Ô À̽ʴϴÙ
·Î±×ÀÎ
ȸ¿ø°¡ÀÔ
  
  µ¨¸¶´ç °ø½Ä ÀºÇà°èÁÂ
  ÇϳªÀºÇà 227-910235-83607
  ¿¹±ÝÁÖ ÀÌ»ó±¹(¿î¿µÁø)
ÇÁ·ÎÁ§Æ® °Ô½ÃÆÇ
ÅõÇ¥°Ô½ÃÆÇ
µ¨¸¶´ç¼Ò°³
±âÃʺÎÅÍ È°¿ë±îÁö! µ¨ÆÄÀÌ ±³À° - µ¥ºê±â¾î
°­ÁÂ, ÆÁ, Á¤º¸ °­ÁÂ, ÆÁ, Á¤º¸ ÀÔ´Ï´Ù.
±Û³»¿ë - °­ÁÂ, ÆÁ, Á¤º¸
 Spring4d °­Á 2 Lazy Object Creation
ÁÖÁ¤¼·
(ÁÖÁ¤¼·)
2016-12-03 ¿ÀÈÄ 11:42:48
Ä«Å×°í¸®: ÆÁ
2397ȸ Á¶È¸



µî·ÏµÈ ÆÄÀÏÀÌ ¾ø½À´Ï´Ù.
Ȥ½Ã Lazy Loading¶ó´Â ¸»À» µé¾îº»ÀûÀÌ Àִ°¡? ÀÌ °ÔÀ¸¸¥ ·ÎµùÀ̶ó´Â °ÍÀº ½±°Ô ¸»ÇÏÀڸ頾 ÀÚ¿øÀ» Á¤¸»·Î ÇÊ¿äÇÒ ¶§±îÁö ¸Þ¸ð¸®³ª ³×Æ®¿÷¿¡ ÀûÀçÇÏÁö ¾Ê°Ú´Ù´Â °ÍÀÌ´Ù. 

¿¹¸¦ µé¸é, Database ÇÁ·Î±×·¡¹Ö¿¡¼­ Blob Çʵå´Â ¸Å¿ì ±îÅ»½º·± Á¸Àç´Ù. select Äõ¸® ¹®Àå¿¡ Blob Çʵ尡 Ãß°¡µÇ´Â ¼ø°£, ±× select ¹®Àº ¸Å¿ì ´À·ÁÁú ¼ö ÀÖ´Ù. ¿Ö³ÄÇϸé Blob Çʵå´Â Å©±âµµ °¡º¯ÀûÀÌÁö¸¸, ÀϹݠ¹®ÀÚ¿­ Çʵ忡 ºñÇϸ頿뷮ÀÌ ¿ùµîÈ÷ Ä¿±â¿¡ ³×Æ®¿÷ ´ë¿ªÆøÀ» ¾öû Àâ¾Æ ¸ÔÀ» ¼ö Àֱ⠶§¹®ÀÌ´Ù. 

ÀÌ ¶§¹®¿¡ ÀϹÝÀûÀΠSELECT¹®¿¡ BLOB Çʵ带 ³ª¿­ÇÏÁö ¸»°í ´Ü¼ø Çʵ常 ³ª¿­Çؼ­ È£ÃâÇÏ°í, ½ÇÁ¦·Î BLOB Çʵ堳»¿ëÀ» º¸¿©ÁÙ ÇÊ¿ä°¡ ÀÖÀ» ¶§¿¡¸¸ ´Ù½Ã Blob Çʵ常 selectÇϴ Äõ¸®¸¦ º°µµ·Î È£ÃâÇ϶ó´Â °ÍÀÌ´Ù. ÀÌ °³³äÀÌ Lazy Loading ÀÌ´Ù.

°´Ã¼ÁöÇâ¿¡¼­µµ ÀÌ¿Í ºñ½ÁÇÑ °³³äÀÌ Lazy Object CreationÀÌ´Ù. ±× °´Ã¼°¡ Á¤¸»·Î ÇÊ¿äÇÒ ¶§ ±îÁö ±× °´Ã¼¸¦ »ý¼ºÇÏÁö ¾Ê°Ú´Ù´Â °³³äÀÌ´Ù. 

Àü¿ª °´Ã¼µé Áß¿¡´Â ÇÁ·Î±×·¥ ½ÇÇà Áß¿¡ Çѹøµµ ÂüÁ¶µÇÁö ¾Ê´Â °ÍÀÌ ÀÖÀ» ¼ö ÀÖ´Ù. ±× °´Ã¼°¡ ÇÊ¿äÇϱä ÇÏÁö¸¸, »ç¿ëÀÚ°¡ ¾î¶² ¹öÆ°À» Å¬¸¯ÇÏÁö ¾Ê´Â ÇÑ, ¶Ç´Â ¾î¶² Æ¯Á¤ ÇÔ¼ö¸¦ ½ÇÇàÇÏÁö ¾Ê´Â ÇÑ, ±× °´Ã¼ »ý¼ºÀÌ ÇÊ¿ä ¾øÀ» ¼ö ÀÖ´Ù. ±× °´Ã¼°¡ ¸Å¿ì µ¢Ä¡°¡ Ä¿¼­ ¸Þ¸ð¸® ¿ë·®À» ¸¹ÀÌ ¸Ô°Å³ª, ºó¹øÇÑ »ý¼º/Æı«°¡ ¹Ù¶÷Á÷ÇÏÁö´Â ¾Ê¾Æ¼­, Á¤ÀÛ ÇÊ¿äÇÒ ¶§¸¸ »ý¼ºÅä·Ï ÇÏÀڴ °ÍÀÌ Lazy Object CreationÀÌ´Ù. 

´ÙÀ½°ú °°Àº Äڵ尡 ÀÖ´Ù°í °¡Á¤ÇÏÀÚ.

uses Spring;

type
  TMyObject = class
  public
    // Áß·«
    constructor Create;
    destructor Destroy; override;
  end;

  // Áß·«

var
  obj : Lazy<TMyObject>;

¸ÞÀÎÆûÀÇ OnCreate À̺¥Æ® È¤Àº initializaton ¿µ¿ª¿¡ ´ÙÀ½°ú °°Àº Äڵ带 ±â¼úÇß´Ù°í °¡Á¤ÇÏÀÚ.

obj.Create(function : TMyObject begin
      Result := TMyObject.Create;
    end, true);

¸ÞÀÎÆûÀÇ ¾î¶² ¹öÆ°¿¡ ´ÙÀ½°ú °°Àº OnClick À̺¥Æ®¸¦ ¸¸µé¾ú´Ù°í °¡Á¤ÇÏÀÚ.

procedure TForm3.Button1Click(Sender: TObject);
begin
  obj.Value.field1 := '1111';
end;


ÀÌÁ¦ TMyObject °´Ã¼´Â Àú ¹öÆ°À» Å¬¸¯ÇÏÁö ¾Ê´Â ÇÑ, »ý¼ºµÇÁö ¾Ê´Â´Ù. ´Ù½Ã ¸»ÇÏÀÚ¸é obj.value¸¦ ÂüÁ¶Çϴ Äڵ尡 ½ÇÇàµÇÁö ¾Ê´Â ÇÑ TMyObject °´Ã¼´Â »ý¼ºµÇÁö ¾Ê´Â´Ù´Â °ÍÀÌ´Ù. 

Srping4dÀÇ Lazy<T>´Â ±× °´Ã¼ È¤Àº ÀÚ¿øÀ» ½ÇÇàÁß¿¡ Á¤¸» ÂüÁ¶ÇÒÁö ¸»Áö ¾Ö¸Å¸ðÈ£ÇÒ ¶§ »ç¿ëÇÑ´Ù.

Âü°í·Î Lazy<T>.Create ÀÇ µÎ¹ø° Àμö´Â ÀÚµ¿ Æı« ¿©ºÎÀÌ´Ù. À§ Äڵ忡¼­´Â trueÀ̹ǷΠÀÌÀü °­ÁÂÀÇ Managed<T>ó·³ ÀÚ½ÅÀÌ ¼±¾ðµÈ À§Ä¡¿¡ µû¶ó¼­ ÀÚµ¿À¸·Î Æı«µÈ´Ù.