Standard relational operators

Standard relational operators

The standard numerical relational operators used in programming languages are shown below.

Common relational operators
In programming languages In print Meaning Used to:
C-like 1 BASIC-like 2 Mathematica[1] MATLAB 3 Fortran 4 Bourne-like shells 5 MUMPS
== = == Equal[x,y] == eq(x,y) == .EQ. -eq = = equal to Test the equivalence of two values.
!= <> != Unequal[x,y] ~= ne(x,y) /= .NE. -ne '= not equal to Test the negated equivalence of two values.
> > > Greater[x,y] > gt(x,y) > .GT. -gt > > greater than Test if the value of the left expression is greater than that of the right.
< < < Less[x,y] < lt(x,y) < .LT. -lt < < less than Test if the value of the left expression is less than that of the right.
>= >= >= GreaterEqual[x,y] >= ge(x,y) >= .GE. -ge '< greater than or equal to Test if the value of the left expression is greater than or equal to that of the right.
<= <= <= LessEqual[x,y] <= le(x,y) <= .LE. -le '> less than or equal to Test if the value of the left expression is less than or equal to that of the right.
Note (1): Including C, C++, C#, Go, Java, JavaScript, Perl (numerical comparison only), PHP, Python, and Ruby.
Note (2): Including BASIC, Visual Basic .NET, VB.NET, Objective Caml, Pascal, SQL, and Standard ML.
Note (3): MATLAB, although in other respects using similar syntax as C, does not use !=, as ! in MATLAB sends the following text as a command line to the operating system.
Note (4): The first form including Haskell.
Note (5): Including Bourne shell, Bash, Korn shell, and Windows PowerShell. The symbols < and > are usually used in a shell for redirection, so other symbols need to be used. Without the hyphen, is used in Perl for string comparison.



The following table lists the different mechanisms to test for these two types of equality in various languages:

Language Physical equality Structural equality Notes
C, C++ a == b *a == *b a and b are pointers
C# object.ReferenceEquals(a, b)1 a.Equals(b)1
Common Lisp (eq a b) (equal a b)
Java a == b a.equals(b) a and b are references
Objective Caml a == b a = b
Pascal a^ = b^ a = b
Perl $a == $b $$a == $$b $a and $b are references to scalars
PHP5 N/A $a == $b $a and $b are objects
Python a is b a == b
Ruby a.equal?(b) a == b
Scheme (eq? a b) (equal? a b)
Visual Basic .NET a Is b a = b
Objective-C a == b [a isEqual:b] a and b are pointers to objects

1 In C#, the == operator defaults to ReferenceEquals, but can be overloaded to perform Equals instead. This allows to test for structural equality wherever it's more intuitive, most notably in string comparison.


크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by 홍반장

2011/03/15 16:30 2011/03/15 16:30
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/5934

jQuery   is a new kind of JavaScript Library.
jQuery is a fast and concise JavaScript Library that simplifies HTML document traversing, event handling, animating, and Ajax interactions for rapid web development. jQuery is designed to change the way that you write JavaScript.

gitHub : https://github.com/  github social coding

Sencha . touch : http://www.sencha.com/products/touch/Sencha

jQTouch : http://www.jqtouch.com/

jQuery Mobile | http://jquerymobile.com/

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by 홍반장

2011/03/15 16:00 2011/03/15 16:00
, , , ,
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/5933

http://developer.appcelerator.com/

Today you need to be in three places at once: Online, On-phone, and On-desktop. Titanium empowers you to create immersive, full-featured applications that go beyond browser boundaries and stick with your audience whenever and wherever they are.

Titanium applications are divided into 4 main parts:
  1. The html/css/javascript code that makes up the core application logic and UI
  2. The APIs that access native device/desktop functionality, analytics or other modular functionality
  3. The language-OS bridge that compiles web code into native application code
  4. The run-time shell that packages the application for cross-platform distribution.

Once built, Titanium-based applications can be tested, packaged, and distributed through the Appcelerator Network’s cloud services. The Titanium platform is open source, so you may also access the source code to the complete application at any time for your own use.



크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by 홍반장

2011/03/15 13:09 2011/03/15 13:09
, ,
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/5932

오랜만에 들어와보니 네이버 로그인 페이지가 바뀌어 있네요.
언제 바뀐것인지 모르지만, 역시 바뀌어야 살수 있지 않을까 하는 생각이 드네요.
분발합시다!

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by 홍반장

2011/02/28 07:19 2011/02/28 07:19
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/5892

ASP - 텍스트 인코딩 ANSI to UTF-8


<%

Public Function URLEncodeUTF8(byVal szSource)



Dim szChar, WideChar, nLength, i, result
nLength = Len(szSource)



'szSource = Replace(szSource," ","+")



For i = 1 To nLength
 szChar = Mid(szSource, i, 1)



 If Asc(szChar) < 0 Then
  WideChar = CLng(AscB(MidB(szChar, 2, 1))) * 256 + AscB(MidB(szChar, 1, 1))



  If (WideChar And &HFF80) = 0 Then
   result = result & "%" & Hex(WideChar)
  ElseIf (WideChar And &HF000) = 0 Then
   result = result & _
   "%" & Hex(CInt((WideChar And &HFFC0) / 64) Or &HC0) & _
   "%" & Hex(WideChar And &H3F Or &H80)
  Else
   result = result & _
   "%" & Hex(CInt((WideChar And &HF000) / 4096) Or &HE0) & _
   "%" & Hex(CInt((WideChar And &HFFC0) / 64) And &H3F Or &H80) & _
   "%" & Hex(WideChar And &H3F Or &H80)
  End If
 Else
  result = result + szChar
 End If
Next
URLEncodeUTF8 = result
End Function




'---------------------------------------------------------------------
' URLDecodeUTF8 (UTF8 --> 아스키 )
' mongmong - 2003. 10 (URLEncodeUTF8 참조)
'---------------------------------------------------------------------




Public Function URLDecodeUTF8(byVal pURL)
Dim i, s1, s2, s3, u1, u2, result
pURL = Replace(pURL,"+"," ")



For i = 1 to Len(pURL)



 if Mid(pURL, i, 1) = "%" then



  s1 = CLng("&H" & Mid(pURL, i + 1, 2))



  '2바이트일 경우
  if ((s1 AND &HC0) = &HC0) AND ((s1 AND &HE0) <> &HE0) then
   s2 = CLng("&H" & Mid(pURL, i + 4, 2))



   u1 = (s1 AND &H1C) / &H04
   u2 = ((s1 AND &H03) * &H04 + ((s2 AND &H30) / &H10)) * &H10
   u2 = u2 + (s2 AND &H0F)
   result = result & ChrW((u1 * &H100) + u2)
   i = i + 5



  '3바이트일 경우
  elseif (s1 AND &HE0 = &HE0) then
   s2 = CLng("&H" & Mid(pURL, i + 4, 2))
   s3 = CLng("&H" & Mid(pURL, i + 7, 2))



   u1 = ((s1 AND &H0F) * &H10)
   u1 = u1 + ((s2 AND &H3C) / &H04)
   u2 = ((s2 AND &H03) * &H04 +  (s3 AND &H30) / &H10) * &H10
   u2 = u2 + (s3 AND &H0F)
   result = result & ChrW((u1 * &H100) + u2)
   i = i + 8
  end if
 else
  result = result & Mid(pURL, i, 1)
 end if
Next
URLDecodeUTF8 = result
End Function


    Dim stitle, sns_title, sns_url, sns_contents

    stitle = "테스트"

    response.write "ANSI : " & stitle & "<br>"

    sTitle = URLEncodeUTF8 (sTitle)
    sns_title  = replace(stitle, """", "'")

    response.write "UTF-8 : " & sns_title & "<br>"

    sns_url   = ""'"http://" & Request.ServerVariables("server_name") + "?idx="
    'sns_contents = replace(summary, """", "'") + "<br/>" + sns_url
%>

                                                <a target="_blank" href="http://twitter.com/home/?status=<%=sns_title%>:<%=sns_url%>"><img src="/images/content/news/icon_t.gif" alt="t" /></a>






크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by 홍반장

2011/02/11 12:28 2011/02/11 12:28
, , ,
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/5865

[펌] WebMatrix가 뭡니까?

http://blogs.msdn.com/b/eva/archive/20 ··· r-1.aspx

WebMatrix뭡니까?

image001.png

WebMatrix는 웹 개발자가 웹사이트를 쉽고 빠르게 제작, 커스터마이징이 가능하도록 돕는 새로운 개발 도구 & 플랫폼 입니다.

특히, 기존의 복잡한 웹 개발 방식을 심플하고, 직관적으로 개발 할 수 있도록 돕는, 개발 도구 입니다.

참고 : WebMatrix 공식 웹사이트

개발 도구만 제공되나요? 개발에 필요한 서버, 데이터베이스, 개발언어는요? WebMatrix 는 “개발 도구”이지만, 가장 최신의 웹 개발 도구이기에 기존 웹 개발자들의 요구를 수렴해 쉽고 빠른 웹사이트 제작에 특화되도록 개발 되었습니다. 특히, WebMatrix는 아래의 플랫폼 기술들을 포함하고 있습니다.

1) 웹 서버

IIS Developer Express 입니다. 개발자가 웹사이트를 실행해 개발과 테스트를 진행하도록 돕는 가벼운 웹 서버를 자체 내장하고 있습니다. Visual Studio 2010과 Visual Web Developer 2010 Express 버전과 연계해 동작 가능합니다.

2) 데이터베이스

SQL Server Compact Edition 4가 WebMatrix에 포함되어 있습니다. 무료 데이터베이스 엔진으로 .NET 기반의 API를 제공해 WebMatrix를 통한 손쉬운 웹 개발이 가능하며, SQL Server로 쉬운 데이터 마이그레이션이 가능합니다.(WebMatrix에서 자체 마이그레이션 도구를 제공합니다.)

3) 개발 프레임워크 - "Razor"

WebMatrix는 “Razor”라 는 ASP.NET 기반의 엔진을 지원합니다. 기존 웹 개발의 복잡성을 획기적으로 개선하고, ASP.NET MVC의 성능과 안정성을 그대로 유지하면서 빠른 웹 개발에 최적화된 구문과 모듈화된 개발이 가능하도록 돕는 Helper를 지원합니다.(Help는 곧...) 

코난이의 개인적인 느낌으로, 특히 더 쾌적한 데이터베이스 개발 관련 기능들을 제공하는게 좋더라구요~ DB와 Razor의 궁합도 대단히 좋습니다.

ASP.NET 개발자를 위한 Razor 추가 정보

"Razor" 는 정확히 ASP.NET MVC의 새로운 View 엔진 입니다. (와~~ MVC 만쉐이~) ASP.NET에서 사용하던 언어인 C#이나 VB.NET을 그대로 이용 가능하며(와~ 만만쉐이~) , 현재 국대 기업, 오픈마켓, 웹사이트 등에도 많이 적용된 ASP.NET의 안정성과 확장성을 그대로 사용 가능하지요. 하나, 코난이와 주변분들의 피드백으로, Razor는 기존의 웹폼이나 MVC 개발 방식과는 달리, Razor는 MVC가 도데체 어디 있다는거지? 할 정도로 쉽고 직관적인 개발이 가능합니다.) MVC에 대해서는 나중에 한번 더 풀어 보도록 할께요. ^_^

아, WebMatrix에서 개발과 커리어가 끝나는게 아닙니다. WebMatrix의 웹 서버와 데이터베이스, 개발 프레임워크는 모두 자연스럽게 IIS웹서버, SQL서버 데이터베이스, ASP.NET 개발 프레임워크, Visual Studio 개발 도구로 통합 가능합니다.

image003.png

새로운 웹사이트를 개발할 경우에도, 템플릿 기반으로 어플리케이션을 개발하거나, “웹 플랫폼 설치 관리자-Web Platform Installer”를 이용해 국내외 오픈 소스 어플리케이션을 설치한 후 우리에게 맞게 커스터마이징 하는 형태로 이용도 가능합니다. - 맨땅에 헤딩하면서 웹사이트 개발할 필요 없어욧(템플릿을 기반으로한 개발도 우리에게 너무너무 잘 맞아요~ 쿨~)!!!

image005.png

또한, 개발과정과 테스트 과정을 진행한 후 스테이징이나 프러덕션을 진행하실 경우에도 출판(Publishing) 과정을 모두 자체적으로 지원하기 때문에 쉽고 빠른 웹사이트 제작이 가능해요.

image007.png

특 히, 앞에서도 언급 드린 것처럼 데이터베이스 테이블, 관계, 제약, 인덱스 등의 구조를 WebMatrix 자체에서 개발하고, SQL 서버로 쉽게 마이그레이션 가능하기 때문에 마이그레이션이나 배포 관련 고민이 줄어듭니다. - SSMS(SQL Server Management Studio)를 열 필요가 없습니다.

image009.png

IIS Developer Express도 자체 내장이라, 개발 과정에서 웹 서버 관련 작업을 진행하고 시작과 중지를 WebMatrix 자체에서 진행이 가능해요.

저기위에 Start, Stop, Restart 아이콘 보이시죠?

개 발 하면서 브라우저에서 테스트를 해 보고 싶으실 경우에도 버튼 하나로, 또는 F12번키만 띡 눌러주면 바로 결과를 웹에서 확인 가능합니다. – 보이시죠? 크로스 브라우저 기반 테스트는 기본이에요. 브라우저 열고 URL 넣어서 테스트하고, 이런 과정이 필요가 없습니다.

요약해 드리자면!!!

쉽고 빠른 웹사이트 개발에 최적화된 개발 도구 & 플랫폼! 바로 WebMatrix 입니다. 다음 강좌에서는 실제로 이용하는 과정을 보여 드리도록 할게요.

참고링크 :

Introducing WebMatrix

Introducing “Razor” – a new view engine for ASP.NET

New Embedded Database Support with ASP.NET

Introducing IIS Express

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by 홍반장

2011/01/19 09:00 2011/01/19 09:00
,
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/5818

[JAVA] 인터페이스 interface

인터페이스(interface)

1. 인터페이스란?
인터페이스는 일종의 추상클래스이다. 인터페이스는 추상클래스처럼 추상메서드를 갖지만 추상클래스보다 추상화 정도가 높아서 추상클래스와 달리 몸통을 갖춘 일반 메서드 또는 멤버변수를 구성원으로 가질 수 없다. 오직 추상클래스와 상수만을 멤버로 가질 수 있으며, 그 외의 다른 어떠한 요소도 허용하지 않는다.
추상클래스를 부분적으로만 완성된 '미완성 설계도'라고 한다면, 인터페이스는 구현된 것은 아무 것도 없고 밑그림만 그려져 있는 '기본 설계도'라 할 수 있다.

인터페이스는 추상클래스처럼 완성되지 않은 불완전한 것이기 때문에 그 자체만으로 사용되기 보다는 다른 클래스를 작성하는데 도움 줄 목적으로 작성된다.


2. 인터페이스의 장점

 - 개발시간을 단축시킬 수 있다.
    일단 인터페이스가 작성되면, 이를 사용해서 프로그램을 작성하는 것이 가능하다. 메서드를 호출하는 쪽에는 메서드의 내용에 관계없이 선언부만 알면 되기 때문이다.
     그리고, 동시에 다른 한 쪽에서는 인터페이스를 구현하는 클래스를 작성하도록 하여, 인터페이스를 구현하는 클래스가 작성될 때까지 기다리지 않고도 양쪽에서 동시에 개발을 진행할 수 있다.

 - 표준화가 가능하다.
    프로젝트에 사용되는 기본 틀을 인터페이스로 작성한 다음, 개발자들에게 인터페이스를 구현하여 프로그램을 작성하도록 함으로써 보다 일관되고 정형화된 프로그램의 개발이 가능하다.

 - 서로 관계없는 클래스들에게 관계를 맺어 줄 수 있다.
    서로 상속관계에 있지도 않고, 같은 조상클래스를 가지고 있지 않은 서로 아무런 관계도 없는 클래스들에게 하나의 인터페이스를 공통적으로 구현하도록 함으로써 관계를 맺어 줄 수 있다.

 - 독립적인 프로그래밍이 가능하다.
    인터페이스를 이용하면 클래스의 선언과 구현을 분리시킬 수 있기 때문에 실제 구현에 독립적인 프로그램을 작성하는 것이 가능하다. 클래스와 클래스간의 직접적인 관계를 인터페이스를 이용해서 간접적인 관계로 변경하면, 한 클래스의 변경이 관련된 다른 클래스에 영향을 미치지 않는 독립적인 프로그래밍이 가능하다.


크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by 홍반장

2010/12/24 16:29 2010/12/24 16:29
, ,
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/5758

JAVA 공통모듈 개발
 : 데이터베이스에 대한 접근을 전담하고 있는 DAO 클래스는 공통적으로 개발해보자.

1. 기본 아키텍처

    최근 대부분의 중,대규모 웹 애플리케이션은 효율적으로 개발 및 유지보수하기 위하여
     계층화하여 개발하는 것이 일반적이다.
    이 아키택처에서 기본적으로 가지는 계층은 UI 계층, 비지니스 계층,
       퍼시스턴스 계층(Persistence Layer),  도메인 모델 계층(Domain Model Layer) 의
       네 가지로 구분할 수 있다.

    ■ UI 계층
       * 사용자에 대한 요청 및 응답 처리
       * 상위 계층(비지니스 계층, 퍼시스턴스 계층)에서 발생하는
           Exception, Error 에 대한 처리.
       * 최종 UI에서 표현해야 할 도메인 모델을 엮는 기능
       * 최종 UI에서 입력한 데이터에 대한 유효성 검증(Validation) 기능
       * 비지니스 로직과 최종 UI 사이를 분리하기 위한 컨트롤러 기능

    ■ 비지니스 계층
       * Application 비지니스 로직 처리와 비지니스와 관련된 도메인 모델의 적합성 검증
       * Transaction 처리
       * UI 계층과 Persistence 계층 사이를 연결하는 역할로서 두 계층이 직접적으로
           통신하지 않게 하여 Application의 유연성을 증가시킨다.
       * 비지니스 계층에 있는 객체들 간의 관계를 관리한다.
       * 다른 계층들과 통신하기 위한 인터페이스를 제공한다.
       
    ■ Persistence 계층
       * 영구 데이터를 빼내어 객체화시킨다.
       * 영구 저장소(일례로 관계형 데이터베이스)에 데이터를 저장, 수정, 삭제한다.
       
    ■ Domain Model 계층
       * 관계형 데이터베이스의 엔티티와 비슷한 개념을 가지는 것으로
           실제 비지니스 객체를 의미한다.

    위 네 계층은 독립적으로 분리할 수 있도록 구현해야 하며,
     일반적으로 각 계층 사이에서는 도메인 모델을 제외하고
      Interface를 이용하여 통신하는 것이 일반적이다.

    도메인 모델은 UI/비지니스/Persistence 계층 전체에 걸쳐 사용하게 된다.




크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by 홍반장

2010/12/23 15:14 2010/12/23 15:14
, ,
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/5754

[JAVA] iBATIS 란?

iBATIS의 개념
 
iBATIS는 간단한 XML서술자를 사용해서 간단하게 자바빈즈를 SQL statement에 맵핑시킨다. 간단함(Simplicity)이란 다른 프레임워크와 객체관계맵핑툴에 비해 iBATIS의 가장 큰 장점이다. iBATIS Data Mapper를 사용하기 위해서 당신은 자바빈즈와 XML 그리고 SQL에 친숙할 필요가 있다. 여기엔 배워야 할것도 거의 없고 테이블을 조인하거나 복잡한 쿼리문을 수행하기 위해 필요한 복잡한 스키마도 없다. Data Mapper를 사용하면 당신은 실제 SQL문의 모든 기능을 가질수 있다. JDBC 로만 프로그래밍 할 때의 번거로움을 줄여주기 위해 재사용 모듈로 개발된 것인데 그 주요한 어려움을 ibatis 개발자 가이드에서 다음과 같이 정리하고 있다.

iBATIS의 역사와 사용

    * SQL 문장과 프로그래밍 코드의 분리
    * JDBC 라이브러리를 통해 매개변수를 전달하고 결과를 추출하는 일
    * 데이터베이스 접근 클래스와 비즈니스 로직을 담은 클래스의 분리
    * 자주 쓰이는 데이터를 변경되지 않는 동안에 임시 보관(Cache)
    * 트랜젝션과 쓰레드 관리

이러한 사항들에 대해서 한번쯤 생각해볼 필요가 있다.

# SQL 문장과 프로그래밍 코드의 분리
SQL문과 프로그램 코드는 꼭 분리해야 할까? 우선 프로그램이 작은 경우는 굳이 분리할 필요가 없어 보인다. 파일만 두개로 분리되기 때문에 관리에 불편함이 가중될 수 있다. 프로그램이 커져도 분리하는 것이 꼭 유리한 것만은 아니다. SQL을 사용하는 클래스가 1000개라면 분리했을 때 2000개가 되어서 더 복잡해질 수도 있다. 그럼에도 불구하고 ibatis에서는 SQL을 분리하는 이유는 무엇일까?
Separation of Concern!! 할 일의 명확한 분리. 아마도 이것이라 짐작된다. 자바 코드에서 SQL을 없애서 순수 OO로 만들어놓기. 이것은 결벽증이나 지나친 원리집착이 아니라 체계가 다른 것을 나누어 보관하는 것이다. 논리적으로 정연한 흐름을 만들어 둘 수 있고, 객체지향 입장에서 데이터에 해당하는 도메인 모델(Domain model) 혹은 도메인 객체(Domain object)와 관계형 데이터베이스의 테이블(Table)을 느슨한 관계(loosely coupled)로 만들어서 변화에 대한 유연성을 확보할 수도 있다. 즉, 정규화를 위해서 혹은 데이터 접근의 효율성을 위해서 테이블 구조를 바꾸어도 프로그램 코드 안에 있는 SQL을 수정할 필요가 없어진다.
 
# JDBC 라이브러리를 통해 매개변수를 전달하고 결과를 추출하는 일
select 등를 할 때 조건에 해당하는 매개변수를 설정하거나, insert 문에서 값을 할당하기 위해 매개변수를 설정하는 일은 무척 번거로운 일이다. 단순한 일이면서도 오류가 잦은 부분이다. 때문에 프로젝트를 몇 차례 겪고 나면 자신만의 라이브러리를 만들거나 공통팀에서 유틸리티를 제공하는 일을 흔하게 볼 수 있다. Apache Commons의 DB Utils 나 Spring의 JDBC Template 등은 이러한 작업을 용이하게 하려고 등장했고, ibatis 역시 이러한 작업을 훨씬 부드럽게 해준다.
 
# 데이터베이스 접근 클래스와 비즈니스 로직을 담은 클래스의 분리
이른바 DAO(Data Access Object) 패턴이 이러한 일을 담당한다. ibatis는 DAO 계층 구현을 위한 유틸리티 성격이면서 동시에 best practice 역할도 수행한다.
 
# 자주 쓰이는 데이터를 변경되지 않는 동안에 임시 보관(Cache)
ibatis 에선 XML 설정만으로 캐시를 할 수 있다.
 
# 트랜젝션과 쓰레드 관리
트랜젝션 처리 역시 용이하다.

iBATIS의 주요기능

Data Mapper (com.ibatis.sqlmap.*)

개념
iBATIS Data Mapper API는 프로그래머에게 자바빈즈 객체를 PreparedStatement파라미터와 ResultSets으로 쉽게 맵핑할 수 있도록 한다. Data Mapper의 기본적인 생각은 간단함(simple)이다. 이는 자바코드의 20%를 사용하여 JDBC기능의 80%를 제공하는 간단한 프레임워크라는 뜻이다.

작동원리
Data Mapper는 자바빈즈, Map구현, 원시래퍼타입(String, Integer…) 그리고 SQL문을 위한 XML문서를 맵핑하기 위한 XML서술자를 사용하는 매우 간단한 프레임워크를 제공한다.

다음은 생명주기에 대한 높은 레벨의 서술이다.


1) 파라미터(자바빈즈, Map 또는 원시래퍼)로써 객체를 제공한다. 파라미터 객체는 update문내에 입력값을 셋팅하기 위해 사용되거나 쿼리문의 where절을 셋팅하기 위해서 사용된다.

2) 맵핑된 statement을 실행한다. 이 단계는 마법이 일어나는곳이다. Data Mapper프레임워크는
PreparedStatement 인스턴스를 생성할것이고 제공된 파라미터객체를 사용해서 파라미터를 셋팅한다. 그리고 statement를 실행하고 ResultSet으로부터 결과 객체를 생성한다.

3) update의 경우에 영향을 미친 rows의 숫자를 반환한다. 조회문일경우에 한 개(single)의 객체 또는 컬렉션 객체를 반환한다. 파라미터처럼 결과 객체는 자바빈즈, Map 원시타입래퍼또는 XML이 될수 있다.
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by 홍반장

2010/12/21 11:58 2010/12/21 11:58
, , , , , , , ,
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/5748

http://ko.wikipedia.org/wiki/Log4j

Log4j


log4j는 자바기반 로깅 유틸리티이다. 디버그용 도구로 주로 사용되고 있다.


log4j의 최근 버전에 의하면 높은 등급에서 낮은 등급으로의 6개 로그 레벨을 가지고 있다. 설정 파일에 대상별(자바에서는 패키지)로 레벨을 지정이 가능하고 그 등급 이상의 로그만 저장하는 방식이다.

OFF
The OFF has the highest possible rank and is intended to turn off logging.
로깅 해제.

ALL
The ALL has the lowest possible rank and is intended to turn on all logging.
모든 로깅.

TRACE
The TRACE Level designates finer-grained informational events than the DEBUG
세밀

DEBUG
The DEBUG Level designates fine-grained informational events that are most useful to debug an application.
디버깅.

INFO
The INFO level designates informational messages that highlight the progress of the application at coarse-grained level.
강조 정보.

WARN
The WARN level designates potentially harmful situations.
경고.

ERROR
The ERROR level designates error events that might still allow the application to continue running.
오류.

FATAL
The FATAL level designates very severe error events that will presumably lead the application to abort.
심각한 오류.

ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF
오른쪽으로 갈수록 로그 출력이 위험 수위가 높은것만 출력 된다고 볼 수 있다.
=============================================================
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by 홍반장

2010/12/06 11:23 2010/12/06 11:23
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/5712

« Previous : 1 : ... 5 : 6 : 7 : 8 : 9 : 10 : 11 : 12 : 13 : ... 33 : Next »

블로그 이미지

- 홍반장

Archives

Recent Trackbacks

Calendar

«   2024/05   »
      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  
Statistics Graph

Site Stats

Total hits:
189314
Today:
114
Yesterday:
669