1. 목적 : Excel 파일로 다운로드시 HTML Tag 없이, 순수 Text 만 저장함


2. 이슈 : Intercept 등을 이용해 데이터 컨버전을 하게되면, 다량의 데이터를 내려받는 업무에서 속도가 30% 정도 느려지는 현상 발생. 


3. 상황 

1) 프로젝트에서 웹 에디터를 이용하여 컨텐츠를 저장함. 이 에디터로 저장된 컨텐츠들은 HTML Tag 가 포함되어 있음


2) DB에 저장될 때 HTML Tag를 포함한 데이터들은 XSS 보안을 위해 Encoding data 로 변환하여 저장됨

    예] 

Hello World<br />

<em><strong>Hello World</strong></em>

==>

Hello World&lt;br /&gt;

&lt;em&gt;&lt;strong&gt;Hello World&lt;/strong&gt;&lt;/em&gt;


3) DB에 저장될 때 HTML Tag를 포함한 데이터들은 XSS 보안을 위해 Encoding data 로 변환하여 저장됨 


4. 해결

     1) 오라클의 내장 함수 REGEXP_REPLACE, DBMS_XMLGEN.CONVERT 사용

          DBMS_XMLGEN.CONVERT 를 사용하여 Encoding 값을 HTML Tag로 변환 후 REGEXP_REPLACE 을 이용하여 HTML Tag 는 빈 값으로 변경한다.

       예]

          REGEXP_REPLACE(DBMS_XMLGEN.CONVERT(HTML_ENCODED_DATA, 1), '<[^>]*>|\&([^;])*;', '') AS ONLY_TEXT_DATA

      

5. Encoding 값을 곧바로 REGEXP_REPLACE 를 사용하여 변경할 수도 있을거 같으나, 100% 만족하는 규칙을 찾을 수 없어, 위와 같이 처리함.

+ Recent posts