|
°Á Àü Å¿ÀÀÇ Àâ´ã>
10¿ù 12ÀÏ : Microsoft TechEd 2004 ¼¼¹Ì³ª
10¿ù 26ÀÏ : MSDN ¼¼¹Ì³ª (ASP.NET ÇÁ¸®ºä 1/3)
11¿ù 11ÀÏ : MSDN ¼¼¹Ì³ª (ASP.NET ÇÁ¸®ºä 2/3)
11¿ù xxÀÏ : MSDN ¼¼¹Ì³ª (ASP.NET ÇÁ¸®ºä 3/3)
°©ÀÚ±â ÁÖ¾îÁø ¸¹Àº ¼¼¹Ì³ª ÀÏÁ¤À¸·Î ÀÎÇØ, ¸Å¿ì ¹Ù»Û °¡À»À» º¸³»±¸ ÀÖ½À´Ï´Ù.. ¤Ì¤Ì
±×·³, À̹ø ½Ã°£¿¡´Â Áö³ ½Ã°£¿¡ À̾î¼(»ç½ÇÀº º°°³ÀûÀÎ ³»¿ëÀ¸·Î º¼ ¼öµµ ÀÖ½À´Ï´Ù¸¸) Rss ÀÛ¼º±â¸¦ ¸¸µé¾î º¸µµ·Ï ÇϰڽÀ´Ï´Ù.
Ŭ·¡½ºÀÇ ¼³°è±¸Á¶´Â ¾Æ¸¶µµ ´Ùµé ºñ½ÁÇÏÁö ¾ÊÀ»±î ½Í³×¿ä. ÀúÀÇ °æ¿ì´Â ÀÏ¹Ý ¹®ÀÚ¿ °áÇÕÀ» ÅëÇØ¼ XML ÆÄÀÏÀ» »ý¼ºÇÏ´Â °Í º¸´Ù´Â(ºñ·Ï ±×°ÍÀÌ
¼º´É¸é¿¡¼ »ó´ëÀûÀ¸·Î ³´´ÙÇØµµ) XmlTextWriter Ŭ·¡½º¸¦ »ç¿ëÇØ¼ Á» ´õ È®½ÇÇÏ°Ô XML ÆÄÀÏÀ» ÀÛ¼ºÇÏ´Â ÂÊÀ¸·Î ¹æÇâÀ» Àâ¾Ò½À´Ï´Ù.
¿©·¯ºÐµµ ±×·¸°Ô ¹æÇâÀ» ÀâÀ¸½Å °ÍÀ̶ó¸é, "¿ì¸®´Â Ä£±¸~~~" ÀÎ °ÍÀÔ´Ï´ç´ç´ç.. »þ¹Ù¹æ~~
Àú´Â ±âº»ÀûÀ¸·Î °³¹ßÀÚ°¡ RSS·Î ÀÛ¼ºÇÏ°í ½ÍÀº Ç׸ñµéÀ» ÀÏ´Ü RssWriter ¸Þ¸ð¸® »ó¿¡ ÀûÀçÇÑ ´ÙÀ½¿¡, ƯÁ¤ ¸Þ¼µå¸¦ È£ÃâÇÏ¸é ±×¶§±îÁö ¸Þ¸ð¸®¿¡
½×¿©ÀÖ´ø ¸ðµç µ¥ÀÌÅ͸¦ RSS·Î Á¾Ç~ ¸¸µé¾î¼ Ãâ·ÂÇØÁÖ´Â ½ÄÀ¸·Î µ¿ÀÛÇÏ°Ô ¸¸µé·Á ÇÕ´Ï´Ù.
Ãâ·ÂÀÇ ÇüÅ´ 2°¡Áö¸¦ »ý°¢Çϰí Àִµ¥¿ä. Çϳª´Â Response ÀÀ´ä ±× ÀÚüÀ̱¸¿ä. ´Ù¸¥ Çϳª´Â XML ÆÄÀÏ·Î½á ¼¹ö¿¡ »ý¼ºµÇ°Ô ÇÒ±î ÇÕ´Ï´Ù. µÎ °¡Áö
ÇüÅ ¸ðµÎ ¸Å¿ì ÀÚÁÖ »ç¿ëµÇ´Â Çü½ÄÀ̴ϱî¿ä ^^
RssWriter Ŭ·¡½º´Â ±âÁ¸ RssChannel Ŭ·¡½º¿Í RssItems Ŭ·¡½ºµµ »ç¿ëÇÕ´Ï´Ù. ±×µéÀÇ °³Ã¼ ÀνºÅϽº¸¦ ¸¸µé¾î¼,
RSS·Î ÀÛ¼ºÇϰíÀÚ ÇÏ´Â µ¥ÀÌÅ͸¦ ÀÏ´Ü ¸Þ¸ð¸® »óÀÇ ±× °³Ã¼µé¿¡´Ù°¡ ÀûÀç½Ãų °ÍÀ̴ϱî¿ä. ^^
¸»º¸´Ù Á÷Á¢ º¸¸é¼ ¼³¸íµå¸®´Â °ÍÀÌ ÀÌÇØÇϱ⿡ ³ªÀ» µí ÇÕ´Ï´Ù. ´ÙÀ½ Ŭ·¡½º ½Ã±×³ÊóµéÀ» Çѹø ºÁÁֽðھî¿ä?
½ÇÁ¦ ±¸ÇöºÎ´Â »ý·«Çß±¸¿ä(ÀÌ°Ç Àá½Ã µÚ¿¡ º¸¿©µå¸®°Ú½À´Ï´Ù) °ñ°Ý¸¸ ÀÏ´Ü °°ÀÌ È®ÀÎÇØ º¸°Ú½À´Ï´Ù.
public class RssWriter
{
RssChannel channel;
RssItems rssItems;
public RssWriter()
public RssChannel Channel
public RssItems Items
public void SaveToResponse(System.IO.Stream stream)
public void SaveToFile(string path)
public void AddChannel(string title, Uri link, string description...)
public void AddItem(string author, string category, string title...)
private XmlTextWriter WriteChannel(XmlTextWriter writer, RssChannel channel)
private XmlTextWriter WriteItem(XmlTextWriter writer, RssItem item)
private XmlTextWriter WriteFooter(XmlTextWriter writer)
}
|
Ŭ·¡½º¿¡¼´Â º¸½Ã´Ù½ÃÇÇ Çʵå·Î½á ÇϳªÀÇ RssChannel °³Ã¼¿Í RssItems Ä÷º¼Ç Ŭ·¡½º¸¦ Á¤ÀÇÇϰí ÀÖ½À´Ï´Ù. ±×¸®°í, ÀÌ °³Ã¼µéÀÇ ÃʱâÈ´Â
»ý¼ºÀÚ¿¡¼ ÇØ ÁÖ°í ÀÖ±¸¿ä(±× ÄÚµå´Â ¿©±â¼´Â º¸ÀÌÁö ¾ÊÁö¸¸¿ä~). ±×¸®°í, ÀÌ °¢°¢ÀÇ °³Ã¼¿¡ Á¢±ÙÇÒ ¼ö ÀÖµµ·Ï Çϱâ À§Çؼ,
Channel°ú Items ¶ó´Â °ø°³ ¼Ó¼ºÀ» ³ëÃâ½Ã۰í ÀÖ½À´Ï´Ù. ÇØ¼, RssWriter »ç¿ëÀÚ´Â ÀÌ ¼Ó¼ºµéÀ» ÅëÇØ¼ °¢°¢ÀÇ °³Ã¼¿¡ Á¢±ÙÇÒ ¼ö°¡ ÀÖ´Â °ÍÀÌÁö¿ä.
RSS¿ë µ¥ÀÌÅ͸¦ ÀÛ¼ºÇϱâ À§Çؼ´Â °ø°³ ¸Þ¼µåÀÎ AddChannel°ú AddItemÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¸Þ¼µåµéÀº
°³¹ßÀÚ°¡ ÀÎÀÚ·Î ÁöÁ¤ÇÑ µ¥ÀÌÅ͸¦ °¡Áö°í, ¸Þ¸ð¸® »óÀÇ RssChannel °³Ã¼¿Í RssItems Ä÷º¼Ç Ŭ·¡½º¿¡ µ¥ÀÌÅ͸¦ ÀûÀçÇÏ´Â ¿ªÇÒÀ» ÇÏ°Ô µË´Ï´Ù.
¸¸ÀÏ, °³¹ßÀÚ°¡ ÇÊ¿äÇÑ ¸ðµç µ¥ÀÌÅ͸¦ AddChannel°ú AddItem ¸Þ¼µå¸¦ ÀÌ¿ëÇØ¼ ÀûÀçÇß´Ù¸é, ÀÛ¾÷À» ¿Ï·áÇϱâ À§Çؼ
SaveToResponse ¸Þ¼µå³ª SaveToFile ¸Þ¼µå¸¦ È£ÃâÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¸Þ¼µå´Â ³»ºÎÀûÀ¸·Î, WriteChannel, WriteItem, WriteFooter¶ó´Â Àü¿ë
¸Þ¼µå¸¦ È£ÃâÇϴµ¥¿ä. ÀÌ °¢°¢ÀÇ Write ¸Þ¼µåµéÀº ¸Þ¸ð¸®»ó¿¡ Á¸ÀçÇÏ´Â µ¥ÀÌÅ͵éÀ» ½ÇÁ¦ XmlTextWriter °³Ã¼·Î ÀÛ¼ºÇÏ´Â ¿ªÇÒÀ» ¼öÇàÇÕ´Ï´Ù.
µÎ ¸Þ¼µå(SaveToResponse¿Í SaveToFile)ÀÇ Â÷ÀÌÁ¡À̶ó¸é, ÀüÀÚ´Â Response °³Ã¼·Î µ¥ÀÌÅ͸¦ ³»·Áº¸³»°í, ÈÄÀÚ´Â ½ÇÁ¦ ÆÄÀÏ·Î½á ·ÎÄà µð·ºÅ͸®¿¡
XML ÆÄÀÏÀ» »ý¼ºÇÑ´Ù´Â °ÍÀÌ Â÷ÀÌÀÔ´Ï´Ù.
´ë·«ÀûÀÎ ±¸¼ºÀÌ ÀÌÇØ°¡ µÇ½Ã´ÂÁö¿ä? Å©°Ô ¾î·ÆÁö´Â ¾ÊÀ¸½ÃÁÒ?? ¹°·Ð, ¹¹~ ÀÌ·¯ÇÑ ±¸¼ºÀÌ °¡Àå ¿Ã¹Ù¸¥ ±¸¼ºÀ̶ó°í ¸»ÇÒ ¼ö´Â ¾øÀ» °ÍÀÔ´Ï´Ù.
¸ñÀû¿¡ µû¶ó ±¸¼ºÀº ´Þ¶óÁú ¼ö ÀÖÁÒ. ÇÏÁö¸¸, Á¦ »ý°¢¿¡´Â ÀÌ·¯ÇÑ ÇüŰ¡ °¡Àå ÀϹÝÀûÀÎ ÇüŰ¡ ¾Æ´Ñ°¡ ½Í³×¿ä. ^^;;
±×·³, ÀÌÁ¦ ¼³¸íµå¸° ³»¿ëÀ» Âü°íÇÏ½Ã¸é¼ ±¸Ã¼ÀûÀÎ Äڵ带 Çѹø º¸½Ç±î¿ä?
using System;
using System.Collections;
using System.ComponentModel;
using System.IO;
using System.Xml;
using System.Text;
public class RssWriter
{
RssChannel channel;
RssItems rssItems;
public RssWriter()
{
channel = new RssChannel();
rssItems = new RssItems();
}
public RssChannel Channel
{
get { return channel; }
set { channel = value; }
}
public RssItems Items
{
get { return rssItems; }
set { rssItems = value; }
}
public void SaveToResponse(Stream stream)
{
XmlTextWriter writer = new XmlTextWriter(stream, Encoding.GetEncoding(949));
WriteChannel(writer, channel);
foreach(RssItem item in rssItems)
WriteItem(writer, item);
WriteFooter(writer);
writer.Flush();
writer.Close();
}
public void SaveToFile(string path)
{
XmlTextWriter writer = new XmlTextWriter(path, Encoding.GetEncoding(949));
WriteChannel(writer, channel);
foreach(RssItem item in rssItems)
{
WriteItem(writer, item);
}
WriteFooter(writer);
writer.Flush();
writer.Close();
}
public void AddChannel(string title, Uri link, string description, string language, string copyright, DateTime lastBuildDate)
{
channel.Title = title;
channel.Link = link;
channel.Description = description;
channel.Language = language;
channel.Copyright = copyright;
channel.LastBuildDate = lastBuildDate;
}
public void AddItem(string author, string category, string title, Uri link, DateTime pubdate, string description)
{
RssItem item;
item.Author = author;
item.Category = category;
item.Title = title;
item.Link = link;
item.Pubdate = pubdate;
item.Description = description;
rssItems.Add(item);
}
private XmlTextWriter WriteChannel(XmlTextWriter writer, RssChannel channel)
{
writer.WriteStartDocument();
writer.WriteComment("RSS generated by TaeyoNet RssGen v1.0 on " + DateTime.Now.ToString("r"));
writer.WriteStartElement("rss");
writer.WriteAttributeString("version","2.0");
writer.WriteStartElement("channel");
writer.WriteElementString("title", channel.Title);
writer.WriteElementString("link", channel.Link.ToString());
writer.WriteElementString("language", channel.Language);
writer.WriteElementString("description", channel.Description);
writer.WriteElementString("copyright", channel.Copyright);
writer.WriteElementString("lastBuildDate", channel.LastBuildDate.ToString("r"));
return writer;
}
private XmlTextWriter WriteItem(XmlTextWriter writer, RssItem item)
{
writer.WriteStartElement("item");
writer.WriteElementString("author", item.Author);
writer.WriteElementString("category", item.Category);
writer.WriteElementString("title", item.Title);
writer.WriteElementString("link", item.Link.ToString());
writer.WriteElementString("pubDate", item.Pubdate.ToString("r"));
writer.WriteElementString("description", item.Description);
writer.WriteEndElement();
return writer;
}
private XmlTextWriter WriteFooter(XmlTextWriter writer)
{
writer.WriteEndElement();
writer.WriteEndElement();
writer.WriteEndDocument();
return writer;
}
}
|
¼Ò½º¿¡¼ Å©°Ô ¾î·Á¿î ºÎºÐÀº ¾øÁö ¾Ê³ª ÇÏ´Â »ý°¢ÀÔ´Ï´Ù¸¸... ¾î¶°¼¼¿ä? ¸¸ÀÏ, ¼Ò½º°¡ ¾î·Æ°Ô ´À²¸Áö½Å´Ù¸é, ±×°ÍÀº
¾Æ¸¶µµ XmlTextWriter Ŭ·¡½ºÀÇ »ç¿ë¹ý¿¡ Àͼ÷ÇÏÁö ¸øÇؼ ±×·± °ÍÀÌ ¾Æ´Ò±î ½Í³×¿ä ^^. XmlTextWriter Ŭ·¡½º¿¡ ´ëÇØ¼
´õ ¸¹Àº °ÍÀ» ¾Ë°í ½ÍÀ¸½Ã´Ù¸é, MSDNÀ» Âü°íÇØ ÁÖ¼¼¿ä. XmlTextWriter Ŭ·¡½ºÀÇ ¸â¹öµé Áß WriteStartElement, WriteElementString, WriteEndElement ¸Þ¼µåµéÀ»
ÁýÁßÀûÀ¸·Î »ìÆìº¸½Ã¸é µÉ °Í °°½À´Ï´Ù. ^^
(Ŭ¸¯!
XmlTextWriter Ŭ·¡½º)
ÀÚ~ ÀÌÁ¦ Ŭ·¡½º°¡ ¿Ï¼ºµÇ¾úÀ¸¸é ÄÄÆÄÀÏ ¹× ºôµå¸¦ ÇØ ºÁ¾ß°ÚÁÒ? ¿ÀŸ°¡ ¾ø´Ù¸é ¹®Á¦¾øÀÌ ºôµåµÉ °ÍÀÔ´Ï´Ù.
ÀÌ RssWriter Ŭ·¡½º´Â ±âÁ¸ÀÇ RssReader Ŭ·¡½º¿Í °°Àº ³×ÀÓ½ºÆäÀ̽ºÀÎ TaeyoWebLib¾È¿¡ ¼ÓÇÒ °ÍÀÔ´Ï´Ù. °Á´ë·Î µû¶ó¿À¼Ì´Ù¸é,
ÀÌ¹Ì ±×·¸°Ô µÇ¾îÁ® ÀÖ°ÚÁÒ?
ÁÁ½À´Ï´Ù. ºôµå¸¦ ÇØ¼ DLLÀÌ ¸¸µé¾î Á³´Ù¸é, ÀÌÁ¦ ÀÌ Å¬·¡½º¸¦ Çѹø »ç¿ëÇØ º¸µµ·Ï ÇϰڽÀ´Ï´Ù. »õ·Ó°Ô Å×½ºÆ®¸¦ À§ÇÑ À¥ Æû ÆäÀÌÁö¸¦ Çϳª
¸¸µé¾î º¸µµ·Ï ÇϰڽÀ´Ï´Ù. Àú´Â RssWriterTest.aspx ¶ó´Â À̸§ÀÇ aspx ÆäÀÌÁö¸¦ ¸¸µé¾î º¸¾Ò½À´Ï´Ù.
¹°·Ð, ±âÁ¸ RssReader¶§¿Í ¸¶Âù°¡Áö·Î, ÇöÀçÀÇ À¥ ÇÁ·ÎÁ§Æ®´Â TaeyoWebLib.dllÀ» ÇÁ·ÎÁ§Æ®¿¡¼ ÂüÁ¶Çϰí ÀÖ¾î¾ß Çϰí,
using TaeyoWebLib¸¦ ÅëÇØ¼ ³×ÀÓ½ºÆäÀ̽º°¡ ÀÓÆ÷Æ®µÇ¾î ÀÖ¾î¾ß ÇÒ °ÍÀÔ´Ï´Ù. ¾Æ¸¶µµ Àü °Á¿¡¼ ±×·¸°Ô ÇØ µÎ¼ÌÀ»Å×´Ï
À̹øÀÇ °æ¿ì´Â ³×ÀÓ½ºÆäÀ̽º¸¸ ÀÓÆ÷Æ®ÇÏ½Ã¸é µÉ °Í °°³×¿ä ^^
±×·¸´Ù¸é, ÀÌÁ¦ RssWriterTest.aspx ÆäÀÌÁöÀÇ Page_Load À̺¥Æ® 󸮱⠱¸¿ªÀ» ÀÛ¼ºÇØ º¼±î¿ä? ÀúÀǰæ¿ì´Â ´ÙÀ½°ú °°ÀÌ °£´ÜÇϰԸ¸ ÇØº¸¾Ò½À´Ï´Ù
private void Page_Load(object sender, System.EventArgs e)
{
RssWriter wr = new RssWriter();
wr.Channel.Title = "Taeyo »çÀÌÆ® ÃÖ±Ù °Á ¸ñ·Ï";
wr.Channel.Link = new Uri("http://www.taeyo.net");
wr.Channel.LastBuildDate = DateTime.Now;
RssItem item;
item.Author = "±èÅ¿µ";
item.Category = "´å³Ý";
item.Link = new Uri("http://www.taeyo.net/Lecture/NET/RssEx02.asp");
item.Title = "RSS Reader ÄÄÆ÷³ÍÆ® ¸¸µé±â";
item.Pubdate = DateTime.Now;
item.Description = "ÀÚ¼¼ÇÑ ¼³¸íÀº ¸µÅ©¸¦ ÅëÇØ¼ È®ÀÎÇϼ¼¿ä";
wr.Items.Add(item);
item.Author = "±èÅ¿µ";
item.Category = "´å³Ý";
item.Link = new Uri("http://www.taeyo.net/Lecture/NET/RssEx01.asp");
item.Title = "RSS¶õ?";
item.Pubdate = DateTime.Now;
item.Description = "ÀÚ¼¼ÇÑ ¼³¸íÀº ¸µÅ©¸¦ ÅëÇØ¼ È®ÀÎÇϼ¼¿ä";
wr.Items.Add(item);
wr.SaveToResponse(Response.OutputStream);
Response.ContentType = "text/xml";
Response.End();
}
|
ȤÀº, ¸Þ¼µå¸¦ ÀÌ¿ëÇØ¼ ´ÙÀ½°ú °°ÀÌ °£´ÜÇÏ°Ô ÀÛ¼ºÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
private void Page_Load(object sender, System.EventArgs e)
{
RssWriter wr = new RssWriter();
wr.AddChannel("Taeyo »çÀÌÆ® ÃÖ±Ù °Á ¸ñ·Ï", new Uri("http://www.taeyo.net"),
"Å¿À »çÀÌÆ® ÃÖ±Ù°ÁÂÀÇ ¸ñ·ÏÀÔ´Ï´Ù", "ko-KO", "Å¿À»çÀÌÆ®", DateTime.Now);
wr.AddItem("±èÅ¿µ", "´å³Ý", "RSS Reader ÄÄÆ÷³ÍÆ® ¸¸µé±â",
new Uri("http://www.taeyo.net/Lecture/NET/RssEx02.asp"), DateTime.Now,
"ÀÚ¼¼ÇÑ ¼³¸íÀº ¸µÅ©¸¦ ÅëÇØ¼ È®ÀÎÇϼ¼¿ä");
wr.AddItem("±èÅ¿µ", "´å³Ý", "RSS¶õ?",
new Uri("http://www.taeyo.net/Lecture/NET/RssEx01.asp"), DateTime.Now,
"ÀÚ¼¼ÇÑ ¼³¸íÀº ¸µÅ©¸¦ ÅëÇØ¼ È®ÀÎÇϼ¼¿ä");
wr.SaveToResponse(Response.OutputStream);
Response.ContentType = "text/xml";
Response.End();
}
|
À§ÀÇ µÎ ¼Ò½º´Â ´ÙÀ½°ú °°ÀÌ Á¤È®ÇÏ°Ô µ¿ÀÏÇÑ °á°ú¸¦ ¸¸µé¾î³»°Ô µË´Ï´Ù. ±×¸®°í, ±× °á°úȸéÀº ´ÙÀ½°ú °°À» °ÍÀÔ´Ï´Ù!!
¸ÚÁöÁÒ?
ÀÌÁ¦ ¿©·¯ºÐÀº µ¥ÀÌÅͺ£À̽º·ÎºÎÅÍ µ¥ÀÌÅ͸¦ °¡Á®¿Í¼ RssWriter¸¦ ÀÌ¿ëÇØ¼ RSS¸¦ ²Ù¹Ð ¼öµµ ÀÖ°í, ¾Æ´Ï¸é, À§¿¡¼ ÇÑ °Íó·³
¼öµ¿À¸·Î µ¥ÀÌÅ͸¦ ä¿ö³Ö¾î¼ RSS¸¦ ±¸¼ºÇÒ ¼öµµ ÀÖÀ» °ÍÀÔ´Ï´Ù. ÁÖ·Î, µ¥ÀÌÅͺ£À̽º¿¡¼ µ¥ÀÌÅ͸¦ °¡Á®¿Í¼ µ¿ÀûÀ¸·Î
RSS¸¦ ²Ù¹Ì´Â °æ¿ì°¡ ´õ ¸¹°ÚÁö¸¸ ¸»ÀÌÁÒ~~
À̷νá 3ȸ¿¡ °ÉÃļ RSS ÄÄÆ÷³ÍÆ® ¸¸µé±â¸¦ °°ÀÌ ÇØ º¸¾Ò´Âµ¥¿ä. Àü¿¡µµ ¸»¾¸µå·È´Ù½ÃÇÇ, À̰ÍÀº ½ÉÇà ¹öÀü¿¡ ºÒ°úÇÕ´Ï´Ù
¿©·¯ºÐÀÇ »óȲ°ú ¿ä±¸Á¶°Ç¿¡ µû¶ó ÀÌ ÄÄÆ÷³ÍÆ®´Â ´õ´õ¿í ¸¹Àº ±â´ÉÀ¸·Î ¹«ÀåµÉ ¼öµµ ÀÖÀ» °Ì´Ï´Ù. ±×°ÍÀº
ÀÌÁ¦ºÎÅÍ ¿©·¯ºÐÀÌ ÇÏ¼Å¾ß ÇÏ´Â ºÎºÐÀÌ µÇ°ÚÁÒ?
Å¿À´å³Ý »çÀÌÆ®·ÎÀÇ ¾÷±×·¹À̵å ÀÛ¾÷°ú Microsoft ¼¼¹Ì³ª ÁغñµîÀÇ ¿©·¯ ¹Ù»Û Àϰú·Î ÀÎÇØ¼ (¹ã¿¡´Â ¾Ö±â°¡ ¿ï±¸.. ¤Ð¤Ð)
°Á°¡ ÀÚÁÖ ¾÷µ¥ÀÌÆ® µÇÁö ¸øÇÑ Á¡ ´ë´ÜÈ÷ Á˼۽º·´°Ô »ý°¢ÇÕ´Ï´Ù.
ÀÌÈķδ ´õ ÀÚÁÖ(one column a week) ¿Ã¸®µµ·Ï ³ë·ÂÇϰڽÀ´Ï´Ù. ^^
¿À´Ãµµ ÁÁÀº ÇÏ·ç µÇ¼¼¿ä.. °¨»çÇÕ´Ï´Ù.
°Á ¸ñ·ÏÀ¸·Î..
|