CommandTypeEnum은 sql문의 타입을 명시 (Generic)

adCmdUnknown : (default) 미지정 (명시하는 것보다 CPU 자원을 더 소모함)
adCmdText : SQL쿼리 등 텍스트 문자열
adCmdTable : 테이블 이름
adCmdStoredProc : 스토어드 프로시저
adCmdFile : 저장된 레코드셋의 파일 이름
adCmdTable Direct : 테이블 이름



ExecuteOptionEnum : 명령의 실행 방식

adAsyncExecute : 비동기식
adAsyncFetch : 앞의 행을 가져온 이후에 비동기식
adAsyncFetchNonBlocking : 앞의 행도 가져오고 비동기식으로 쿼리도 수행하고, 근데 앞의 행 레코드 가져온다고 명령 지연되지 않음.
adExecuteNoRecords : 명령만 보내고 끝. 리턴값 X.

 

 

 

 

 

ODBC(Open DataBase Connectivity)는 마이크로소프트가 만든, 데이터베이스에 접근하기 위한 소프트웨어의 표준 규격으로, 각 데이터베이스의 차이는 ODBC 드라이버에 흡수되기 때문에 사용자는 ODBC에 정해진 순서에 따라서 프로그램을 쓰면 접속처의 데이터베이스가 어떠한 데이터베이스 관리 시스템에 관리되고 있는지 의식할 필요 없이 접근할 수 있다.

ODBC는 본래 1990년대 초 마이크로소프트가 개발하였고, 유닉스  메인프레임 분야에서 SQL 액세스 그룹이 표준화한 호출 수준 인터페이스(CLI)를 위한 기초가 되었다. ODBC는 CLI의 노고 중 일부로서 제거되었던 일부 기능들을 보유하였다. 온전한 ODBC는 나중에 해당 플랫폼으로 다시 이식되었으며 CLI 보다 상당히 더 잘 알려진 사실상의 표준이 되었다.

 

reference : ko.wikipedia.org/wiki/ODBC

 

ODBC - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전.

ko.wikipedia.org

 

1. ASP에서 <!--  -->란?

주의해야 할 것이 <!--  --> 이것이 HTML에서는 주석으로 인식된다. 하지만 ASP에서는 이것을 인식한다. 즉, ASP.DLL이 읽어들인다.

<HTML>
  <HEAD>
  <TITLE>사용자로부터 정보 얻기</TITLE>
  <script>
    $( function() {
      $( "#startDatePicker" ).datepicker({ dateFormat: 'yy-mm-dd' });
      $( "#endDatePicker" ).datepicker({ dateFormat: 'yy-mm-dd' });
    } );
    </script>
  </HEAD>
  <BODY>
    <FORM NAME=formMissionary METHOD=POST ACTION=missionary_submit.asp>
      담당자 : <INPUT TYPE=TEXT NAME=name SIZE=50><BR>
      설명 : <INPUT TYPE=TEXT NAME=description SIZE=20><BR>
      운영기간 시작일 : <INPUT TYPE=TEXT NAME=dateStart ID=startDatePicker>
      마감일 : <INPUT TYPE=TEXT NAME=dateEnd  ID=endDatePicker><BR>
      <INPUT TYPE=RADIO NAME=allowCall VALUE="1">예
      <INPUT TYPE=RADIO NAME=allowCall VALUE="0">아니오
      <INPUT TYPE=SUBMIT VALUE='전송'>
    </FORM>
  </BODY>
</HTML>

이렇게 했을 때 한글이 깨져 나오게 된다. 따라서 한글이 깨지지 않도록 하기 위해서 HTML 태그 최상단에 

<%@Language="VBScript" CODEPAGE="65001" %>
<%

  Response.CharSet="utf-8"
  Session.codepage="65001"
  Response.codepage="65001"
  Response.ContentType="text/html;charset=utf-8"
%>

이것을 바로 추가해주면 된다. 단 이렇게 하려면 많은 코드를 매번 페이지마다 넣어줘야한다.

따라서 이 코드를 하나의 파일에 저장하고 매번 이 파일을 포함하도록 하면 된다.(뭐 정확히는 클래스 상속 이런거랑은 개념이 좀 다른 것 같긴 하지만 뭐... 아무튼 읽어와서 포함시키는거니까...)

다른 파일을 상속(?)하는 방법에는 2가지가 있다.

우선, 해당 웹 애플리케이션의 실제 주소는 'C:/ASP_TEST/'이고, ContextPath'/asp_test'다.

이 디렉토리 안에 '_encode.asp'파일을 만들고 안에 위 한글 깨짐 방지 코드를 넣는다.

_encode.asp

<%@Language="VBScript" CODEPAGE="65001" %>
<%

  Response.CharSet="utf-8"
  Session.codepage="65001"
  Response.codepage="65001"
  Response.ContentType="text/html;charset=utf-8"
%>

 

1 ) 웹 서버의 ContextPath를 사용하기 (절대경로라 볼 수 있다.)

<!-- #include virtual="/asp_test/_encode.asp" -->

를 각 asp 파일 HTML 위 최상단에 넣는다.

 

2 ) 상대경로 사용하기 (현재 asp파일을 기준으로 디렉토리 경로를 따라간다.)

<!-- #include file="./_encode.asp" -->

를 각 asp 파일 HTML 위 최상단에 넣는다.

물론... 상대경로니 이렇게 써도 된다.

<!-- #include file="../asp_test/_encode.asp" -->
<!-- #include file="../ASP_TEST/_encode.asp" -->

윈도우 디렉토리 대소문자는 구분을 안 하네....

<!-- #include file="./_encode.asp" -->
<HTML>
  <HEAD>
  <TITLE>사용자로부터 정보 얻기</TITLE>
  <script>
    $( function() {
      $( "#startDatePicker" ).datepicker({ dateFormat: 'yy-mm-dd' });
      $( "#endDatePicker" ).datepicker({ dateFormat: 'yy-mm-dd' });
    } );
    </script>
  </HEAD>
  <BODY>
    <FORM NAME=formMissionary METHOD=POST ACTION=missionary_submit.asp>
      담당자 : <INPUT TYPE=TEXT NAME=name SIZE=50><BR>
      설명 : <INPUT TYPE=TEXT NAME=description SIZE=20><BR>
      운영기간 시작일 : <INPUT TYPE=TEXT NAME=dateStart ID=startDatePicker>
      마감일 : <INPUT TYPE=TEXT NAME=dateEnd  ID=endDatePicker><BR>
      <INPUT TYPE=RADIO NAME=allowCall VALUE="1">예
      <INPUT TYPE=RADIO NAME=allowCall VALUE="0">아니오
      <INPUT TYPE=SUBMIT VALUE='전송'>
    </FORM>
  </BODY>
</HTML>

 

2. ASP 주석 쓰기

참고 : HTML 태그에 <!--  -->로 넣으면 주석으로 작동을 하긴 한다. 하지만 이 주석은 클라이언트의 웹 브라우저가 주석을 해석하지 않는 것 뿐, 클라이언트에게 모두 전송된다. 따라서 절대로 중요한 정보나 테스트 내용 등을 넣지 않도록 해야 한다.

위에서 <!-- #include ~~~ -->가 주석으로 작동하지 않은 이유는 ASP 파일은 ASP.DLL이 컴파일 하기 때문이다. 즉, ASP가 #include를 읽어 자신의 문법으로 해석해 우리가 참조시킨 파일을 포함시키는 것으로 작동하기 때문이다.

따라서, ASP를 작성할 때 웹에 포함되어도 상관 없는 단순히 HTML의 구조를 나누고 설명하는 주석이 아닌 서버의 기능적인 주석은 <% %> 안에 ' (콜론)으로 넣도록 한다.

register.asp

<!-- #include file="./_encode.asp" -->    // 주석이 아니다. ASP가 읽어들이는 문법.
<HTML>
  <div>
    <!-- HTML 주석 -->    // 클라이언트에게 전송되나 브라우저가 해석하지 않는다.
  </div>
  <%
  ' ASP 주석    // 클라이언트에게 전송되지 않는다.
  %>
  <HEAD>
  <TITLE>사용자로부터 정보 얻기</TITLE>
  <script>
    $( function() {
      $( "#startDatePicker" ).datepicker({ dateFormat: 'yy-mm-dd' });
      $( "#endDatePicker" ).datepicker({ dateFormat: 'yy-mm-dd' });
    } );
    </script>
  </HEAD>
  <BODY>
    <FORM NAME=formMissionary METHOD=POST ACTION=missionary_submit.asp>
      담당자 : <INPUT TYPE=TEXT NAME=name SIZE=50><BR>
      설명 : <INPUT TYPE=TEXT NAME=description SIZE=20><BR>
      운영기간 시작일 : <INPUT TYPE=TEXT NAME=dateStart ID=startDatePicker>
      마감일 : <INPUT TYPE=TEXT NAME=dateEnd  ID=endDatePicker><BR>
      <INPUT TYPE=RADIO NAME=allowCall VALUE="1">예
      <INPUT TYPE=RADIO NAME=allowCall VALUE="0">아니오
      <INPUT TYPE=SUBMIT VALUE='전송'>
    </FORM>
  </BODY>
</HTML>

 

클라이언트 '소스 보기'

    // 주석이 아니다. ASP가 읽어들이는 문법.
<HTML>
  <div>
    <!-- HTML 주석 -->    // 클라이언트에게 전송되나 브라우저가 해석하지 않는다.
  </div>
  
  <HEAD>
  <TITLE>사용자로부터 정보 얻기</TITLE>
  <script>
    $( function() {
      $( "#startDatePicker" ).datepicker({ dateFormat: 'yy-mm-dd' });
      $( "#endDatePicker" ).datepicker({ dateFormat: 'yy-mm-dd' });
    } );
    </script>
  </HEAD>
  <BODY>
    <FORM NAME=formMissionary METHOD=POST ACTION=missionary_submit.asp>
      담당자 : <INPUT TYPE=TEXT NAME=name SIZE=50><BR>
      설명 : <INPUT TYPE=TEXT NAME=description SIZE=20><BR>
      운영기간 시작일 : <INPUT TYPE=TEXT NAME=dateStart ID=startDatePicker>
      마감일 : <INPUT TYPE=TEXT NAME=dateEnd  ID=endDatePicker><BR>
      <INPUT TYPE=RADIO NAME=allowCall VALUE="1">예
      <INPUT TYPE=RADIO NAME=allowCall VALUE="0">아니오
      <INPUT TYPE=SUBMIT VALUE='전송'>
    </FORM>
  </BODY>
</HTML>

 

클라이언트 '화면'

1. 제안 PM이 작성

RFP (제안요청서, request for proposal) : 발주자가 특정 과제의 수행에 필요한 요구사항을 체계적으로 정리하여 제시해 도움을 주기 위한 문서. (영업)

RFI (사전정보요청, request for information) : 제품, 서비스, 시장 동향, 경쟁사 정보 등을 제공받아 진행하고자 하는 업무에 대한 정보를 미리 수집하고 비교분석하는 문서로 프로젝트에 대한 개요, 목적, 기간 정도 까지만 요약하고 대부분의 RFI에는 많은 요구사항을 담지 않는다.

 

참고 : 제안 PM은 기술영업을 하고, 수행 PM은 개발 프로젝트 구현을 이끈다.

 

2. 개발 진행 과정

Project Charter : 프로젝트의 범위, 목표, 참가자에 대한 설명. (but, 우리나라는... 작성 안 한다... )

SRS (소프트웨어 요구사항명세서, Software Requirement Specification) : 고객과 어떤 것을 어떻게 개발하고, 어떤 것은 개발하지 않는지를 결정하여 문서화한 계약서 -> 프로젝트에 대해 법적인 보호를 받을 수 있는 일종의 보험. 대부분의 버그는 SRS가 충실하지 않아서 발생한다. (but, 외국에서는 SRS를 오래 작성하고 정말 중요하다. 하지만 우리나라는 기간을 짧게 주고 고객도 뭘 원하는지도 모르고 프로젝트를 요청해서 SRS도 없고 분석도 없이 대충 개발에 들어간다. 우리나라는 SRS ID 번호가 중요하다.)

SDS (Software Design Standards)

SCS (Software Code Standards)

RTM (요구사항 추적표, Requirement Traceability Matrix) : 요구사항 변동을 엑셀 등으로 추적할 수 있게 작성한다.

UML (통합 모델링 언어, Unified Modeling Language) : '구현 문서'다. 클래스 다이어그램으로 작성한다.???

STD (테스트 문서, Software Test Description) : 테스트 문서.

 

우리나라는 Project Charter, SRS, RTM 등... 아무것도 안 쓰고 개발 시작한다... 그래서 기본적으로 '회의록'과 '녹취', 그리고 자체적으로 요구사항을 정리하고 변화를 기록해서 형상관리를 한다. 이 때 필요한 것은

1 ) 요구사항을 '기능/비기능'으로 구분한다.
2 ) 최종 결과 테스트를 기준으로 '기능'적인 것인지, '수치'적인 것인지 구분한다.
3 ) 이것을 요구사항과 변동사항을 기록해 형상관리를 한다.

 

'개발자 > 용어... 그 외의 것들...' 카테고리의 다른 글

Logo (로고) 모음  (0) 2020.12.10
ODBC  (0) 2020.11.05
BSC, MBO, KPI  (0) 2020.11.03
ERP (전사적 자원 관리) Enterprise resource planning  (0) 2020.11.03
Transaction 트랜잭션  (0) 2020.11.02

BSC(Balanced ScoreCard) : 균형성과표

성과 관리를 위한 표. 단/장기 균형, 결과/과정의 균형, 내/외부의 균형을 통한 성장을 강조한다.

 

MBO(Management By Objective, Management Buy Out) : 목표 관리 제도

- Management By Objective : 직원에게 업무 목표를 지시하고 그 달성 방법은 직원에게 맡기는 관리 방법.
- Management Buy Out : 경영진이 중심이 되어 기업의 일부 또는 전체 사업을 인수하는 것.

 

KPI(Key Performance Indicator) : 핵심 성과 지표

매출 증가, 신규 고객 확보, 순이익 증가, 브랜드 이미지 상승, 고객 만족도 상승 등 어떠한 목표를 성공적으로 달성하기 위해 핵심적으로 신경쓰고 관리해야 하는 요소들에 관한 핵심성과지표를 가리킨다.

 

 

개발자 용어라 하기가 좀... 재무?? 회계?? 용어 카테고리를 따로 만들어야 하나...

ERP(Enterprise resource planning)는 경영 정보 시스템(MIS, Management Information Systems)의 한 종류다. 전사적 자원관리는 회사의 모든 정보 뿐 아니라, 공급 사슬관리, 고객의 주문정보까지 포함하여 통합적으로 관리하는 시스템이다.

즉, '회사의 모든 부서를 하나로 통합해 관리하는 전자 시스템'이다.

 

비지니스에서 ERP가 중요한 이유

각 비즈니스 프로세스를 모두 처리하는 하나의 솔루션 소프트웨어는 없지만, ERP 기술을 통해 모든 비즈니스 프로세스를 더 나은 방식으로 통합하여 협업을 개선하고, 데이터에 기반한 의사 결정을 내리고, 비즈니스 생산성을 향상시킬 수 있습니다.

ERP는 여러 회사 부서에서 다음의 주요 비즈니스 프로세스를 위해 사용합니다.

재무

현대식 ERP의 대시보드에서는 회사의 재무 상태를 언제 어디서나 실시간으로 확인할 수 있습니다. 또한 일일 작업을 자동화하여 수동 입력을 줄이고, 비즈니스의 규정을 준수하는 데 유용한 추적 기능도 있습니다.

인적 자원

현대식 솔루션은 회사 데이터를 관리하고 급여, 고용, 기타 직무 등 직원 관리 업무를 간소화할 수 있습니다. 또한 직원들의 실적을 추적하고 HR 문제점이 발생하기 전에 파악할 수 있습니다.

제조

이 기능은 비즈니스 커뮤니케이션을 향상시키고 일상적인 프로세스를 자동화하며 제조업체가 실시간 데이터에 액세스하여 고객 요구를 충족하고 자원을 관리할 수 있습니다. 또한 이 솔루션은 프로젝트와 비용 관리는 물론 생산 계획도 최적화합니다.

공급망

아직도 정보를 수동으로 입력하고 창고에서 재고를 조회하는 경우, ERP를 사용하면 이러한 프로세스를 자동화하여 시간과 비용을 쉽게 절약할 수 있습니다. 또한 현대식 솔루션의 대시보드와 비즈니스 인텔리전스는 재고 관리에도 유용합니다.

reference : dynamics.microsoft.com/ko-kr/erp/what-is-erp/

 

ERP 시장의 1위 솔루션은 SAP(독일 회사) ERP다. 그 외에 오라클, MS, IBM 등에서도 ERP 솔루션을 판매한다.

국내 중견 기업 ERP 솔루션으로는 더존비즈온, 비젠트, 영림원이 있다.

 

'개발자 > 용어... 그 외의 것들...' 카테고리의 다른 글

개발 문서 RFP, RFI, Project Charter, SRS, RTM, STD...  (0) 2020.11.05
BSC, MBO, KPI  (0) 2020.11.03
Transaction 트랜잭션  (0) 2020.11.02
한글 깨짐  (0) 2020.10.28
Microsoft SQL Server - SSIS/SSAS/SSRS, Power BI  (0) 2020.10.25

PowerBI 를 잠시 사용해봤다. 이건 당장 필요하진 않으니 엑셀 데이터 불러와서 도표 그려보는 것 정도만...

현재 주로 하고 있는 것은 Classic ASP를 공부하고 있는 중이다. 자바 스프링에서 jsp에 <% %> 로 자바 코드를 직접 삽입하는 방식과 동일한 방식을 사용한다.

올해는 Classic ASP와 PowerBI, SQLD를 준비하다보면 내년이 오겠지?

애증의 알고리즘은... ㅜㅜ 내년에...

'개발자 > TIL' 카테고리의 다른 글

TIL 20.11.02 ~ 20.11.08  (0) 2020.11.10
TIL 20.10.19 ~ 20.10.25  (0) 2020.10.25
TIL 20.10.16 ~ 20.16.18  (0) 2020.10.19
TIL 20.10.05 ~ 20.10.15  (0) 2020.10.15
TIL 20.09.28 ~ 20.10.04  (0) 2020.10.04

Global.asa : 웹 애플리케이션(웹 사이트)을 전체적으로 지배하는 파일이다. (C:\inetpub\wwwroot\global.asa 텍스트 파일)

다른 ASP 객체에는 속성과 메소드만 존재하지만 Session 객체와 Application 객체에 '이벤트(Event)'라는 것이 존재한다. 이는 우리가 호출하여 사용할 수 있는 메소드 같은 것이 아니라 자동으로 발생하는 것이다. Sesion 객체가 제공하는 이벤트에는 'Session_OnStart''Session_OnEnd'가 있고 ,Application 객체가 제공하는 이벤트에는 'OnStart' 'OnEnd'가 있다.

asp 페이지를 요청시 반드시 Global.asa를 거쳐 ASP에 접속된다.
html 페이지를 요청시는 Global.asa를 거치지 않는다.

 

<SCRIPT language=VBScript RUNAT="Server">

Sub Application_OnStart
'어플리케이션이 시작할 때의 해야할 일을 코딩'
End Sub

Sub Application_OnEnd
'어플리케이션이 끝날 때 해야할 일을 코딩'
End sub

Sub Session_OnStart
'사용자마다 각각의 세션이 시작할 때의 해야할 일을 코딩'
End Sub

Sub Session_OnEnd
'사용자마다 각각의 세션이 끝날 때의 해야할 일을 코딩'
End Sub

</SCRIPT>

참고 : Runat = "server" 는 서버에서 실행한다는 의미로 <% %>와 같은 기능이다. 단, 이 코드는 Script 대신 <% %>를 사용하면 에러가 발생한다.

 

Session 객체가 가지고 있는 명령

종류 설명
컬렉션 Contents 변수, 값을 저장한다. (모든 페이지에서 사용 가능)
StaticObjects <OBJECT> 태그로 세션에 추가된 모든 객체의 모든 값.
프로퍼티 CodePage 기호 매핑에 사용되는 코드 페이지
LCID Locale 식별자
SessionID 연결된 세션에 관한 ID (서버가 만드는 고유 식별자로 Long Type)
Timeout 세션 타임아웃 시간 (default : 20min)
메소드 Abandon 세션 종료
Contnets.Remove Contents 특정 변수를 삭제한다.
i.e. Session.Contents.Remove(A)
Contents.RemoveAll Contents 모든 변수를 삭제한다.
이벤트 Session_OnStart 서버가 새 세션을 생성한다.
- 모든 객체 사용 가능.
Session_OnEnd 세션을 닫는다. (TimeOut에 의해 작동)
- Application, Server, Session 객체만 사용 가능.

 

Application 객체가 가지고 있는 명령

종류 설명
메소드 Lock Application 객체에 락을 걸어 다른 사용자가 접근하지 못 하게 한다.
- 락을 건 사용자만이 객체를 조절할 수 있다.
UnLock Application 객체에서 락을 해제한다.
이벤트 OnStart 웹 애플리케이션이 시작될 때 발생.
OnEnd 웹 애플리케이션이 종료될 때 발생.

 

 

Tag. global.asa, Global.asa, asp global.asa, ASP Global.asa, ASP global.asa, asp application, ASP Application, ASP application, application.lock, application.unlock, application.onstart, application.onend

+ Recent posts