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

Taeyo's ASP.NET

   °­Á ÃÖÃÊ ÀÛ¼ºÀÏ : 2004³â 10¿ù 02ÀÏ
   °­Á ÃÖÁ¾ ¼öÁ¤ÀÏ : 2004³â 10¿ù 04ÀÏ

   °­Á ÀÐÀ½ ¼ö : ȸ

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

   °­Á Á¦¸ñ : RSS Writer ÄÄÆ÷³ÍÆ® ¸¸µé±â

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

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) ¿Ã¸®µµ·Ï ³ë·ÂÇϰڽÀ´Ï´Ù. ^^

¿À´Ãµµ ÁÁÀº ÇÏ·ç µÇ¼¼¿ä.. °¨»çÇÕ´Ï´Ù.

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