『Lena's by ☆볶기!!』: Restart !!

Rorolena
2013/01/14
(업무일지 포스팅 안내는이쪽으로)

오늘의 업무내용)_
- XML 웹송출 작성
- SQL 저장프로시저 사용 


- XML 웹송출 작성 -
DB에 들어있는 정보를 원하는 형태로 가공하여 XML로 송출되는 알고리즘을 작성했습니다.
이때 XmlDocument와 XmlWriter형식의 2가지 편집 방법이 있었습니다.
이중 XmlWriter쪽 작성방법이 개인기호와 웹의 각작성자들의 이점적 발언을 근거로 선택하였습니다.
작성방법은 다음을 참고하였습니다.
http://cafe.naver.com/codein/640
http://blog.naver.com/shymina86?Redirect=Log&logNo=129993147

다음의 필요포함 파일이 3개 필요합니다.
using System.IO;
using System.Data;
using System.Xml;

하지만 작성후 출력과정에서 문제에 봉착하였습니다.
소개된 각종 작성물은 전부다 파일형태로 입출력 하도록 작성되어 있었습니다.
이를 해결하기위한 참고를 찾아보니 다음과 같이 소개되어있습니다.
http://stackoverflow.com/questions/12553527/exporting-xmltextwriter-output-to-string-using-vb-net

다음의 필요포함 파일이 1개 필요합니다.
using System.Text;

- 입력설정:
  StringBuilder sb = new StringBuilder();
  StringWriter sw = new StringWriter(sb);
  XmlWriterSettings XmlSetting = new XmlWriterSettings();
  XmlSetting.Encoding =  Encoding.UTF8;
  XmlWriter w = XmlWriter.Create(sw, XmlSetting);

- 웹출력: 
  #region XML 문서 형식의 헤더 생성
  Response.Clear();
  Response.ContentType = "text/xml";
  Response.Charset = "utf-8";
  #endregion
  
  Response.Write(sb.ToString());
  
  #region XML 문서 형식의 종료 및 결과값 반환
  Response.End();
  Response.Flush();
  #endregion

여기까지 하면 정상적인 출력을 확인 할 수 있지만 인코딩 부분이 UTF-16에서 바뀌지 않는것을 확인 할 수 있습니다.
MSDN을 찾아보면 인코딩의 불변 이유를 확인 할 수 있습니다.
http://msdn.microsoft.com/ko-kr/library/system.string(en-us,vs.71).aspx

여기서 또 한차래 검색을 이용한 결과 굳이 이런일 저런일 하지말고 간단한 방법으로 하라는 사실을 확인하였습니다.
http://zmeun.tistory.com/144

- 입력설정(변경/추가):
  UTF8StringWriter sw = new UTF8StringWriter(sb, Encoding.UTF8);

  public class UTF8StringWriter : StringWriter
  {
    Encoding encoding;
    public UTF8StringWriter(StringBuilder sb, Encoding encoding) : base(sb)
    {
      this.encoding = encoding;
    }
    
    public override Encoding Encoding
    {
      get
      {
        return this.encoding;
      }
    }
  }

여기까지 작성후 출력이 원하는 대로 아주잘 출력됩니다.
하지만 현재 작업중인 프로젝트는 Silverlight에서 Xml을 읽어야 하는 관계로 새로운 문제가 접수되었습니다.
이에대한 해결을 사장님께서 재시하여 주셨습니다.
필요 내용은 다음을 참고하였습니다.
http://queenmok.egloos.com/1581979
http://msdn.microsoft.com/ko-kr/library/cc645032(VS.95).aspx

요점은 보안을 위한 정책으로 위의 참고와 같이 작성하여 경로상에 올려두면
경로를 기점으로 이하 디렉토리의 모든페이지에서 Xml에 대한 접근이 가능
해집니다.

- SQL 저장프로시저 사용 -
.NET에서는 쿼리문 처리를 위해서 저장 프로시저를 지원합니다.
다음의 블로그의 3, 4번의 소개대로 SQL서버를 추가하시면 됩니다.
http://ssogarif.tistory.com/2606

프로시저문 작성방법은 다음을 참고하였습니다. 
http://blog.naver.com/experienced?Redirect=Log&logNo=90153657909

'개발실 ◐ ━━ > 작업기록' 카테고리의 다른 글

2013/01/16  (0) 2013.01.18
2013/01/15 (미결 1건)  (0) 2013.01.16
2013/01/11 (미결 1건)  (0) 2013.01.12
2013/01/10  (0) 2013.01.11