'Study portfolio'에 해당되는 글 43건

[MSSQL] 스칼라 반환함수(Scalar function)(SF)

Database/MSSQL

▶ 개요

단일 값(single value) 반환

ex) GETDATE(), SUBSTRING()


▶ 구성

create function [함수명](@_param1 [parameter type], @_param2 [parameter type] ...)

returns [반환 type]

begin

declare @_rVal [반환 type] --임시변수

...

return @_rVal

end


▶ 예시 (정규식 문자열 치환)

- 구현sql

- 실행결과


▶ 출처

https://www.simple-talk.com/sql/t-sql-programming/sql-server-functions-the-basics/

http://hwoarang757.tistory.com/entry/MSSQL-%EC%96%B4%EC%84%A4%ED%94%88-RegEx-Replace-Function-%EC%97%AD%ED%95%A0-%ED%95%A8%EC%88%98-%EC%98%88%EC%A0%9C-0


[MSSQL] 사용자정의함수(User-defined Functions)(UDFs)

Database/MSSQL

▶ 구성

MSSQL에서 지원하는 사용자정의 함수는 크게 두가지로 구분된다.

- 스칼라 반환함수(Scalar function)(SF)

- 테이블 반환함수(Table Valued Function)(TVF)




▶ 사용자정의함수를 사용하는 이유는 무엇인가?

1) 중복적으로 사용되는 코드를 함수화 함으로써 재사용성을 높힙니다. 이를 통해서 생산성 향상과 무결성 유지에 도움을 줍니다.

2) 간결한 코드작성을 가능토록 하여서 코드품질을 향상시킵니다.

3) 변경사항 발생시 유지보수를 용이하게 합니다.


그 외에도 생성한 인덱스를 인위적으로 사용하기 위해서, 임시테이블사용을 피함으로서 성능향상 등의 사유로 사용되어집니다.


▶ 출처

https://technet.microsoft.com/ko-kr/library/ms191165(v=sql.105).aspx

http://warehouseofdev.tistory.com/entry/mssql-%EC%8A%A4%EC%B9%BC%EB%9D%BC-%ED%95%A8%EC%88%98%EC%99%80-%ED%85%8C%EC%9D%B4%EB%B8%94-%EB%B0%98%ED%99%98-%ED%95%A8%EC%88%98

http://blog.naver.com/PostView.nhn?blogId=rocabilly&logNo=140133522180

http://www.mssql.org/LectureSQL/02_sql2k/ufn_05.htm

http://purumae.tistory.com/179

web brower 상에서 개행문자 처리

Web

개행문자에 대한 정리는 다음 링크에서 간략히 해놓았다.

http://templar.tistory.com/30


textarea, input 내에서 줄바꿈 입력시 '\n'(이하 LF) 이다.

그 외 html 상에서 줄바꿈은 br tag(<br/>) 이다.

(입력된 LF가 form submit 하면 LF -> CR+LF으로 치환된다)


textarea에서 줄바꿈 포함된 문자열 입력 이후 다시 화면 상 표현은 다음과 같이 된다.


▶ java 소스코드 - br tag로 치환 Util



▶ java 소스코드 - Util 사용예시

		String ps_txt =request.getParameter("txt");

		model.addAttribute("txt", ps_txt);
		model.addAttribute("rtxt", CommonStrUtils.trimAndrepalceNewlineToBrTag(ps_txt));
		model.addAttribute("r2txt", CommonStrUtils.trimAndrepalceCRLFtoLF(ps_txt));

		...


textarea 상에서는 줄바꿈 되었으나, 밖에서는 줄바꿈 되지 않는 것을 확인 할 수 있다.

CR+LF 또는 LF를 br tag 변경하면 다음과 같이 적용됨을 확인 할 수 있다.

개행문자(CR, LF) 정리

Web/Web 기초

web에게 입력받은 줄바꿈이 포함된 문자열을 다시 표현할때 줄바꿈이 표현되지 않았다.

왜 표현되지 않는가를 찾아보다 개행문자에 대한 문서를 검색하며 이를 정리하였습니다.



▶ 개행문자 개요

키보드상 Enter key 입력 시 줄 바뀌어진다. 이를 개행문자라 한다.

개행문자(newline)는 CR(Carriage Return), LF(Line Feed)으로 구분된다.

즉, 줄바꿈을 표현하는 방법은 시스템과 OS에 따라 구분되어 사용된다.

ex)

Windows는 ASCII의 CR+LF

Unix, Linux는 LF

맥OS는 버전 9까지 CR, 버전 10부터 LF



▶ 개행문자 표현

CR = '\r'

LF = '\n'



▶ 출처

https://ko.wikipedia.org/wiki/%EC%BA%90%EB%A6%AC%EC%A7%80_%EB%A6%AC%ED%84%B4

https://ko.wikipedia.org/wiki/%EC%83%88%EC%A4%84_%EB%AC%B8%EC%9E%90

'Web > Web 기초' 카테고리의 다른 글

[HTML] <img> usemap Attribute  (0) 2017.03.31
Apache HTTP Server and Tomcat Server 비교  (0) 2016.05.27

IIS 6.0에서 대용량 파일 업로드시 500 Error 발생

Web

업로드파일의 최대허용크기를 초과하면 다음과 같이 500 Error를 토해낸다.




▶ 해결책

설정파일은 경로는 다음과 같다.

C:/windows/system32/inetsrv/metabase.xml


해당 파일내에서 AspMaxRequestEntityAllowed 값을 변경한다.

변경 후 IIS 재시작해야 설정값이 반영된다.

ex) 100MB = 1,048,576(2^20) * 100 byte



▶ 참고

http://gimakhin.tistory.com/20

https://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/6de966e8-8bcf-4782-95de-466123e59168.mspx?mfr=true

'Web' 카테고리의 다른 글

[Eclipse] maven build JSP Syntax Validation disabled  (0) 2017.04.06
web brower 상에서 개행문자 처리  (0) 2016.12.29
[ASP] Sub, Function Procedures  (0) 2016.11.04
[ASP] Empty, Nothing, Null 차이  (0) 2016.11.04
[ASP] 내장객체 정리  (0) 2016.11.04

Java primitive type, wrapper class and autoboxing

Programming Language/Java

※ Java Primitive Type, Wrapper Class and Auto-Boxing

▶ primitive type 이란?

JAVA에서 사용되는 8가지 기초자료형을 말한다. 

method의 parameter 전달시 기초 자료형은 값 참조(call by value)로 이루어진다.

8가지 기초자료형는 다음과 같다.


 Variable Type

 Default Value

 단위(bits)

 boolean false

 1

 byte

 (byte)0

 8(=1byte)

 short

 (short)0

 16(=2byte)

 char

 '\u0000'

 16(=2byte)

 int

 0

 32(=4byte)

 float 0.0f 32(=4byte)

 long

 0L

 64(=8byte)

 double

 0.0d

 64(=8byte)

* Class Variable 내에서는 Boolean Type은 Primitive Type이 아니며, 내부적으로 int 로 변경되며, Boolean의 Default가 False이면 int 값 0으로 인식된다.



▶ Wrapper Class 이란?

primitive type를 객체로 사용하기 위한 개념이다.

8가지 primitive type와 대응되는 wrapper class은 다음과 같다.

Variable Type

  wrapper class

 boolean

 Boolean

 byte

 Byte

 short

 Short

 char

 Charater

 int

 Integer

 float

 Float

 long

 Long

 double

 Double

ex1)

Integer obj = new Integer(1);


▶ Auto-Boxing 이란?

위 예제와 같이 선언된 obj에 wrapper class를 이용해서 인스턴스화 하지 않아도 자동으로 형변환해주는 것을 말한다.

ex2)

Integer obj = 1; 


Auto-Unboxing은 반대로 primitive type에 wrapper class의 기본자료형변환 처리하는 메소드를 이용하지 않고 대입해도

자동으로 primitive type으로 형변환해주는 것을 말한다.

ex3)

int obj2 = new Integer(2);



▶ 출처 및 참조

https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html

java performance fundamental 저자.김한도 p236

[ASP] Sub, Function Procedures

Web

ASP는 Sub, Function 두 종류의 Procedures 존재.


▶ Sub

 값 반환 불가

 ex)

  Sub mysub()

   response.write("I was written by a sub procedure")

  End Sub

 

▶ Function

 값 반환 가능

 ex)

  Function myfunction()

   some statements

   myfunction=some value

  End Function

 

▶ Sub, Function 비교

 둘 다 Procedures 호출시 매개인자를 넘겨줄 수 있다.

 값 반환 가능여부에 따라서 구분된다.


▶ 출처

http://www.w3schools.com/asp/asp_procedures.asp

[ASP] Empty, Nothing, Null 차이

Web

http://www.w3schools.com/asp/asp_ref_vbscript_keywords.asp 작성된 영어 문서를 제가 알기 쉽게 번역하였습니다.


▶ Empty, Nothing, Null

3개의 상태는 각기 다른 상태이며, 각기 가지는 의미가 미묘하게 차이를 지닌다.

(Empty != Nothing,  Empty != Null, Nothing != Null)


* Empty

 초기화 되지 않는 상태로 변경. 즉, 변수선언 된 바로 직전상태로 만든다.

 ex)

Dim d '/ uninitialized

Set d = Date() '/ NOT uninitialized

Set d = Empty '/ uninitialized

 

* Nothing

 초기화 되지 않는 상태로 변경. 또는, 시스템 상 할당된 자원을 해제한다.

 ex)

Dim d '/ uninitialized

Set d = Date() '/ NOT uninitialized

Set d = Nothing '/ uninitialized & release system resources

 

* Null

 해당 변수를 유효하지 않는 값으로 변경. sql에서 사용되는 NULL가 같다.

 ex)

Dim d '/ uninitialized

Set d = Date() '/ valid data

Set d = Null '/ no valid data


▶ Dim, Set

 Dim: 변수선언, 메모리할당

 Set: 객체인스턴스 생성 또는 값 할당

 ex)

  Dim d '/ 변수선언

  Set d = Date() '/ 값할당 또는 인스턴스 생성 


▶ 출처

http://www.w3schools.com/asp/asp_ref_vbscript_keywords.asp

[ASP] 내장객체 정리

Web

http://taeyo.net/lecture/에 있는 강의를 제가 알기 쉽게 정리한 내용입니다.


▶ 내장객체모델

* Server

 asp.dll에서 제공되지 않는 외부객체를 사용하기 위해서는 Server.CreateObject 메소드를 이용해서,

 객체의 인스턴스생성 후 사용할 수 있다.

 ex) 데이터베이스 접속을 위해서 MS에서 제공하는 ADO(ActiveX Data Object)

    파일시스템에 읽고 쓰기위한 FileSystemObject

* Request

 5개의 컬렉션, 1개의 속성, 1개의 메소드로 구성됨

 - 컬렉션

 QueryString: Get방식 인자

 Form: Post방식 인자

 Cookie: 쿠키

 ServerVariable: HTTP해더값, 서버자체변수 등

  ex) Request.ServerVariable("REMOTE_ADDR")

 ClientCertificate

 

 - 속성

 TotalBytes: 클라이언트에서 서버측으로 전송한 바이트 전체 개수에 대한 정보

 

 - 메소드 

 BinaryRead: count한 byte만큼 데이터를 읽어들인다.


 - 우선순위

 QueryString > Form > Cookie > ClientCertificate > ServerVariable


 - Request() / Request.QueryString() / Request.Form() 비교

 Request(): 컬렉션을 우선순위에 따라 순회하면서 요청한 인자를 겁색한다.

 Request.QueryString(): Get방식으로 넘겨준 인자를 검색한다.

 Request.Form(): Post방식으로 넘겨준 인자를 검색한다.

 

 Request() 방식은 어떤방식으로 인자를 넘겨줄지 모르는 경우는 유용하나,

 소스코드가 직관적이지 못하며, 성능상 QueryString(), Form()에 비해서 떨어진다.

 

* Response

 1개의 컬렉션, 9개의 속성, 8개의 메소드로 구성되어 있다.

 - 컬렉션

 Cookies

 

 - 속성

 Buffer

 CacheControl

 Charset

 ContentType

 Expires

 ExpiresAbsolute

 IsClientConnected

 Pics

 Status

 

 - 속성

 AddHeader

 AppendToLog

 BinaryWrite

 Clear

 End

 Flush

 Redirect

 Write


* Session

 2개의 컬렉션, 5개의 속성, 3개의 메소드, 2개의 이벤트로 구성되어 있다.

 - 컬렉션

 Contents: application/session 내에서 script 상에서 선언된 변수

 StaticObjects: application/session 내에서 HTML <object> tag를 이용해서 선언된 변수


 - 속성

 CodePage: 

 LCID: 지역을 구분할 수 있는 정수를 지정 또는 반환. 이를 이용해서 일시, 통화 등을 표현할 수 있다..

 SessionID: 서버에 의해서 생성된 유니크한 Session id. 사용자의 유니크 id를 반환.

 Timeout: Application에서의 Session 객체 유지시간

 

 - 메소드

 Abandon: 해당 User의 Session 삭제

 Contents.Remove: Contents 중 입력한 key 변수 삭제

 Contents.RemoveAll(): Contents 전체 변수 삭제


* Application

 2개의 컬렉션, 4개의 메소드, 2개의 이벤트로 구성되어 있다.


 Application 개체는 Event가 존재하며, 제공되는 Event에는 OnStart, OnEnd가 있다.

 제어하는 파일은 global.asp이다.

 Event는 application의 시작/종료시점, Session의 시작/종료시점으로 각각 4가지 구분된다.

  

 Application 객체는 전역변수로서 사용될 수도 있다.

 전역변수는 여러명의 사용자가 동시에 접근할 수 있기에 이를 제어하기 위한 임계영역을 지정하는 메소드가 필요하겠죠?

 이와 같은 역활을 하는 메소드가 Lock, UnLock 이다.


 - 컬렉션

 Contents

 StaticObjects

  

 - 메소드

 Contents.Remove

 Contents.RemoveAll()

 Lock

 Unlock

 

 - 이벤트

 Application_OnEnd

 Application_OnStart


* ASPError

 ASP 3.0, IIS5 이후 부터 지원한다.

 9개의 속성으로 구성되어 있다.

 

 - 속성

 ASPCode

 ASPDescription

 Category

 Column

 Description

 File

 Line

 Number

 Source


▶ 참조

http://taeyo.net/lecture/

http://www.w3schools.com/asp/asp_ref_session.asp

[ASP] 여러 단계 ole db 작업을 하는 동안 오류가 발생했습니다.

Web

위 Error 발생하는 사유는 여러 이유가 있겠지만, 확인된 원인에 대해서 정리하였습니다.

사용하는 Database는 MSSQL 입니다.


▶ 저장프로시저(store procedure)를 결과조회(select) 위하여 작성했을 때, 위에 같은 Error가 발생한 경우

 > 저장프로시저(store procedure) 내 에서 SET NOCOUNT OFF 선언

 > SET NOCOUNT 에 대한 정리: http://templar.tistory.com/12

  

▶ ASP Page 내에서 발생한 경우.

1) 작성된 SQL 앞에 SET NOCOUNT OFF; 추가

  > 다음과 같이 하면, 좀더 명확한 Error Message로 반환

2) 반환된 Error Message 확인 후 처리

  > 본인의 경우는 해당 데이터베이스에 접근권한이 없어서 발생되었습니다.



'Web' 카테고리의 다른 글

IIS 6.0에서 대용량 파일 업로드시 500 Error 발생  (0) 2016.12.15
[ASP] Sub, Function Procedures  (0) 2016.11.04
[ASP] Empty, Nothing, Null 차이  (0) 2016.11.04
[ASP] 내장객체 정리  (0) 2016.11.04
Eclipse 대소문자 변환 단축키  (0) 2016.06.14