°­ÁÂ¿Í ÆÁ

C# : Å×À̺íÀ» XML·Î ÀúÀåÇϱ⠳¯Â¥:2021-7-4 9:47:19 Á¶È¸¼ö:435
ÀÛ¼ºÀÚ : ¼Ò¿£
Æ÷ÀÎÆ® : 1616
°¡ÀÔÀÏ : 2020-02-02 00:09:14
¹æ¹®È½¼ö : 118
±Û 207°³, ´ñ±Û 65°³
¼Ò°³ : SoEn ¿î¿µÀÚÀÔ´Ï´Ù.
ÀÛ¼º±Û º¸±â
ÂÊÁö º¸³»±â
SQL°ú ´å³Ý µ¥ÀÌÅͺ£À̽ºÀÇ ±âº»¸¸ ¾Ë¾Æµµ Å×À̺íÀ» ¸¸µé°í ±×¸®µå¿¡ Ç¥½ÃÇÏ´Â °ÍÀº ¾î·Á¿î ÀÏÀÌ ¾Æ´Ï´Ù. ´ÙÀ½ ÄÚµå´Â tblPeople Å×À̺íÀ» »ý¼ºÇÏ°í ±×¸®µå ºä¿¡ Ãâ·ÂÇÑ´Ù. Æû¿¡ ±×¸®µå Çϳª¸¸ ¹èÄ¡ÇØ µÎ¸é Å×ÀÌºí ³»¿ëÀ» Áï½Ã È®ÀÎÇÒ ¼ö ÀÖ´Ù.

private void Form1_Load(object sender, EventArgs e)
{
    DataTable tblPeople = MakePeopleTable();
    dataGridView1.DataSource = tblPeople;
}

private DataTable MakePeopleTable()
{
      // ³»¿ë »ý·«
}

MakePeopleTable ¸Þ¼­µå´Â DataTable, DataColumn, DataRow¸¦ Â÷·Ê´ë·Î »ý¼ºÇÏ¿© 3°³ÀÇ Çʵ带 °¡Áö´Â 4ÇàÂ¥¸® Ãʰ£´Ü Å×À̺íÀ» ¸¸µç´Ù. ÀÌ ¸Þ¼­µå ³»¿ëÀº ´Ü¼øÇÑ ÃʱâÈ­ ¸í·ÉÀÇ ³ª¿­À̸ç Ã¥ º»¹®¿¡µµ ÀÌ¹Ì °ø°³µÇ¾î ÀÖÀ¸¹Ç·Î Âü°íÇÏÀÚ.
½Ç¹«¿¡¼­´Â ÀÌ·± ½ÄÀ¸·Î Äڵ忡¼­ Å×À̺íÀ» »ý¼ºÇϱ⺸´Ù Äõ¸®¸¦ ÅëÇØ DBMSÀÇ Å×À̺íÀ» Àд °ÍÀÌ º¸ÆíÀûÀÌ°í ¼Õ½±´Ù. ±×·¯³ª ¿¹Á¦¿¡¼­ ±×·¸°Ô ÇÏÀÚ¸é DBMS¿Í ¿¬°áÇØ¾ß ÇÏ°í »ùÇà Å×ÀÌºíµµ ÁغñÇØ¾ß ÇÏ´Â µî ¿©·¯¸ð·Î ¹ø°Å·Î¿ö Å×½ºÆ®ÀÇ ÆíÀÇ»ó Äڵ忡¼­ Å×À̺íÀ» »ý¼ºÇß´Ù.
Á÷Á¢ »ý¼ºÇϵç Äõ¸®¿¡¼­ Àоî¿À°Ç DataTable °´Ã¼¸¦ ±¸ÇßÀ¸¸é ¾î¶² ½ÄÀ¸·Îµç Ȱ¿ëÇÒ ¼ö ÀÖ´Ù. ¿øÇÏ´Â °ªÀ» °Ë»öÇÒ ¼öµµ ÀÖ°í Áý°è¸¦ »êÃâÇϰųª Â÷Æ®¸¦ ±×¸± ¼öµµ ÀÖ´Ù. ´Ü¼øÈ÷ Å×À̺íÀÇ ³»¿ëÀ» È®ÀÎÇØ º¸·Á¸é ±×¸®µå¿¡ ´ëÀÔÇÏ¸é µÈ´Ù.



Äõ¸® ³¯·Á¼­ Å×ÀÌºí ¾ò°í ±× Å×À̺íÀ» »ç¿ëÇÏ´Â °ÍÀº ¾ÆÁÖ ÀÏ»óÀûÀÎ ÄÚµåÀÌ´Ù. ±×·±µ¥ °¡²û ´ÙÀ½°ú °°Àº °æ¿ì°¡ ÀÖ´Ù.

- Å×À̺í Å©±â´Â ÀÛÁö¸¸ ÃßÃâÇØ ³»´Âµ¥ ¾öû³­ ½Ã°£ÀÌ °É¸°´Ù.
- ¿Ø¸¸Çؼ­´Â Å×ÀÌºí ±¸Á¶°¡ ¹Ù²îÁö ¾Ê´Â´Ù.
- ÀÌÈÄÀÇ ÀÛ¾÷ °úÁ¤¿¡ Áß¿äÇÑ ÂüÁ¶ Å×À̺í·Î »ç¿ëÇÑ´Ù.

½Ç¹«¿¡¼­ ÀÌ·± ¿¹°¡ ÀÖ¾ú´Âµ¥ 500¸¸°³ ·¹Äڵ带 °èÃþº°·Î ºÐ·ùÇÏ¿© Æ®¸®·Î Ãâ·ÂÇÏ´Â ÀÏÀ̾ú´Ù. °á°ú Æ®¸® ÀÚü´Â ÀÛÁö¸¸ Àüü Å×À̺íÀ» ½ºÄµÇÏ¿© ³ëµå¸¦ »Ì¾Æ ³»´Â ÀÛ¾÷Àº ´ë·« 10ÃÊ °¡·® ¼Ò¸ðµÇ¾ú´Ù. °Ô´Ù°¡ ÀÌ °èÃþÀº Àß ¹Ù²îÁöµµ ¾Ê°í ´Ã ¶È°°¾Æ ±»ÀÌ ½Ç½Ã°£À¸·Î ¸Å¹ø Á¶»çÇÒ Çʿ䵵 ¾ø´Ù.
ÀÌ·± Å×À̺íÀ» ÇÁ·Î±×·¥ ½ÃÀÛÇÒ ¶§¸¶´Ù Á¶»çÇÏ¸é ½ÃÀÛÀÌ 10Ãʰ£ Áö¿¬µÇ´Â ½É°¢ÇÑ ºÎÀÛ¿ëÀÌ ³ªÅ¸³­´Ù. ÀÌ·² ¶§´Â ¸Å¹ø º¹ÀâÇÑ Äõ¸®¸¦ ½ÇÇàÇÏÁö ¸»°í Å×ÀÌºí ³»¿ëÀ» ¾îµò°¡¿¡ µû·Î ÀúÀåÇØ ³õ°í ÀúÀåµÈ ³»¿ëÀ» ÀÐ¾î ¿À¸é µÈ´Ù. Àӽà Å×ÀÌºíµµ ÇÑ ¹æÆíÀÌ°í ¿ä¾à Å×À̺íÀ» µû·Î ¸¸µå´Â ¹æ¹ýµµ ÀÖ´Ù.
¿©±â¼­´Â Å×ÀÌºí ³»¿ëÀ» XML·Î »Ì¾Æ ³»¾î ±× ¹®ÀÚ¿­À» ÀúÀåÇØ ³õ°í XML·ÎºÎÅÍ ´Ù½Ã Å×À̺íÀ» »ý¼ºÇÏ´Â ±â¹ýÀ» ¼Ò°³ÇÑ´Ù. XMLÀº ÀÓÀÇÀÇ ¸ðµç Å×À̺íÀ» ´Ù Ç¥ÇöÇÒ ¼ö ÀÖ°í ±æÀ̵µ ª¾Æ Àд °Íµµ ¼ø°£ÀûÀÌ´Ù. Àß º¯ÇÏÁö ¾Ê´Â º¹ÀâÇÑ Å×À̺íÀ» ÀúÀåÇØ ³õÀ» ¶§ ¾ÆÁÖ À¯¿ëÇÏ´Ù.
ÄÚµå´Â ´ÙÀ½°ú °°´Ù. ¸Þ¸ð¸® ½ºÆ®¸²À» »ý¼ºÇϰí WriteXml, ReadXml·Î ÀÔÃâ·ÂÇÏ´Â ÄÚµåÀ̸ç ÁÖÀÇ »çÇ׿¡ ´ëÇØ ÁÖ¼®À» »ó¼¼È÷ ´Þ¾Æ ³õ¾ÒÀ¸¹Ç·Î ÀÚ¼¼ÇÑ ¼³¸íÀº »ý·«ÇÑ´Ù. À¯»çÇÑ µ¿ÀÛÀ» ±¸ÇöÇÏ·Á¸é ÀÌ ÄÚµå´ë·Î ±×´ë·Î µû¶óÇÏ¸é µÈ´Ù.

private void Form1_Load(object sender, EventArgs e)
{
    DataTable tblPeople = MakePeopleTable();

    // ·¹Äڵ忡 ´ëÇÑ ¿¤¸®¸ÕÆ®¸íÀ¸·Î »ç¿ëÇÒ Å×À̺í¸í ÁöÁ¤. »ý·«½Ã ¿¡·¯ÀÌ¸ç ¹Ýµå½Ã À̸§ÀÌ ÀÖ¾î¾ß ÇÑ´Ù.
    tblPeople.TableName = "test";
    MemoryStream ms = new MemoryStream();
    // ½ºÅ°¸¶¸¦ »ý¼ºÇϵµ·Ï ¿É¼Ç ÁöÁ¤. IgnoreSchema ÀÌ¸é ½ºÅ°¸¶°¡ »ý·«µÇ¾î Å×ÀÌºí ±¸Á¶¸¦ À¯ÃßÇÒ ¼ö ¾ø´Ù.
    tblPeople.WriteXml(ms, XmlWriteMode.WriteSchema);
    // ½ºÆ®¸²¿¡ UTF8·Î ÀúÀåµÇ´Âµ¥ C#¿¡¼­ ¾²±â ÆíÇÏ°Ô String °´Ã¼·Î º¯È¯ÇÑ´Ù
    String xml = Encoding.UTF8.GetString(ms.ToArray());

    // ÀÌ·¸°Ô ¸¸µç xml ¹®ÀÚ¿­À» ´Ù¸¥ Å×À̺íÀÇ Ä÷³, ·¹Áö½ºÆ®¸®, ÅØ½ºÆ® ÆÄÀÏ µî¿¡ ÀúÀåÇØ µÐ´Ù.
    // ´Ü¼øÇÑ ¹®ÀÚ¿­À̹ǷΠÀúÀå ¹× º¹±¸°¡ Æí¸®ÇÏ´Ù.

    // ¹®ÀÚ¿­À» UTF8·Î º¯È¯ÇÑ´Ù.
    byte[] raw = Encoding.UTF8.GetBytes(xml);
    // ÀÌ ¹®ÀÚ¿­À» °¡Áö´Â ½ºÆ®¸²À» »ý¼ºÇÑ´Ù.
    MemoryStream ms2 = new MemoryStream(raw);
    // ºó Å×À̺íÀ» »ý¼ºÇÏ°í ½ºÆ®¸²À¸·ÎºÎÅÍ Å×À̺íÀ» ÀÐ¾î µéÀδÙ.
    DataTable tblPeople2 = new DataTable();
    tblPeople2.ReadXml(ms2);

    // XML·ÎºÎÅÍ ¸¸µç Å×À̺íÀ» ±×¸®µå¿¡ Ãâ·ÂÇÑ´Ù.
    dataGridView1.DataSource = tblPeople2;
}

tblPeopleÀ» XML ¹®ÀÚ¿­·Î º¯È¯Çϰí XML ¹®ÀÚ¿­·ÎºÎÅÍ tblPeople2¸¦ ´Ù½Ã »ý¼ºÇÑ´Ù. Áß°£¿¡ »ý¼ºµÇ´Â XML ¹®ÀÚ¿­À» MessageBox·Î Âï¾î º¸¸é ´ÙÀ½°ú °°Àº ¸ð¾çÀÌ¸ç ½ºÅ°¸¶¿Í µ¥ÀÌÅͰ¡ ¿Ïº®ÇÏ°Ô ÀúÀåµÇ¾î ÀÖ´Ù.



ÀÌ XMLÀ» ¾îµò°¡¿¡ ÀúÀåÇØ ³õ±â¸¸ ÇÏ¸é ¶È°°Àº Å×À̺íÀ» ¾ðÁ¦µçÁö ½Å¼ÓÇÏ°Ô »ý¼ºÇÒ ¼ö ÀÖ´Ù. tblPeople2¸¦ »ý¼ºÇÏ¿© ±×¸®µå¿¡ Ãâ·ÂÇØ º¸¾Ò´Ù. Áß°£ °úÁ¤À» Çѹø ´õ °ÅÃÆÀ» »Ó ½ÇÇà °á°ú´Â ¿ÏÀüÈ÷ °°´Ù.
ÀÌ·± Å×À̺í ÀúÀå ±â¹ýÀº ¾ÆÁÖ ½Ç¿ëÀûÀÌ´Ù. Å×À̺íÀ» ±¸ÇÏ´Â ½Ã°£ÀÌ ¾Æ¹«¸® ±æ¾îµµ XML·Î Çѹø¸¸ ±¸ÇØ µÎ¸é ¼ø°£ÀûÀ¸·Î Å×À̺íÀ» »ý¼ºÇϹǷΠ¹ÝÀÀ¼ºÀÌ Çâ»óµÈ´Ù. ¶ÇÇÑ ½ÇÇàÇÒ ¶§¸¶´Ù º¹ÀâÇÑ Å×À̺íÀ» ¸Å¹ø »ý¼ºÇÏÁö ¾Ê¾Æ ¼­¹ö¸¦ ´ú ±«·ÓÈ÷´Â ±àÁ¤ÀûÀÎ È¿°úµµ ÀÖ´Ù. ¼­¹ö°¡ 10Ãʰ£ ¹º°¡¿¡ ¸ôµÎÇÏ´Â °ÍÀº ÀüüÀûÀÎ ¼º´É¿¡µµ ¹Ù¶÷Á÷ÇÏÁö ¾Ê´Ù.
½Ç¹«¿¡ ÀÌ ¹æ½ÄÀ» Àû¿ëÇÑ ÈÄ Æû ½ÃÀÛÀÌ »¡¶óÁ® ¾ÆÁÖ ÄèÀûÇØÁ³´Ù. ´Ù¸¸ ÀúÀåÇØ ³õÀº µ¥ÀÌÅÍÀÌÁö ¶óÀÌºê µ¥ÀÌÅͰ¡ ¾Æ´Ï¾î¼­ Ȥ½Ã¶óµµ ¿øº» µ¥ÀÌÅͰ¡ ¹Ù²ï´Ù¸é ÁÖ±âÀûÀ¸·Î °»½ÅÇØ ÁÖ¾î¾ß ÇÑ´Ù´Â ´ÜÁ¡ÀÌ ÀÖ´Ù. ÁÖ±âÀûÀ¸·Î ¹Ù²î´Â Å×ÀÌºí¿¡ ÀÌ ±â¹ýÀ» ¾µ ¶§´Â ¾÷µ¥ÀÌÆ®¿¡ ´ëÇØ¼­µµ °í·ÁÇØ¾ß ÇÑ´Ù.
Å×À̺íÀ» ÀúÀåÇØ ³õ´Â ¿ëµµ·Î´Â XML ¿Ü¿¡ JSON Æ÷¸Ëµµ ¾µ¸¸ÇÏ´Ù. XML º¸´Ù Çü½ÄÀÌ ´Ü¼øÇؼ­ °á°ú ¹®ÀÚ¿­ÀÌ Âª´Ù´Â ÀÌÁ¡ÀÌ ÀÖ´Ù. ´Ù¸¸, XMLÀº ´å³ÝÀÌ ±âº» Áö¿øÇÏ¿© °£ÆíÇÏ°í °á°ú°¡ Ç×»ó ÀÏÁ¤ÇÏÁö¸¸ JSONÀº º°µµÀÇ ÂüÁ¶¸¦ Ãß°¡ÇØ¾ß ÇÑ´Ù´Â Á¡¿¡¼­ Á» ¹ø°Å·Ó°í ¶óÀ̺귯¸®¿¡ µû¶ó »ç¿ë ¹æ¹ýÀÌ ¾à°£¾¿ ´Þ¶óÁö±âµµ ÇÑ´Ù.

 



°³¹ßÀÚÀÇ Ãµ±¹ SoEn

¸ñ·Ïº¸±â »èÁ¦ ¼öÁ¤ ½Å°í ½ºÅ©·¦


·Î±×ÀÎÇÏ¼Å¾ß ´ñ±ÛÀ» ´Þ ¼ö ÀÖ½À´Ï´Ù.