2014. 2. 26. 10:42

Q.

아이핀(i-PIN)이란 무엇인가요?

A.

i-PIN(Internet Personal Identification Number)이란, 옛 정보통신부와 한국정보보호진흥원(현
 
재 한국인터넷진흥원으로 통합)이 개발한 사이버 신원확인 체계입니다. 회원가입 시 주민등록번
 
호 등 민감한 개인정보를 입력하도록 요구하는 한국 웹사이트들의 특성을 고려하여, 2005년 가이
 
드 라인이 만들어 지고, 2006년 10월 개정을 통하여 시행되었습니다.  

최근 빈번히 일어난 개인정보유출 및 그에 따른 각종 피해사례가 늘어남에 따라, 정부는 온라인
 
상에서 주민등록번호 수집 및 이용을 제한하도록 정보통신망법을 개정하였습니다. 온라인상에서
 
주민등록번호이용이 제한됨에 따라, 주민등록번호를 대신할 수 있는 여러가지 인증방법을 사용하
 
게 되었는데, 그 중 한가지가 바로 i-PIN을 이용한 본인인증입니다. 

i-PIN을 사용하면 각종 포털사이트나 게임사이트에서 본인인증을 할 때, 해당 사이트에는 민감한
 
정보를 입력하지 않으면서 개인의 정확한 식별은 가능하기 때문에, 더 효과적으로 개인정보를 보
 
호할 수 있습니다. 또한 i-PIN을 사용할 때 마다 본인이 가입할 때 입력한 이메일로 인증정보를
 
알려주기 때문에, 자신의 i-PIN계정의 도용여부를 금방 알아차릴 수 있으며, 주민등록번호와는
 
다르게 아이핀이 도용됬을 경우에는 즉시 폐기 후 새로운 아이디와 비밀번호로 재발급 받으면 되
 
기 때문에, 보안상으로 주민등록번호보다 훨씬 안전하다고 볼 수 있습니다.  

i-PIN을 발급받기 위해서는 발급자의 대면확인, 주민등록번호, 공인인증서, 휴대전화, 신용카드
 
중 하나의 방법을 통하여 신원확인을 하여야 합니다. 

2013년 3월 현재,  

서울신용평가정보( http://siren24.com )
 
나이스 신용평가정보( http://idcheck.co.kr ) 

코리아 크레딧뷰로( http://ok-name.co.kr )  

공공아이핀센터( http://gpin.go.kr )
  
4곳에서 아이핀을 발급해 주고 있습니다.

출저: 이스트소프트

Posted by hoonihoon
2014. 2. 26. 10:36

DLL 이란?


DLL이란 라이브러리를 말한다. 그럼 라이브러리란 함수,데이터, 타입등의 여러가지 프로그래밍 요소들의 집합이다. 보통 LIB로 표현된다. 


자주사용되는 부분이 있다고 치자. 예를들면, 아이디 체크라든지, 이미지의 로딩이라던지, 그런 비슷한 부분을 프로그램을 한다


고 치면, 같은 부분을 여러번 소스를 작성하면 나중에 수정하기에 힘들뿐더러 당장 타이핑할때 손가락의 마비가 올수도 있다. 또한 여러번 작성함으로써 버그가 숨을 공간을 남긴다. 


이러한 부분을 따로 DLL로 만들어 놓으면, 한번 코딩으로 여러군데서 동시에 쓰일수 있다. 


또한 이렇게 만들어 놓은 좋은 DLL이 있다면, 새로운 프로그램을 빌드할때나, 실행할때 DLL의 도움을 받아 쉽게 작성할수 있으리라.

 
Unix나 Linux를 한사람들도 Dll이나, Lib 등은 알것이다. M$에서 만든것이 아니고, 여기에서 차용해 왔다고 그러더라. 

간단히 요약하자. 

* DLL은 자주사용되는 함수및 변수, 데이터의 프로그래밍 요소의 집합이다.
* 실행이나, 컴파일시 같이 빌드하면 해당 프로그램내에서 간편히 사용할수 있다.


DLL은 두가지 링크의 형태로써 프로그램과 연관을 맺는다. 

정적링크 : 


 Lib로 빌드된다. 프로그램 빌드시에 같이 빌드가 되면서 해당 프로그램의 일부가 된다. 현실적으로는 속도가 동적링


크보다는 빠르다만, 크기가 커진다. 여러 프로그램이 같은 Lib를 쓴다면, 점점더 많은 메모리가 필요하다. 절대 공유하지 않는


다. 이미 프로그램의 일부로써 다른 프로그램과는 다른 영역에 존재한다. 프로그램 빌드시에 해당 함수및 변수, 데이타들이 프


로그램에 포함되기 때문에 프로그램의 실행시 Lib의 필요가 없다. (없어도 실행가능하다) 

동적링크 :


 DLL로 빌드된다.(그렇다고, Lib가 없다는건 아니다.) 프로그램의 빌드시에는 DLL안의 함수선언만 있으면 충분하다. 현실적으


로는 속도가 정적링크보다는 느리다고 할수 있지만, 크기가 커지는 것은 아니며, 여러 프로그램이 같은 DLL을 쓴다고 하더래도 


DLL이 그 수만큼 메모리에 적재되는 것은 아니며, 공유해서 쓰게 된다. 타 프로그램도 읽을수 있는 메모리 공간에 따로 할당이 


된다. 프로그램 빌드시에는 해당 함수에 대한 선언만이 존재할뿐이어서 실제 코드가 링크된 DLL파일이 없는이상 프로그램이 실


행되지 않는다.



레지스트리란?


‘레지스트리’는 윈도우 운영체제의 실행, 또는 각종 윈도우용 응용프로그램의 실행에 필요한 설정


값들을 한데 모아 놓은 데이터베이스입니다.

 

레지스트리는 윈도우OS 만의 고유한 정보저장 체계이며, 레지스트리 내의 각 위치마다 어떤 정보가

 

어떤 형식으로 저장되어야 하는지의 규칙이 정해져 있습니다.

 

저장된 레지스트리 정보는 OS나 프로그램에 의해 읽혀지고 수정되면서 다양하게 활용됩니다. 윈도우

 

의 각 계정 별로 바탕화면을 다르게 설정하거나, MP3 확장자를 실행할 때 사용자 별로 기본 음악플

 

레이어를 다르게 정할 수 있는 것도 모두 레지스트리의 특정 위치에 이러한 규칙을 지정하는 값들이

 

존재하기 때문입니다.

 

레지스트리라는 표준화된 정보저장소가 존재함으로 인해 대부분의 윈도우용 응용프로그램들이 더 효

 

율적이고 간결한 구조를 가질 수 있습니다. 다만 레지스트리에 대한 의존도가 그 만큼 높기 때문에

 

레지스트리를 잘못 변경하거나 삭제하게 되면 필요한 정보를 얻지 못한 프로그램이 실행되지 않거나

 

비정상적으로 동작할 수 있습니다.

 

 

예를 하나 들면 어느 사용자가 A’ PC에 설치된 사진편집 프로그램의 폴더를 찾아 폴더 내용을 그대

 

로 복사해서 B’ PC로 옮긴다면, 복사된 사진편집 프로그램은 제대로 실행되지 않습니다.

 

이는 정상적인 설치과정을 거치지 않고 사진편집 프로그램 폴더의 파일만 복사를 했기 때문에 A’

 

PC에 세팅된 레지스트리 정보가 B’ PC에 정상적으로 세팅되지 못했기 때문입니다.

 

레지스트리에는 사용자 설정과 각 하드웨어, 소프트웨어의 설정 값이 저장되기도 하지만 시스템과

 

애플리케이션의 동작 기록 및 사용자의 윈도우 사용기록을 남김으로 시스템운영에 필요한 로그의 기

 

능을 하기도 합니다.

 


등록된 DLL 보기


레지스트리 편집기는 열기.  실행창에서 regedit 를 입력.


아래 레지스트리 경로에서 레지스트리에 등록된 DLL의 목록을 볼 수 있다.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs



참고:

http://blog.daum.net/kiswiz/13

http://alyac.altools.co.kr/SecurityCenter/Issue/CommonSenseView.aspx?id=58

Posted by hoonihoon
2014. 2. 18. 15:57

str = "1234 5678 91021 3568"

isNa = Instr(str,"l3568")
Response.Write isNa


지정한 문자열이 있으면 몇번째에 있는지 숫자를 반환하고, 없으면 0 을 반환


Posted by hoonihoon
2014. 2. 17. 15:05

Null 값일 때다른 값으로 바꿔주는 함수로  oracle에서는 nvl()함수를 사용하고,
MS-SQL
에서는
  isnull()함수를 사용하면 됩니다.


예)


NVL(SUM(mileage),0) as mileage

'2019년 이전 정리 > DB_ORACLE' 카테고리의 다른 글

Oracle DISTINCT, GROUP BY  (1) 2014.02.07
Oracle DECODE 함수  (0) 2014.02.06
Posted by hoonihoon
2014. 2. 13. 14:56

SELECT *

FROM Orders order by CustomerID


OrderIDCustomerIDEmployeeIDOrderDateShipperID
10308271996-09-183
10365331996-11-272
10355461996-11-151
10383481996-12-163
10278581996-08-122


SELECT *

FROM Customers


CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constituci� 2222M�ico D.F.05021Mexico
3Antonio Moreno Taquer�Antonio MorenoMataderos 2312M�ico D.F.05023Mexico
4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK



두개를 LEFT OUTER JOIN 하게 되면


SELECT *

FROM Customers a

LEFT JOIN Orders b

ON a.CustomerID=b.CustomerID

ORDER BY Customers.CustomerName;


CustomerIDCustomerNameContactNameAddressCityPostalCodeCountryOrderIDEmployeeIDOrderDateShipperID
1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germanynullnullnullnull
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constituci� 2222M�ico D.F.05021Mexico1030871996-09-183
3Antonio Moreno Taquer�Antonio MorenoMataderos 2312M�ico D.F.05023Mexico1036531996-11-272


결과에서 보면  LEFT OUTER JOIN 은 


ON CustomerID 를 기준으로 Orders 테이블과 일치하는 레코드가 없으면, Orders 테이블의 모든 컬럼이 담긴 row에 NULL을 넣는다


'2019년 이전 정리 > DB_MSSQL' 카테고리의 다른 글

[MS-SQL] 실행계획 Nested Join Merge Join 문제해결  (0) 2015.02.25
[SQL] dateadd 문법  (0) 2014.02.10
Posted by hoonihoon
2014. 2. 11. 10:17


Call OpenConn_mall(conn)

Call OpenConn_ora(oraConn)


Call은 Sub, Function 을 호출 할 때 사용합니다.


w3schools 에서 의미를 찾아보면,

-> ASP 내 자바스크립트를 호출 할 수 있다.

<!DOCTYPE html>

<html>
<head>
<%
sub vbproc(num1,num2)
response.write(num1*num2)
end sub
%>
</head>
<body>

<p>Result: <%call vbproc(3,4)%></p>

</body>
</html>


attend_write.asp

Call OpenConn_mall(conn)


dbconn_mall.asp

Sub OpenConn_mall(conn)

Set conn = Server.CreateObject("ADODB.Connection")

conn.open("xxxxxxxxxxxxx");

End Sub



Posted by hoonihoon
2014. 2. 10. 17:46


dateadd( 날짜형식(yy,mm,dd,hh), 숫자, 날짜)


지정된 날짜에서 지정된 숫자만큼, 지정된 날짜형식을 변환시키겠다 라는 말이다.


dateadd(yy, 10, '2012-02-13")    결과 :  2020-02-13

dateadd(d, 10, '2012-02-13")     결과 : 2012-02-23



특정 시간이 됐을 때 이벤트가 발생하는 where 절이다.

아래 보면 2014년 1월 2일에 00시에 이벤트가 발생. 

아직 이벤트 시간이 안됐으면 발생 안함. where 절에 사용


where dateadd(hh, convert(int,evt_stime),convert(datetime,evt_sdate)) < getdate() 


해석:  dateadd(hh, 00, 2014-01-02)  < 현재시간()

Posted by hoonihoon
2014. 2. 10. 13:44


With ~ End With 문 


여러 문장에 걸쳐 동일한 객체의 문장이 있을 경우 With문을 사용하면 객체의 이름을 여러번 입력하지 않아도 된다.


. 객체의 속성이나 메서드로 구성된 하나 이상의 문장


예) 


With object

.name

.age

End With



Posted by hoonihoon