네이버 쇼핑 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






마무리


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



댓글을 달아 주세요


.asp 말고 .gocoder 로 한번 바꿔 보기 


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


어떤 사이트를 보면 언어 기본 확장자를 
자신의 서비스 이름으로 바꾸어 놓은 경우가 있습니다.

네이버가 대표적인 경우인데요

▼ 네이버 회사 모기업 이름인 .nhn을 사용하는 모습입니다. 


그래서 오늘은 오래된 웹언어인 .asp 를 
제 스타일대로 .gocoder로 바꿔보려고 합니다.

▼ 사이트에서 기능보기 탭에서 처리기 매핑을 클릭 합니다.


▼ 그리고 나오는 오른쪽 위에 "스크립트 매핑 추가"를 클릭 합니다.



▼ 해당 스크립트 매핑에 이렇게 입력해보세요
1. 요청경로
    *.gocoder
2. 실행파일
    %windir%\system32\inetsrv\asp.dll
3. 이름 
    GoCoder


▼ 처리기 매핑에 아래처럼 gocoder 라는 언어가 추가 되었습니다.



▼ 파일을 만들어 보겠습니다.
파일을 생성하니 처리기 매핑에서 이름을 GoCoder로 한게 유형으로 나와있네요.


▼ 소스안에 코딩 내용은 아래와 같습니다.
<%
response.write "고코더 IT Express"
response.end
%>
▼ 해당 파일을 웹에서 실행 하였습니다.



마무리


고코더 언어 만들고 싶네요 ㅎ


댓글을 달아 주세요



홈에디터 플러스 주석 삽입


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


에디터플러스는 가볍고 빠른 에디터지만 요즘 나오는 IDE 만큼의 기능은 없습니다.
사실 하드코딩으로 개발하기 좋은 툴이라 있는 그대로 쓰는 경우가 많습니다.

아무리 그래도 주석 처리는 한번에 많은 소스에 삽입해야 하기 때문에
단축키가 필수 입니다.

그래서 오늘은 에디터플러스로 주석 기호를 입력하는 방법을 알아보겠니다.

▼도구(T)에서 기본설정(P)으로 이동합니다.



▼도구-> 키보드 -> 편집 -> 주석 줄을 클릭 합니다.
보통은 기본으로 단축키가 맵핑 되어 있지만 안되어 있다면
Ctrl + / 으로 맞춰주세요 


▼역시나 주석 줄 제거도 보통은 기본으로 단축키가 맵핑 되어 있지만 안되어 있다면
Ctrl + \ 으로 맞춰주세요 


그럼 준비 완료 입니다.
소스를 준비하고 주석을 처리 해보겠습니다. 

▼소스를 드래그 하여 지정 후에 아래처럼
CTRL + /을 눌러 보겠습니다.

+


▼ 그럼 주석 줄 입력창이 뜹니다. ASP 라면 '(작은 따옴표) 이겠죠


▼ 멋지게 모든 줄에 주석이 입력 되었습니다.


▼ 이번엔 주석 제거를 해보겠씁니다. 소스를 드래그 하여 지정 후에 아래처럼
CTRL + \ 을 눌러 보겠습니다.

+


▼ 아까 입력했던 작은 따옴표를 입력해야 제거가 될 것입니다.


▼소스가 다시 돌아왔습니다. 



이제 편하게 주석을 처리하게 됐네요.



마무리

주석은 꼭 단축키로


댓글을 달아 주세요



ASP 기본 정규식으로 치환,  체크 하기



안녕하세요. 고코더입니다. 
날씨가 점점 좋아지고 있으니 열심히 코딩을 해볼까요?

정규식은 너무나 잘 알고 있고
너무나 잘쓰고 필요한 기술입니다. 

특히 프론트 개발자는 정규식 쓸일이 참 많습니다. 
이 기술이 있어서 하드코딩 할 내용도 덕분에 한줄로 처리가 가능합니다.

그런데 ASP가 한참 개발 시절에는 정규식 보단 날 코딩이 유행이라 
정규식을 잘 쓰지 않았습니다.

그런지 레퍼런스도 잘 없네요.

오늘은 한번 짧게 정규식의 가장 기초적인 패턴을 코딩 해보았습니다.

▼소스는 아래와 같습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<%
    exStr = "정규식 테스트 공감버튼 1번 클릭 부탁드립니다."
    Set exReg = New RegExp
 
    exReg.Pattern = "[0-9]"             '// 정규식 패턴 입력
    exReg.Global = True                 '// 문자열 전체 검색
    exReg.IgnoreCase = True             '// 대소문자 구분 안함         
    result_1 = exReg.Replace(exStr, "한")
    
    Set match = exReg.Execute(exStr)    '// 정규식 패턴이 발견 된 만큼 0이면 false 0이상이면 true
    result_2 = match.count                '// .count를 이용해 체크 됐는지 확인한다.
 
    Set exReg = Nothing
    Set match = Nothing
 
 
    Response.write "치환 결과 = " & result_1 & "<Br>"
    Response.write "체크 결과 = " & result_2 & "<Br>"
%>
cs



설명할 내용이 참 없네요

▼해당 공간에 패턴을 입력하고 
1
 exRegExp.Pattern = ""



▼치환 하는 부분
1
exRegExp.Replace(temp, "")



▼패턴을 체크 하는 부분
1
Set match = exReg.Execute(exStr)




제가 코딩한 소스를 잠깐만 살펴보면 충분히 이해 하실거라 생각 됩니다.



마무리


정규식 체크는 프론트 언어(javascript)로 하시길 추천합니다.


댓글을 달아 주세요



 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 레퍼런스가 많이 없네요


댓글을 달아 주세요



ASP Random Number


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

ASP에서 랜덤 숫자를 만드는 방법을 알아보겠습니다.
우선 ASP에는 Rnd와 Randomize라는 함수가 있습니다.

Rnd : 랜덤 숫자를 발생시킨다. 소수장 0.* 대로 떨어진다.
Randomize : 랜덤을 초기화 한다. 이걸 선언하지 않으면 매번 똑같은 숫자를 Rnd에서 뽑아낸다



이 두가지를 가지고 익스프레스하게 만들어 보았습니다.

▼아래 코드를 참조 해보자.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<%
 
Function rndNum(lenNum)
    num = ""
    For i = 1 to lenNum
        Randomize                '//랜덤을 초기화 한다.
        num = num & CInt(Rnd*9)    '//랜덤 숫자를 만든다. 
    Next
    rndNum = num
End Function
 
Response.write rndNum(10)
 
%>

cs

▼원리는 간단하니 때에 맞게 만들어 사용해보자



마무리

모든걸 만들어 쓰는 재미가 있는 ASP


댓글을 달아 주세요



Notepad File encoding


홈에디터 플러스 무한사랑으로 지난 번 파일인코딩 변환 강의를 올렸는데
메모장으로는 변경하는 법을 묻는 개발자님이 계셔서 메모장 버전도 남겨드립니다.
사실 워낙 친숙하게 사용하고 있지만 
나름 인코딩 하는 법이 숨겨져 있습니다. 

오늘은 한번 메모장을 열어봅시다.


▼윈도우키를 누르거나 시작버튼을 눌러 notepad 라고 입력해보세요.
그럼 메모장이검색 됩니다. 한글로 메모장이라고 입력하셔도 문제 없습니다.



▼해당 하는 파일을 열기 하신 후 이번엔 
파일->다른 이름으로 저장을 눌러봅시다.
빠른 단축키는 ALT를 누른 상태에서 S,A를 차례대로 입력합니다.


▼그리고 다른으로 저장하려고 할때 인코딩을 지정하는 화면이 저장 옆에 있습니다.
보통 파일을 열고 저장을 하면 인코등 그대로 저장하지만 다른이름으로 저장시에만
메모장은 인코딩을 변경할 수 있습니다. 일반 사용자도 쓰는 메모장이니 당연한 방법이겠죠



▼ 저장을 누르면 중복 여부를 묻습니다. 예를 눌러주세요.
저희는 인코딩을 바꾸니 그대로 덮어 쓰는게 맞겠네요



▼ 이번에는 다시 위에 방법을 다시 해보면 인코딩이 UTF-8로 변해 있는걸 확인 할 수 있습니다.





+고코더의 추천강의

+EditPlus 에서 파일 encoding을 변경해보세요 






마무리

메모장 말고 에디터 플러스가 기본 메모장이었으면 좋겠네요^^


댓글을 달아 주세요



EditPlus 에서 encoding 변경하기

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

소스상에 열심히 인코딩을 지정해도
파일 자체 속성 인코딩을 바꾸지 않으면 여전히 외계어가 뜹니다.
ASP 개발자인 경우에는 이런 문제가 빈번합니다. 

그래서 오늘은 
에디터플러스에서 파일 인코딩을 변경하는 방법을 알아보겠습니다.


▼ 원하는 파일을 오픈한 후에
문서->파일 인코딩 -> 인코딩 변환을 눌러보자
단축키로는 ALT를 누른 상태에서 D, D, C를 누르면 빠르게 접근 가능하합니다.




▼해당 창에서 UTF-8을 설정하고 확인을 누릅니다.


▼저장 전까지는 당연히 해당 파일 인코딩은 변하지 않았다. 저장을 누른 후에 



▼오른쪽 아래에 현재 파일 인코딩 상태를 확인하자 정상적으로 변경 되었다면 성공 



에디터 플러스의 장점은 ansi, euc-kr, utf-8에 상관없이 한글을 깨트리지 않고 파일을 오픈시킵니다.
다른 언어 파일들도 다른 IDE로 파일을 오픈하였는데 한글이 깨지는 상태를 확인하면
에디터 플로스로 인코딩을 바꾸면 가장 깔끔하게 변경이 가능합니다.


마무리


에디터 플러스로 인코딩 속성을 변경하기 가장 좋습니다.


댓글을 달아 주세요



ASP 속도 체크하기


ASP에서 성능 테스트 할 수 있는 가장 기본적인 방법을 소개합니다.
바로 Timer() 를 이용해서 페이지 처음과 끝에 코드를 심고 얼마나
걸렸는지 하는 아주 원시적이지만 가장 기본적이고 효과적인 방법입니다.

▼아래 코드를 IIS에서 돌려 실행해봅시다.
1
2
3
4
5
6
7
8
9
10
11
12
<%
   dim strSql
    dbCon.Open Application("DBInfo")
    dbCon.BeginTrans     //트랜젝션 시작
    dbCon.Execute(strSql)
    if dbCon.Errors.Count = 0 then
        dbCon.CommitTrans          //오류없을 시엔 커밋
    else
        dbCon.RollbackTrans          // 오류일땐 롤백
    end if
    dbCon.Close
%>
cs



방법은 위에 말했듯이 Timer()를 시작에 재고
중간에 for문으로 3천만번 정도 포문을 돌렸다
그리고 마지막은 역시 현재 시간 체크 

▼ 대략 내 오래된 노트북에서는 1천만번이 1.3초 정도 걸린다. (구려)




마무리



이런식으로 뿐이 퍼포먼스 체크는 멋이 없다고요? 그게 ASP 매력입니다. 원시적이면서 기본에 충실한 언어입니다. 


댓글을 달아 주세요



SiteGalaxy 로 ASP 파일 업로드 하기



ASP 업로드 시스템 중에 가장 오래 사랑 받아온 컴포넌트가 바로
갤럭시 사이트 업로드 일 것입니다.
우선 공짜인 이유가 가장 크겠습니다.

그리고 생각보다 안정성도 있고요. 그래서 오늘은
해당 컴포넌트를 설치하고
예제를 수행해보겠습니다.

▼우선 사이트 갤럭시 프로그램을 설치해야 합니다. 

SiteGalaxyUpload.zip


▼첨부파일을 다운받아 압축을 해제했으면 관리자 권한으로 실행. 





▼SETUP.exe를 관리자 권한으로 실행
넥스트~~

▼넥스트~~

▼넥스트~~~~~

▼설치완료 재부팅은 안해도 됩니다.


그리고 ASP 소스상에서 어떻게 해야할지 간단하게 샘플을 만들어 보았습니다.

파일명 : asp.asp
기본적인 form 안에 file과 submit으로 꾸몄고
그리고 여기서 form 안에 속성을 해당처럼 해줘야 한다. 
1
2
3
4
5
6
7
8
<html>
<body>
<form method=post action=up.asp enctype="multipart/form-data">
    <input type="file"  name="file"><p>
        <input type="submit" value="upload">
</form>
</body>
</html>

cs

▼파일명 : up.asp
form을 전달 받아 업로드 하는 부분까지작성해보았습니다다. 
"SavsAS" 가 파일 주소를 서버에 저장하는 원리 입니다.
1
2
3
4
5
6
<%
Set up = Server.CreateObject ("SiteGalaxyUpload.Form")
Set fso = Server.CreateObject("Scripting.FileSystemObject")
 
up("file").SaveAs("d:\asp\" & fso.GetFileName(up("file").FilePath))
%>

cs



그대로 복붙해서 실행시켜보자...
그러면 오류가 났을것입니다.

왜냐하면 파일 업로드하 기 위해서는 
원도우 서버에서도 여러 설정이 필요하기 때문입니다.

그래서 먼저 해당 셋팅에 대해 블로그를 썻으니 자신의 오류에 맞게
아래 링크를 확인해 보자. 



마무리

공짜라 좋지만 Ansi 즉 euckr뿐이 호환이 안됩니다...
잘판단하여 쓰시기를.. 































댓글을 달아 주세요