Hello! asp.net


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


최근에 닷넷을 시작한 개발자 후배가
윈도우 환경에서 hello .net을 만들어 보고 싶다고 해서
블로그를 씁니다. 생각보다
닷넷 강의들이 존재 하지 않는거 같네요
Hello .Net 을 다루는 내용이 잘 없어 남깁니다.

▼ 실행에서 appwiz.cpl 을 실행해주세요.


▼ 그리고 windows 기능 켜기/끄기를 실행합니다. 



▼ 해당 기능에서 .Net 를 추가합니다.
윈도우10 에서 기본적으로 닷넷이 설정 되어 있지 않습니다.
추가하여 기능을 설치해주세요.


▼ 이런 메시지가 뜨면 설치 끝


▼ 그럼 이제 IIS안에 asp.net 에 대한 기능들이 추가 되어 있습니다.


▼ 그리고 웹사이트를 추가 할때 해당 처럼 .net 을 선택해서 사이트를 생성 합니다.


▼ 해당 폴더안에 제가 올려놓은 파일을 압축을 해제해주세요.


▼ 그리고 웹에서 확인할때 오류가 보인다면 해당 링크를 확인해주세요.
폴더 권한을 주어주세요.
'/' 응용 프로그램에 서버 오류가 있습니다.
구성 오류
설명: 이 요청을 제공하는 데 필요한 구성 파일을 처리하는 동안 오류가 발생했습니다. 아래의 오류 정보를 확인한 다음 구성 파일을 적절하게 수정하십시오.
파서 오류 메시지: 구성 파일을 로드하는 동안 오류가 발생했습니다.: 액세스가 거부되어 'C:\Users\user\Desktop\gocoder'의 변경 사항에 대한 모니터링을 시작하지 못했습니다.
소스 오류:


[관련된 소스 줄 없음]
소스 파일: C:\Users\user\Desktop\gocoder\web.config
버전 정보: Microsoft .NET Framework 버전:4.0.30319; ASP.NET 버전:4.7.3282.0




▼ 그러면 아래처럼 가볍게
Hello .net을 실행할 수 있습니다.



마무리


요즘 닷넷 잘 안쓰나 보네요
재밌는데


Tag .net, ASP, iis, 닷넷

댓글을 달아 주세요


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






마무리


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



댓글을 달아 주세요


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


댓글을 달아 주세요



HTML in ASP




언어를 숨기기 가장 쉬운건 HTML 에 서버언어로 인식하게 하는 방법입니다.
PHP나 ASP같은 스크립트 언어는 거의 필수적인 셋팅인데요

이번 시간은 IIS에서 HTML 안에 ASP를 실행시킬 수 있도록 만들어 보겠습니다.

우선 IIS를 실행합니다
시작->inetmgr->엔터

IIS가 없다면 아래 강의를 먼저 확인하세요 
▼IIS에 들어왔다면 사이트를 클릭한 후에 
오른쪽 위에 있는 "스크립트 매핑 추가"를 클릭합니다.



▼그리고 해당 내용처럼 입력을 해주세요
요청 경로 : *.html                             <- 원하는 확장를 입력합니다. *.gocoder 라고 하면 asp는 .gocoder라는 포맷에서 실행되겠죠
실행 파일 : %windir%\system32\inetsrv\asp.dll  <- 그냥 입력하세요. ASPClassic에  있는 실행파일을 붙혀넣은겁니다.
이름 : HTMLinASP                              <- 내가 등록한 스크립트 매핑 이름을 입력하세요     \


▼예를 입력합니다. IIS답게 ISAPI 및 CGI에도 자동으로 허용 시켜주네요


▼준비가 됐으니 테스트를 해보겠습니다. gocoderASP.HTMl 를 만들고  
찾아보기 버튼을 눌러보겠습니다.


▼ 해당 파일의 내용은 아래와 같습니다. Request.ServerVariables 를 찍어보는 소스입니다.
1
2
3
4
5
6
7
8
<%
For Each key in Request.ServerVariables 
  if Request.ServerVariables(key) = "" Then
  else
        Response.Write key & "  -->  " & Request.ServerVariables(key) & "<br><br>"
  end if
Next
%> 
cs

▼ .html 에서 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


댓글을 달아 주세요



MSSQL while문 예제 

오늘은 한번 while 예제릴 간단하게 작성해보았다. 
MSSQL하면 프로시져를 간단하고 가볍게 개발 할 수 있는게 최대 장점일 것 이다.
그 중에 while문은 실무에서 가장 애용 하는 방법중 하나이다.

▼그래서 익스프레스하게 아주 간단하게 작성해보았다.

DECLARE @IDX INT           /* 변수를 선언한다. */
SET @IDX=1                 /* 1를 집어넣었다 */         
                               
WHILE @IDX <= 10           /* while을 10번 돌릴려고 한다. */
BEGIN
                                                                             
     PRINT @IDX           /* 값을 찍어보자. */
     SET @IDX= @IDX+1     /* 그리고 IDX를 +1 시켜주자  */
                                           
END




▼결과화면은 아래와 같다. 

mssql 쿼리창mssql 쿼리창


예제는 매우 쉽다.
단지 저 예제 안에 while문 안에
얼마나 로직을 잘 담는게 문제일 것 이다.




마무리

MSSQL 프로시져 개발이 개인적으로 가장 재미 있었던 프로젝트 였습니다.



댓글을 달아 주세요