mysql 워크벤치에 dark theme query 적용하기


안녕하세요.
고코더 입니다.


MySQL의 아쉬운 편의성 중에 하나는
다크테마를 제공하지 않는 것입니다.

요즘 IDE 툴은 모두 기본 다크테마를 제공합니다.
하지만 다행히도 에디터 환경설정의 .xml 을 바꾸는 
방법으로 다크테마를 세팅 하는게 가능합니다.

▼ 현재 8.0까지 버전이 나왔지만 해당 가능한 버전은
6.0이하 입니다. 



▼ 기본 SQL 기본 테마 입니다.
익숙한 새상의 쿼리 인데요. 보기는 편하지만
나머지 툴들은 다 다크테마인데 얘만 혼자 흰생 바탕 두기에는
부담스럽습니다. 


▼ 스택오버플로우에 나온 방법대로 
다크테마를 설정해보겠습니다.

▼ 에디터 색상 변경할수 있는 URL은 아래와 같습니다.
(버전마다 다르니 자신의 폴더로 이동해주세요.)
C:\Program Files\MySQL\MySQL Workbench 6.3 CE\data




기본 다크테마 설정 


▼ 기본적인 다크 테마입니다. 
기본적인 색상 느낌을 살려서 가장 익숙한 다크테마 방식 입니다. 



▼ code_editor.xml 에 내용중에 스타일 태그를 아래로 바꿔 주세요.
<style id= "0" fore-color="#DDDDDD" back-color="#2A2A2A" bold="No" />   <!-- SCE_MYSQL_DEFAULT                  -->
<style id= "1" fore-color="#999999" back-color="#2A2A2A" bold="No" />   <!-- SCE_MYSQL_COMMENT                  -->
<style id= "2" fore-color="#999999" back-color="#2A2A2A" bold="No" />   <!-- SCE_MYSQL_COMMENTLINE              -->
<style id= "3" fore-color="#DDDDDD" back-color="#2A2A2A" bold="No" />   <!-- SCE_MYSQL_VARIABLE                 -->
<style id= "4" fore-color="#9B859D" back-color="#2A2A2A" bold="No" />   <!-- SCE_MYSQL_SYSTEMVARIABLE           -->
<style id= "5" fore-color="#9B859D" back-color="#2A2A2A" bold="No" />   <!-- SCE_MYSQL_KNOWNSYSTEMVARIABLE      -->
<style id= "6" fore-color="#FF8080" back-color="#2A2A2A" bold="No" />   <!-- SCE_MYSQL_NUMBER                   -->
<style id= "7" fore-color="#7AAAD7" back-color="#2A2A2A" bold="No" />   <!-- SCE_MYSQL_MAJORKEYWORD             -->
<style id= "8" fore-color="#7AAAD7" back-color="#2A2A2A" bold="No" />   <!-- SCE_MYSQL_KEYWORD                  -->
<style id= "9" fore-color="#9B859D" back-color="#2A2A2A" bold="No" />   <!-- SCE_MYSQL_DATABASEOBJECT           -->
<style id="10" fore-color="#DDDDDD" back-color="#2A2A2A" bold="No" />   <!-- SCE_MYSQL_PROCEDUREKEYWORD         -->
<style id="11" fore-color="#B9CB89" back-color="#2A2A2A" bold="No" />   <!-- SCE_MYSQL_STRING                   -->
<style id="12" fore-color="#B9CB89" back-color="#2A2A2A" bold="No" />   <!-- SCE_MYSQL_SQSTRING                 -->
<style id="13" fore-color="#B9CB89" back-color="#2A2A2A" bold="No" />   <!-- SCE_MYSQL_DQSTRING                 -->
<style id="14" fore-color="#FFBB80" back-color="#2A2A2A" bold="No" />   <!-- SCE_MYSQL_OPERATOR                 -->
<style id="15" fore-color="#9B859D" back-color="#2A2A2A" bold="No" />   <!-- SCE_MYSQL_FUNCTION                 -->
<style id="16" fore-color="#DDDDDD" back-color="#2A2A2A" bold="No" />   <!-- SCE_MYSQL_IDENTIFIER               -->
<style id="17" fore-color="#B9CB89" back-color="#2A2A2A" bold="No" />   <!-- SCE_MYSQL_QUOTEDIDENTIFIER         -->
<style id="18" fore-color="#B9CB89" back-color="#2A2A2A" bold="No" />   <!-- SCE_MYSQL_USER1                    -->
<style id="19" fore-color="#B9CB89" back-color="#2A2A2A" bold="No" />   <!-- SCE_MYSQL_USER2                    -->
<style id="20" fore-color="#B9CB89" back-color="#2A2A2A" bold="No" />   <!-- SCE_MYSQL_USER3                    -->
<style id="21" fore-color="#FFBB80" back-color="#707070" bold="No" />   <!-- SCE_MYSQL_HIDDENCOMMAND            -->
<style id="22" fore-color="#909090" back-color="#707070" bold="No" />   <!-- SCE_MYSQL_PLACEHOLDER              -->

<!-- These two are for scintilla globally. -->
<style id="32" fore-color="#DDDDDD" back-color="#2A2A2A" bold="No" />   <!-- STYLE_DEFAULT                      THIS IS THE ONE FOR THE BACKGROUND!!!!! -->
<style id="33" fore-color="#2A2A2A" back-color="#DDDDDD" bold="No" />   <!-- STYLE_LINENUMBER                   -->

<!-- All styles again in their variant in a hidden command (with a 0x40 offset). -->
<style id="65" fore-color="#999999" back-color="#707070" bold="No" />   <!-- SCE_MYSQL_COMMENT                  -->
<style id="66" fore-color="#999999" back-color="#707070" bold="No" />   <!-- SCE_MYSQL_COMMENTLINE              -->
<style id="67" fore-color="#DDDDDD" back-color="#707070" bold="No" />   <!-- SCE_MYSQL_VARIABLE                 -->
<style id="68" fore-color="#9B859D" back-color="#707070" bold="No" />   <!-- SCE_MYSQL_SYSTEMVARIABLE           -->
<style id="69" fore-color="#9B859D" back-color="#707070" bold="No" />   <!-- SCE_MYSQL_KNOWNSYSTEMVARIABLE      -->
<style id="70" fore-color="#FF8080" back-color="#707070" bold="No" />   <!-- SCE_MYSQL_NUMBER                   -->
<style id="71" fore-color="#7AAAD7" back-color="#707070" bold="No" />   <!-- SCE_MYSQL_MAJORKEYWORD             -->
<style id="72" fore-color="#7AAAD7" back-color="#707070" bold="No" />   <!-- SCE_MYSQL_KEYWORD                  -->
<style id="73" fore-color="#9B859D" back-color="#707070" bold="No" />   <!-- SCE_MYSQL_DATABASEOBJECT           -->
<style id="74" fore-color="#DDDDDD" back-color="#707070" bold="No" />   <!-- SCE_MYSQL_PROCEDUREKEYWORD         -->
<style id="75" fore-color="#B9CB89" back-color="#707070" bold="No" />   <!-- SCE_MYSQL_STRING                   -->
<style id="76" fore-color="#B9CB89" back-color="#707070" bold="No" />   <!-- SCE_MYSQL_SQSTRING                 -->
<style id="77" fore-color="#B9CB89" back-color="#707070" bold="No" />   <!-- SCE_MYSQL_DQSTRING                 -->
<style id="78" fore-color="#FFBB80" back-color="#707070" bold="No" />   <!-- SCE_MYSQL_OPERATOR                 -->
<style id="79" fore-color="#9B859D" back-color="#707070" bold="No" />   <!-- SCE_MYSQL_FUNCTION                 -->
<style id="80" fore-color="#DDDDDD" back-color="#707070" bold="No" />   <!-- SCE_MYSQL_IDENTIFIER               -->
<style id="81" fore-color="#B9CB89" back-color="#707070" bold="No" />   <!-- SCE_MYSQL_QUOTEDIDENTIFIER         -->
<style id="82" fore-color="#B9CB89" back-color="#707070" bold="No" />   <!-- SCE_MYSQL_USER1                    -->
<style id="83" fore-color="#B9CB89" back-color="#707070" bold="No" />   <!-- SCE_MYSQL_USER2                    -->
<style id="84" fore-color="#B9CB89" back-color="#707070" bold="No" />   <!-- SCE_MYSQL_USER3                    -->
<style id="85" fore-color="#FFBB80" back-color="#909090" bold="No" />   <!-- SCE_MYSQL_HIDDENCOMMAND            -->
<style id="86" fore-color="#AAAAAA" back-color="#909090" bold="No" />   <!-- SCE_MYSQL_PLACEHOLDER              -->

▼ 첨부파일도 올려 드립니다. 
code_editor.xml 파일을 대체하셔도 됩니다. 

mysql벤치_다크테마.zip






Monica 다크테마 버전 


▼ 요즘 대세이지만 저는 개인적으로 안좋아하는 monica 테마 입니다. 
아래 처럼 강조할 부분에서 빨간 계열이 매력적입니다.


▼ 역시 똑같이 code_editor.xml 파일의 스타일 태그를 변경해주세요.
<!--
    dark-gray:         #282828;
    brown-gray:        #49483E;
    gray:              #888888;
    light-gray:        #CCCCCC;
    ghost-white:       #F8F8F0;
    light-ghost-white: #F8F8F2;
    yellow:            #E6DB74;
    blue:              #66D9EF;
    pink:              #F92672;
    purple:            #AE81FF;
    brown:             #75715E;
    orange:            #FD971F;
    light-orange:      #FFD569;
    green:             #A6E22E;
    sea-green:         #529B2F;
-->

<style id="32" fore-color="#DDDDDD" back-color="#282828" bold="No" />   <!-- STYLE_DEFAULT       !BACKGROUND!   -->
<style id="33" fore-color="#DDDDDD" back-color="#282828" bold="No" />   <!-- STYLE_LINENUMBER                   -->
<style id= "0" fore-color="#DDDDDD" back-color="#282828" bold="No" />   <!-- SCE_MYSQL_DEFAULT                  -->

<style id= "1" fore-color="#999999" back-color="#282828" bold="No" />   <!-- SCE_MYSQL_COMMENT                  -->
<style id= "2" fore-color="#999999" back-color="#282828" bold="No" />   <!-- SCE_MYSQL_COMMENTLINE              -->
<style id= "3" fore-color="#DDDDDD" back-color="#282828" bold="No" />   <!-- SCE_MYSQL_VARIABLE                 -->
<style id= "4" fore-color="#66D9EF" back-color="#282828" bold="No" />   <!-- SCE_MYSQL_SYSTEMVARIABLE           -->
<style id= "5" fore-color="#66D9EF" back-color="#282828" bold="No" />   <!-- SCE_MYSQL_KNOWNSYSTEMVARIABLE      -->
<style id= "6" fore-color="#AE81FF" back-color="#282828" bold="No" />   <!-- SCE_MYSQL_NUMBER                   -->
<style id= "7" fore-color="#F92672" back-color="#282828" bold="No" />   <!-- SCE_MYSQL_MAJORKEYWORD             -->
<style id= "8" fore-color="#F92672" back-color="#282828" bold="No" />   <!-- SCE_MYSQL_KEYWORD                  -->
<style id= "9" fore-color="#9B859D" back-color="#282828" bold="No" />   <!-- SCE_MYSQL_DATABASEOBJECT           -->
<style id="10" fore-color="#DDDDDD" back-color="#282828" bold="No" />   <!-- SCE_MYSQL_PROCEDUREKEYWORD         -->
<style id="11" fore-color="#E6DB74" back-color="#282828" bold="No" />   <!-- SCE_MYSQL_STRING                   -->
<style id="12" fore-color="#E6DB74" back-color="#282828" bold="No" />   <!-- SCE_MYSQL_SQSTRING                 -->
<style id="13" fore-color="#E6DB74" back-color="#282828" bold="No" />   <!-- SCE_MYSQL_DQSTRING                 -->
<style id="14" fore-color="#F92672" back-color="#282828" bold="No" />   <!-- SCE_MYSQL_OPERATOR                 -->
<style id="15" fore-color="#9B859D" back-color="#282828" bold="No" />   <!-- SCE_MYSQL_FUNCTION                 -->
<style id="16" fore-color="#DDDDDD" back-color="#282828" bold="No" />   <!-- SCE_MYSQL_IDENTIFIER               -->
<style id="17" fore-color="#E6DB74" back-color="#282828" bold="No" />   <!-- SCE_MYSQL_QUOTEDIDENTIFIER         -->
<style id="18" fore-color="#529B2F" back-color="#282828" bold="No" />   <!-- SCE_MYSQL_USER1                    -->
<style id="19" fore-color="#529B2F" back-color="#282828" bold="No" />   <!-- SCE_MYSQL_USER2                    -->
<style id="20" fore-color="#529B2F" back-color="#282828" bold="No" />   <!-- SCE_MYSQL_USER3                    -->
<style id="21" fore-color="#66D9EF" back-color="#49483E" bold="No" />   <!-- SCE_MYSQL_HIDDENCOMMAND            -->
<style id="22" fore-color="#909090" back-color="#49483E" bold="No" />   <!-- SCE_MYSQL_PLACEHOLDER              -->
<!-- All styles again in their variant in a hidden command -->
<style id="65" fore-color="#999999" back-color="#49483E" bold="No" />   <!-- SCE_MYSQL_COMMENT                  -->
<style id="66" fore-color="#999999" back-color="#49483E" bold="No" />   <!-- SCE_MYSQL_COMMENTLINE              -->
<style id="67" fore-color="#DDDDDD" back-color="#49483E" bold="No" />   <!-- SCE_MYSQL_VARIABLE                 -->
<style id="68" fore-color="#66D9EF" back-color="#49483E" bold="No" />   <!-- SCE_MYSQL_SYSTEMVARIABLE           -->
<style id="69" fore-color="#66D9EF" back-color="#49483E" bold="No" />   <!-- SCE_MYSQL_KNOWNSYSTEMVARIABLE      -->
<style id="70" fore-color="#AE81FF" back-color="#49483E" bold="No" />   <!-- SCE_MYSQL_NUMBER                   -->
<style id="71" fore-color="#F92672" back-color="#49483E" bold="No" />   <!-- SCE_MYSQL_MAJORKEYWORD             -->
<style id="72" fore-color="#F92672" back-color="#49483E" bold="No" />   <!-- SCE_MYSQL_KEYWORD                  -->
<style id="73" fore-color="#9B859D" back-color="#49483E" bold="No" />   <!-- SCE_MYSQL_DATABASEOBJECT           -->
<style id="74" fore-color="#DDDDDD" back-color="#49483E" bold="No" />   <!-- SCE_MYSQL_PROCEDUREKEYWORD         -->
<style id="75" fore-color="#E6DB74" back-color="#49483E" bold="No" />   <!-- SCE_MYSQL_STRING                   -->
<style id="76" fore-color="#E6DB74" back-color="#49483E" bold="No" />   <!-- SCE_MYSQL_SQSTRING                 -->
<style id="77" fore-color="#E6DB74" back-color="#49483E" bold="No" />   <!-- SCE_MYSQL_DQSTRING                 -->
<style id="78" fore-color="#F92672" back-color="#49483E" bold="No" />   <!-- SCE_MYSQL_OPERATOR                 -->
<style id="79" fore-color="#9B859D" back-color="#49483E" bold="No" />   <!-- SCE_MYSQL_FUNCTION                 -->
<style id="80" fore-color="#DDDDDD" back-color="#49483E" bold="No" />   <!-- SCE_MYSQL_IDENTIFIER               -->
<style id="81" fore-color="#E6DB74" back-color="#49483E" bold="No" />   <!-- SCE_MYSQL_QUOTEDIDENTIFIER         -->
<style id="82" fore-color="#529B2F" back-color="#49483E" bold="No" />   <!-- SCE_MYSQL_USER1                    -->
<style id="83" fore-color="#529B2F" back-color="#49483E" bold="No" />   <!-- SCE_MYSQL_USER2                    -->
<style id="84" fore-color="#529B2F" back-color="#49483E" bold="No" />   <!-- SCE_MYSQL_USER3                    -->
<style id="85" fore-color="#66D9EF" back-color="#888888" bold="No" />   <!-- SCE_MYSQL_HIDDENCOMMAND            -->
<style id="86" fore-color="#AAAAAA" back-color="#888888" bold="No" />   <!-- SCE_MYSQL_PLACEHOLDER              -->

▼ 역시 첨부파일도 올려 드립니다. 
code_editor.xml 파일을 대체하셔도 됩니다. 

mysql벤치_monica테마.zip



8.0부터는 mac에서는 다크테마를 제공 윈도우는 곧 제공할 예


현재 mac mysql worlkbench 버전 8.0.15에서는 다크테마를 제공중이라고 합니다.
그리고 윈도우도 곧 다크테마를 출시한다고 합니다. 
그러면 쿼리창 외에도 나머지 대화창도 다크테마가 가능하겠네요.


우선은 출시가 안됐으니 
xml을 바꿔 사용해보세요.


SQL 관련 추천 컨텐츠



마무리


SQL을 가장 뚫어져라 쳐다보는데
눈이 덜 피로 하겠네요




댓글을 달아 주세요


This page contains the following errors:
error on line 0 at column 0: xmlParseEntityRef: no name
Below is a rendering of the page up to the first error.


안녕하세요.
고코더 입니다.

요즘은 Json 혹은 XM로 백엔드 
API를 만드는게 보통입니다.

그래서 많이들 다양한 에러를 경험하고 계실텐데요
저도 XML 개발중에 아래와 같은 오류가 발생했습니다.

바로 xmlParseEntityRef 오류입니다.

▼ XML 작성하는데 아래와 같은 오류가 발생했습니다.


XML은 꺽쇠 "<", ">"등을 이용합니다.
엘리먼트의 값을 나타낼때 쓰이죠

XML에 담은 내용이 HTML 코드이거나 꺽쇠나 특수문자가 들어간다면
위와 같은 오류가 발생합니다.




해결방법


그래서 XML에서는
하나의 규약을 만들었습니다.
바로 "CDATA(Character Data)" 입니다.

XML 안에 들어갈 내용이 데이터라면
이 명령어로 알려주면 됩니다.

예제로 표현한다면 아래와 같습니다. 

<data>
<![CDATA[
    "<고코더 IT Express>"
]]>
</data>

이렇게 CDATA 안에서는 자유롭게 특수문자를 사용해도
XML 규약이 알아서 해결 해줍니다.




마무리


XML 규약만 지킨다면
참 쉽고 편리합니다.


댓글을 달아 주세요


ASP Ceil() 쉽게 사용하기


안녕하세요.
고코더 입니다.


ASP는 오래된 언어라
생략 되어 있는 기본 함수가 몇몇 있습니다.

그 중에 많이 사용하는 소수점 무조건 올림인
Ceil 이 존재하지 않습니다.
"네 정말 없습니다."

그래서 예전에 ceil 함수를 
구현한걸 공유 해드립니다.

▼ 웹에서 실행해보세요.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<%
function Ceil(value)
 
If isNumeric(value) = True Then    
    Ceil = -(Int(-(value)))  
Else
    Ceil =     value
End If     
 
end function
Response.Write Ceil(1.0)    ' 1
Response.Write Ceil(1.1)    ' 2
Response.Write Ceil(-2.9)    ' -3
Response.Write Ceil("GoCoder")    'GoCoder
 
%>

cs



예전 프로젝트때 만들어 쓰던 함수라 문제는 없습니다.

감사합니다.


마무리


다시 ASP를 꺼내보니 재밌네요


Tag ASP, ceil, XML

댓글을 달아 주세요


네이버 쇼핑 API 파싱 샘플


안녕하세요.
고코더 입니다.


제 홈페이지 묻고 답하기 게시판에
첫 글이 올라왔습니다.

ASP 팁 강의를 좀더 다뤄 달라고 하는 요청이었습니다.
제 에버노트에 정리한 ASP 개인 레퍼런스 문서를
거의 블로그에 올려서 쓸게 없지만

▼고코더의 에버노트 ASP노트북 일부분 모습 


잘 찾아보니 네이버 쇼핑 API를 파싱했던 예제가 있어 올립니다.
사실 큰 도움이 안될 수도 있는 소스 이지만
누군가에게는 시간을 아끼는 귀중한 자료가 되길
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<%
  Set objXmlHttp = server.CreateObject("Msxml2.ServerXMLHTTP.3.0")
  objXmlHttp.open "POST""http://openapi.naver.com/search?key=APIkey&query="& Replace(goodsname,"&","")&"&display=5&start=1&target=shop&sort=asc"false
 
  objXmlHttp.setRequestHeader "Content-Type""application/x-www-form-urlencoded"
  objXmlHttp.send
  strResponseText = objXmlHttp.responseText
  Set objXmlHttp = Nothing
 
  Set objMsXmlDom = Server.CreateObject("microsoft.XMLDOM")
  objMsXmlDom.async = false
  objMsXmlDom.loadXML(strResponseText)
 
  If len(strResponseText) < 400 Then
       refer_title= "상품명이 잘못됐거나, 상품명에 맞는 XML이 없습니다." '& Trim( objMsXmlDom.getElementsByTagName("channel/item/title").Item(0).TeXt)
       refer_link = "상품명이 잘못됐거나, 상품명에 맞는 XML이 없습니다." '& Trim( objMsXmlDom.getElementsByTagName("channel/item/link").Item(0).Text)
       refer_image = "상품명이 잘못됐거나, 상품명에 맞는 XML이 없습니다." '& Trim( objMsXmlDom.getElementsByTagName("channel/item/image").Item(0).Text)
       refer_lprice = 0
       refer_mallName = "상품명이 잘못됐거나, 상품명에 맞는 XML이 없습니다." '& Trim( objMsXmlDom.getElementsByTagName("channel/item/mallName").Item(0).Text)
       refer_productId = "상품명이 잘못됐거나, 상품명에 맞는 XML이 없습니다." '& Trim( objMsXmlDom.getElementsByTagName("channel/item/productId").Item(0).Text)
       refer_productType = "상품명이 잘못됐거나, 상품명에 맞는 XML이 없습니다." '& Trim( objMsXmlDom.getElementsByTagName("channel/item/productType").Item(0).Text)
 
  Else
       '추출 (getElementsByTagName("xml엘리먼트명"))
       refer_title= "" & Trim( objMsXmlDom.getElementsByTagName("channel/item/title").Item(0).TeXt)
       refer_link = "" & Trim( objMsXmlDom.getElementsByTagName("channel/item/link").Item(0).Text)
       refer_image = "" & Trim( objMsXmlDom.getElementsByTagName("channel/item/image").Item(0).Text)
       refer_lprice = "" & Trim( objMsXmlDom.getElementsByTagName("channel/item/lprice").Item(0).Text)
       refer_mallName = "" & Trim( objMsXmlDom.getElementsByTagName("channel/item/mallName").Item(0).Text)
       refer_productId = "" & Trim( objMsXmlDom.getElementsByTagName("channel/item/productId").Item(0).Text)
       refer_productType = "" & Trim( objMsXmlDom.getElementsByTagName("channel/item/productType").Item(0).Text)
      
  End If
  Set objMsXmlDom = Nothing
%>
cs






마무리


많이 질문해주세요
최대한 다 다뤄보겠습니다!!



댓글을 달아 주세요


TISTORY SITEMAP 제작 


안녕하세요.
고코더 입니다.

SITE MAP 을 만들 수 있는 
XML 사이트를 지난 번에 다루었는데요.

막상 이 사이트맵을 만드는 방법을 설명한 글이 없어서
남깁니다. 

사이트는 SITEMAP을 만들어 검색엔진의 제공하면
더 쉽게 엔진들이 사이트를 누비면서 색인을 만들어 냅니다.

사이트맵을 만드는것도 보통 노가다가 아니라서
온라인 서비스를 이용해보겠습니다.

이 전에 추천했던 사이트중 한곳에서 한번
사이트맵을 만들어 보겠습니다.


제가 입력한거처럼 자신의 사이트나 블로그 주소를 넣고
Security code 까지 입력 합니다.


그리고 네모친거처럼 설정을 해주세요.
Page priotity를 너무 깊게하면 쓸모 없는 컨텐츠들 까지 색인되니
AUTO로 해주세요.

▼ 그럼 이렇게 다운로드가 가능한 XML이 만들어 집니다.
이제 다운로드를 해주세요.

.

▼ 티스토리 글쓰기에서 파일을 첨부해보겠습니다.
지금까지 제작해온 사이트맵 천지네요


▼ 업로드가 됐다면 HTML을 체크해서 소스 보기로 접근


▼ 그 다음 방금 올린 파일의 주소를
cfile25.uf@xxxxxxxxxxxxx.xml까지 긁어주세요.


▼그리고 자신의 티스토리 주소를 붙이면 이렇게
Xml 파일의 링크를 사용 할 수 있습니다.
http://gocoder.tistory.com/attachment/cfile25.uf@997D964D5C7BD2CF2C7050.xml




마무리


검색엔진이 찾아오기 기다리지말고
먼저 제출하셔야죠!





댓글을 달아 주세요


검색 최적화를 위한 사이트맵 제착 할 수 있는 사이트 


안녕하세요. 고코더 입니다.

검색엔진의 최적을 위해서는 사이트맵을 제출해야 합니다.
내 홈페이지의 어디에 컨텐츠가 있는지 가르켜 주면
엔진은 해당 URL을 바라보고 색인을 만들면 되니깐요.

블로그나 홈페이지는 자기만의 URL과
카테고리가 있습니다.
해당 URL로 접속 할 수 있는 파라미터를 만들어 제공하면 되겠지만
수작업은 요즘같은 시대에는 귀찮습니다.

그래도 다행히 온라인에는 사이트맵을 제작하는 사이트가 있습니다.

그 중에 3개의 사이트를 추천 드립니다.





첫번째 사이트는 xSiteMap.com 입니다.
가장 무난하게 사이트맵을 제작해줍니다.


UI도 가장 심플하고 사용법도 가장 간단하고 옵션이 몇개 없어서
사용하기 편한 사이트 입니다.
속도나 품질도 무난하고 가장 평범한 사이트맵 제작입니다.





Web-site-map.com 입니다. 제가 사용하는 제작사이트 입니다.
구글에 제출 하였을때 색인된 문서를 가장 많이 만들어줍니다.
제작 속도는 조금 느린편인데
컴퓨터 켜놓고 실행해놓고 블로그를 하면 되니깐 속도는 크게 상관이 없을거 같습니다.


사이트 모양새는 디자인이 조금 안되어 있지만 딱히 상관은 없겠죠






XML-Sitemaps.com 입니다.
속도나 품질 측면에서 월등 합니다.
인터페이스도 휼륭하고요 그런데 치명적인 단점이 있습니다.

바로 유료 라는거죠.

하지만 500라인의 사이트 맵까지 무료이므로
초반에 컨텐츠량이 많지 않을때 추천 합니다.



아 무료였으면 좋은데
아쉽네요 


마무리


필요한 사이트맵을 수동으로 만들어 제공 하는 방법도 있지만
귀찮으니...


댓글을 달아 주세요


XE 사이트 검색엔진의 사이트맵 제출하기


안녕하세요. 고코더 입니다.

XE로 홈페이지를 개발하여 오픈했다면
이제 검색엔진이 우리 사이트를 찾을 수 있도록
해야 합니다.

그래서 엔진마다 사이트 맵 제출 할 수 있는 메뉴가 있습니다.

보통은 온라인에서 사이트맵을 만드는 사이트를 이용할 수 있지만
불필요한 TMI가 많아서..

그래도 다행히 XE는 다양한 플러그인이 개발되어 있습니다.

▶ 사이트맵 모듈 이라는 플러그인입니다.


▶ 해당 플러그인의 주소입니다. 설치를 해주세요.


▶ 그리고 해당 기능을 실행하면
아래에  .xml 다운로드 라는 버튼이 있습니다.
해당 버튼을 누르면 


▶ 사이트맵이 만들어지고 
필요한 URL만 수집 됩니다. 



▶ 이제 이 사이트맵을
서버가 있는 폴더에 올립니다.


▶ 각각 검색엔진에 사이트맵을 제출 합니다.
네이버 사이트맵 제출 모습


▶ 구글 사이트맵 제출 모습


사이트맵을 제출하여 이제
홈페이지가 검색 될 수 있도록 하였습니다.

과연 몇명이나 들어올지는 모르겠네요 



마무리


http://GoCoder.Net 구경 해주세요.!






댓글을 달아 주세요


하드코딩 XML 개발 


안녕하세요. 고코더 입니다. 

요즘은 백엔드에서 XML과 JSON을 생성 하게 될일이 많습니다. 
보통은 PHP에서 제공하는 함수인

new SimpleXMLElement()

를 사용 합니다. 

그런데 복잡하지 않은 XML 이거나 임시로
개발한 XML 데이터라면 하드코딩으로 개발하는게 더 쉽게 빠르게 가능합니다.

▼ 아래 예제 코드를 확인해주세요.
1
2
3
4
5
6
7
8
9
10
<?php
Header('Content-Type: application/xml');
 
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>""\n";
echo "<item>""\n";
echo "<name>gocoder</name >" . "\n";
echo "<url>gocoder.tistory.com</url >" . "\n";
echo "</item>";
 
?>
cs

gocoder_xml.php



▼ 웹페이지에서 확인한 결과 입니다.


▼소스 보기로 하니 XML 형태 그대로 입니다. 



▼ echo 로 XML 형태를 그대로 작성하고 뒤에 엔터 값을 넣어주시면 
소스보기에도 깔끔하게 나타나겠죠 
echo "<item>". "\n";

▼헤더만 XML 로 지정해주면 됩니다.
Header('Content-Type: application/xml');

이렇게 하면 더 자유롭고 빠르게
직관적으로 XML 작성이 가능합니다.

하지만 성능은 조금 떨어지겠네요.


마무리


한눈에 보이는게 PHP 매력 아닌가요?


댓글을 달아 주세요



 XML 특정 노드안 리스트 가져오기

이전 강의에서
XML 가져오는 기본 방법을 코딩하여 설명 드렸습니다. 그런데
하위 노드 가져오는 방법을 질문하는 분이 계셔서
이번에는 하위 노드의 리스트를 반복문으로 갸져오는 방법을 남겨드립니다.

▼방법은 이전과 같지만 조금더 가독성 있게 개발하였습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<%
xpath = "XML.asp"   'xml 경로를 입력합니다.
 
Set xDOM = Server.CreateObject("Microsoft.XMLDOM")    'XMLDOM을 가져옵니다.
 
with xDOM
    .async = False ' 동기식 호출
    .setProperty "ServerHTTPRequest"True ' HTTP로 XML 데이터 가져옴
    .Load(xpath)    'URL 로드 합니다.
end With
 
Set Nodes = xDOM.getElementsByTagName("node1/node2"'원하는 상위 노드를 가져옵니다.
 
   
For each SubNodes in Nodes '노드안에 노드들을 찾아내. 반복문
    node3_Var = SubNodes.getElementsByTagName("node3")(0).Text
Next
 
Set Nodes = Nothing
Set xDOM = Nothing   
%>



유의해서 보실 부분은 13번째 줄에 노드를 가져옵니다.
해당 노드안에는 sub노드들이 리스트로 되어 있을 것입니다.
그리고 이걸 for each로 "SubNodes in Nodes" 로 반복문을 돌리면
getElementsByTagName의 속성으로 text 값을 가져올수 있습니다.

이전에 샵링커 API를 개발하면서 만들어 놓은 레퍼런스 입니다.
도움이 되시길 바랍니다.




마무리

 ASP 레퍼런스가 많이 없네요


댓글을 달아 주세요



file_get_contents 파일 읽어오기 


file_get_contents를 활용 하는 방법에 대해 설명하겠습니다.
각종 JSON 파싱이나 XML 파싱으로 데이터를 다루는 일이 많아져서
빈도가 높아진 함수입니다. 

▼ 우선 PHP가 제공하는 레퍼런스는 아래와 같습니다.

▼ 제가 정리한 소스는 아래와 같습니다. 
압축을 풀어 웹서버에서 확인해보세요 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
 
//헤더 정보를 등록한다.
$opts = array(
    'http' => array(
        'method' => "GET",
        'header' => "Accept-language: utf-8\r\n" .
            "Cookie: foo=bar\r\n"
    )
);
$context = stream_context_create($opts);
 
//파일로도 정보를 읽어올 수 있다.
// $filename = 파일 내지, URL를 통해 해당 데이터를 읽어 올수 있다.
// $use_include_path = 참조(include)된 내용까지 읽어 올지
// $context = 헤더 정보를 입력
// $offset = 몇번째 데이터 부터 읽어올지
// $maxlen = 최대 얼마나 많은 양을 읽어 올지
$file2 = file_get_contents('./file.txt'true$context18);
echo $file2;    //2번째 데이터부터 8개의 데이터니 2~9까지 노출 된다.
 
//URL로 해당 사이트의 정보를 읽어올수 있다.
$file1 = file_get_contents('http://www.google.com/webhp?hl=en');
echo $file1;
 
?>
cs



▼ URL을 가지고 올때 아래처럼 오류가 날 경우는 보안상 해당 방식으로의 접근을 막아놓았기 때문입니다. 
$filename 
- URL을 읽어올시에는 서버 설정에 따라 접근이 불가합니다. PHP라면 php.ini 에 allow_url_fopen가 ON이 되어 있어야 합니다. 


▼Offset으로 불필요한 정보를 건너 뛸수 있고
Maxlen은 웹사이트를 어디까지 읽어올지 결정할 수 있습니다.
이 두변수를 통해서 어디부터 어디까지 파싱할지 결정하시면 됩니다.
$offset = "1" 
- 2번째 데이터부터 가져온다.
$maxlen = "8" 
- 총 8개의 데이터를 가져온다 띄워쓰기 및 개행 문자도 length에 포함

▼ 제가 정리한 해당 소스를 출력 시켜보았습니다.
첫번째는 미국 구글을 URL로 파싱해서 가져왔고
두번째는 file.txt에 1234567890의 내용을 가져왔습니다.





마무리

PHP는 프론트엔드 개발을 위한 함수가 많은 언어 입니다.


댓글을 달아 주세요