블로그 이미지
플로거
Android/J2EE/Web/통신/IBS/CRM/CS ..

calendar

        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  

Notice

2016.04.01 11:16 Programming/SPRING + X


https://projectlombok.org/


http://jnb.ociweb.com/jnb/jnbJan2010.html



Installation


java -jar lombok.jar

Screenshot of the Lombok Installer





<dependencies>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>0.9.2</version>
    </dependency>
</dependencies>
<repositories>
    <repository>
        <id>projectlombok.org</id>
        <url>http://projectlombok.org/mavenrepo</url>
    </repository>
</repositories>


Maven > Update Project..




@Data

The @Data annotation is likely the most frequently used annotation in the Project Lombok toolset. 
It combines the functionality of @ToString, @EqualsAndHashCode, @Getter and@Setter
Essentially, using @Data on a class is the same as annotating the class with a default @ToString and @EqualsAndHashCode as well as annotating each field with both @Getterand @Setter. Annotation a class with @Data also triggers Lombok's constructor generation. This adds a public constructor that takes any @NonNull or final fields as parameters. This provides everything needed for a Plain Old Java Object (POJO).



저작자 표시 비영리 변경 금지
신고

'Programming > SPRING + X' 카테고리의 다른 글

Project Lombok  (0) 2016.04.01
posted by 훈즈 플로거
2013.05.03 11:33 Programming/Mysql

MySql 에서 현재시각을 위한 함수 sysdate() 와 now()


두 함수 모두 현재시각을 반환하지만, 몇가지 차이가 있음.


하나의 SQL 문에서 여러번 now()가 사용된 경우, now() 는 동일한 결과를 반환, 

sysdate()는 동일 SQL 문 내에서도 호출되는 시점에 따라 결과값이 달라짐.


example> select now(), sysdate(), sleep(5), now(), sysdate();


result>

 now()  sysdate()  sleep(5)  now()  sysdate()
 2013-05-03 오전 11:18:31  2013-05-03 오전 11:18:31

 0

 2013-05-03 오전 11:18:31  2013-05-03 오전 11:18:36


sleep(5)를 통해 중간에 5초동안 대기 시킴.


위 결과에서 보듯이, 첫번째 now() 두번째 now() 는 동일한 시간을 보여주지만,

첫번째 sysdate()와 두번째 sysdate()는 sleep(5) 시간만큼의 차이를 보여줌.


[sysdate() 사용시 발생할 수 있는 문제점]

1. 다중 Database  Master/Slave  형태의  Database 구성시 Master 와 Slave간의 시간이 다르게 되는 상황이 발생할 수 있음.

2. sysdate() 컬럼 비교시  index가 효율적으로 사용되지 못하고 Full Table Scan 이 실행된다.


[solution]

sysdate() 대신 now()를 사용하거나, mysql 설정에서  -sysdate-is-now 옵션을 설정하여 sysdate()와 now() 함수를 동일하게 적용할 수 있다.


참조 http://blog.hibrainapps.net/122



저작자 표시 비영리 변경 금지
신고

'Programming > Mysql' 카테고리의 다른 글

MySql 에서의 현재시각 sysdate vs now  (0) 2013.05.03
posted by 훈즈 플로거
2013.05.03 10:30 Programming/Oralce


오라클 문자열 split 하기

 

SELECT SUBSTR ('홍길동#과장#IT'

             (SELECT INSTR ('홍길동#과장#IT', '#') FROM   DUAL) + 1,   

             (SELECT INSTR ('홍길동#과장#IT', '#', 1, 2) FROM  DUAL) 

            - ((SELECT INSTR ('홍길동#과장#IT', '#', 1, 1) FROM   DUAL) + 1)

            ) AS RESULT

FROM   DUAL

저작자 표시 비영리 변경 금지
신고

'Programming > Oralce' 카테고리의 다른 글

오라클 문자열 split 하기  (0) 2013.05.03
오라클 문자열 split 하기  (0) 2010.12.22
posted by 훈즈 플로거
2010.12.27 18:57 Programming/JQuery
jQuery 와 관련하여

Jesse Skinner 가 쓴 좋은 정보를 발견하였다.

아래는 IBM 에서 제공하는 번역본이다.

jQuery 를 공부하는데 도움이 되길 바란다.

http://www.ibm.com/developerworks/kr/library/x-ajaxjquery.html

저작자 표시 비영리 변경 금지
신고

'Programming > JQuery' 카테고리의 다른 글

jQuery II  (0) 2010.12.27
jQuery 시작하기 | by Hoon  (0) 2010.12.23
posted by 훈즈 플로거
2010.12.26 10:31 Programming/Html 5

 

HTML 5 에 대한 Web Standards Korea 의 실전 가이드를 공유한다.


HTML 5 에 대한 전반적인 이해와 HTML 5를 활용한 웹프로그래밍에 도움이 될 수 있을 것이다.


첨부된 파일의 저작권은 Creative Commons 기반으로 하고 있으며, 


한국 웹 표준 커뮤니티의 윤석찬, 신현석, 정찬명, 경준호, 권정혁





웹 에서 보기
저작자 표시 비영리 변경 금지
신고

'Programming > Html 5' 카테고리의 다른 글

실전 HTML 5 가이드 - Web Standards Korea  (0) 2010.12.26
posted by 훈즈 플로거
2010.12.23 19:03 Programming/JQuery

요즘, jQuery 라는 놈이 웹 Front 단을 주름 잡고 있다.

어떤 녀석이 자세히 한번 알아보도록 하자.

1. jQuery 란

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.

jQuery 는 자바스크립트 라이브러리의 새로운 한 종류란 것이다.

jQuery 는 빠른 웹 개발을 위해서, HTML 문서 traversing, event 처리, 애니매이팅, Ajax 상호작용을 쉽게 해주는 빠르고 간결한 JavaScript Library 이다. jQuery 는 당신이 JavaScript 를 쓰는 방법을 바꾸기 위해서 설계되었다.


WHO'S USING JQUERY?

누가 쓰냐고?

구글, 델,

Bank of America - 얘는 흔히 BoA 라고 불리는 미국 은행인데 여기도 등장하는군 ..

MLB - 우리가 잘 아는 Major Legue Baseball 이다.

digg - SNS 관련 서비스 사이트

NBC, CBS - 얘네들은 다 방송국

mozilla, 등등 유명한 놈들이 많이들 쓰고 있다.

국내에서도 전자정부 프레임워크를 비롯해 점점 많은 수의 프로젝트에 적용되고 있다.

어떻게 공부를 시작하면 좋을까?

먼저 드는 생각은 강좌나 동영상을 통해, 전체적으로 이해를 한번 해 보는 것이다.

샘픎이나 튜토리얼은


http://docs.jquery.com/Tutorials

에 영문이기 하지만 잘 나와있다.


Tutorials:Getting Started with jQuery

http://docs.jquery.com/Tutorials:Getting_Started_with_jQuery

요놈을 따라하다 보면 개발은 할 수 있을 것 같다.

그렇치만 유투브에 찾아보니, 밑에 녀석이 있다. 정확한 출처나 원 사이트를 몰라서 유투드에 올린 사람
아이디로 출처를 밝힌다.  출처 - detachedDesigns on 유투브

아무쪼록 나를 비롯한 jQuery 초짜에게 도움이 될 것을 희망해 본다.


 


실전 JQUERY 쿡북
국내도서>컴퓨터/인터넷
저자 : jQuery 코어 커뮤니티 / 김경균,최지훈역
출판 : 비제이퍼블릭 2010.06.24
상세보기




저작자 표시 비영리 변경 금지
신고

'Programming > JQuery' 카테고리의 다른 글

jQuery II  (0) 2010.12.27
jQuery 시작하기 | by Hoon  (0) 2010.12.23
posted by 훈즈 플로거
2010.12.23 14:40 Programming/Velocity


[Sample.vm]

 

<html>

<body>

#set($message = "Hello World! 하이")

$message<br>

Velocity Version: $version<br>

$date

</body>
</html>



 

[Welcome.vm]

 <html>
   <head>
    <title>Welcome</title>
    <BASE href="$link.baseRef">
    </head>
    <body bgcolor="#ffffff">
    #if ($logonActionForm)
    <H3>Welcome $logonActionForm.username!</H3>
    #else
    <H3>Welcome World!</H3>
    #end
    $!errors.msgs()
  </body>
</html>

[Logon.vm]

 <HTML>
<HEAD>
 <TITLE>Sign in, Please!</TITLE>
 <script language="javascript" src="validate.js"></script>
 </HEAD>
<BODY>
  테스트 중
  $!errors.msgs()
<FORM name="logonForm" method="POST" action="$link.setAction('/logonAction')"
 onsubmit="return validate(this);">
 <TABLE border="0" width="100%">
 <TR>
  <TH align="right">Username:</TH>
  <TD align="left"><INPUT type="text" name="username" dispName="username" notNull
   value="$!logonForm.username"></TD>
 </TR>
 <TR>
  <TH align="right">Password:</TH>
  <TD align="left"><INPUT type="password" name="password" dispName="password"
   notNull value="$!logonForm.password"></TD>
  </TR>
<TR>
<TD align="right"><INPUT type="submit" value="Submit" name="submit"></TD>
<TD align="left"><INPUT type="submit" value="reset" value="Reset" name="reset"></TD>
</TR>
</TABLE>
</BODY>
</HTML>

[struts-config.xml]


 <form-beans>
     <form-bean name="logonForm" type="com.jumyung.sample.form.LogonActionForm" />
  </form-beans>
  <action-mappings>
    <action input="/Logon.vm" name="logonForm" path="/logonAction" scope="session"
 type="com.jumyung.sample.action.LogonAction" validate="true" > 
      <forward name="success" path="/Welcome.vm"/>
    </action>     
  </action-mappings>


[결과]




2010/12/23 - [JAVA/Velocity] - Velocity 개요, 실행원리
2010/12/23 - [JAVA/Velocity] - Velocity II - Development Configuration

Professional Struts Applications: Building Web Sites with Struts, Object Relational Bridge, Lucene, and Velocity
외국도서
저자 : John Carnell
출판 : Wrox 2003.01.01
상세보기


저작자 표시 비영리 변경 금지
신고
posted by 훈즈 플로거
2010.12.23 14:15 Programming/Velocity

1.     Development Configuration

1.   http://jakarta.apache.org/site/downloads/downloads_velocity.html 에서 Engine

Tools 다운 받는다. velocity-1.4.tar.gz, velocity-tools-1.1.tar.gz

2.   각각의 압축을 풀면 velocity-1.4.jar, velocity-dep-1.4.jar, velocity-tools-1.1.jar,

velocity-tools-generic-1.1.jar, velocity-tools-view-1.1.jar 얻을 있다. 이것들을

개발 어플리케이션의 WEB-INF/lib폴더에 추가한다.

3.   web.xml VelocityViewServlet 배치한다.

[web.xml]

 <?xml …. ?>
<web-app …>
…중략…
<servlet>
<servlet-name>velocity</servlet-name>
<servlet-class>
org.apache.velocity.tools.view.servlet.VelocityViewServlet
</servlet-class>
<init-param>
<param-name>org.apache.velocity.toolbox</param-name>
<param-value>/WEB-INF/velocity-toolbox.xml</param-value>
 </init-param>
<init-param>
<param-name>org.apache.velocity.properties</param-name>
<param-value>/WEB-INF/velocity. properties </param-value>
 </init-param>
 <load-on-startup>10</load-on-strartup>
 </servlet>
 …중략…
 <servlet-mapping>
 <servlet-name>velocity</servlet-name>
 <url-pattern>*.vm</url-pattern>
 </servlet-mapping>
…중략…
</web-app>


 

4.      velocity 설정파일

[velocity.properties]

#runtime.log=velocity.log

#runtime.log.logsystem.class=org.apache.velocity.runtime.log.AvalonLogSystem

input.encoding=EUC_KR

output.encoding=EUC_KR

 

5.      Velocity 도구함 설정 파일의 준비

[velocity-toolbox.xml]

<?xml version=”1.0”?>

<toolbox>

<data type=”number”>

<key>version</key>

<value>1.1</value>

</data>

<tool>

<key>date</key>

<scope>application</scope>

<class>org.apache.velocity.tools.generic.DataTool</class>

 </tool>

 </toolbox>

 

 

위의 샘픔은, 수치형의 프라이머티브형 버전과 날짜 도구 DataTool 오브젝트 date 등록하고 있다. 이것은 vm 템플릿중에 $version $date등으로 접근 가능하다.

 

Velocity-toolbox.xml 에서 있는 요소와 설명을 아래의 표로 정리 했다.

 

요소       부모요소       설명

<toolbox>   -            문서 루트

<data>     <toolbox>    수치/ 거짓 /문자열등의 데이터등록, type속성에

                        Number/Boolean/string 하나를 등록

<tool>     <toolbox>     오브젝트 등록

<key>     <data>,<tool> 템플릿트 참조를 위한 변수명

<value>    <data>    데이터

<class>    <tool>    오브젝트 클래스

<scope>   <tool>    오브젝트의 생존기간, application / session / request중에서 지정

 

  2010/12/23 - [JAVA/Velocity] - Velocity 개요, 실행원리
 
 2010/12/23 - [JAVA/Velocity] - velocity III - Samples

  

Professional Struts Applications: Building Web Sites with Struts, Object Relational Bridge, Lucene, and Velocity
외국도서
저자 : John Carnell
출판 : Wrox 2003.01.01
상세보기
 

저작자 표시 비영리 변경 금지
신고
posted by 훈즈 플로거
2010.12.23 14:08 Programming/Velocity

 


1.      Velocity 개요

Struts프레임워크를 도입하는 이점중의 하나는 web application의 Presentation부분(JSP등)과 Controller 부분(Action클래스)의 결합이 느슨해지는 것이 있다. 그래서 Presentation부분도 Controller 부분도 서로 의존하지 않고, 독립된 Controller 로서 각각 구현할 수 있다. 이에 따라 , 시스템의 다른 부분을 건들이지 않고, Presentation부분만을 통째로 바꿔 넣는 것이 가능하다.

실 예로, Struts의 Presentation부분을 구현하기에는, JSP를 사용하는 것이 일반적이지만, 그것 외의 기술을 이용하는 것도 가능하다. 여기서는 JSP를 대체해 꽤 사용되는 Apache Jakarta의 Template엔진인 Velocity를 사용하는 것을 소개하겠다.

 Velocity는, 자바베이스의 범용 Template엔진이다.

Template엔진이라는 것은  우선 만들어 놓은 Template에, 실행 시 Parameter에 값을 던져주고, data를 생성해주는 컴포넌트이다. 용도는 HTML에 한정되지 않고, XML이나
CSV, TEXT등의 여러 가지 DATA형식을 생성에 사용할 수 있다.

 Velocity를 채용하는 이점으로는, 간단하게 배우기 쉬운 Template기술언어VTL(Velocity Template Language)에 따라서, 간단히 동적 페이지를 만들 수 있다는 것이다. 개발환경에 Eclipse를 쓴다면, Velocity plug-in을 사용해서, 템플릿의 아웃라인표시나 입력보완을 할 수 있기 때문에 편리하다.


2.     JSP  vs  Velocity

1.      Velocity 가볍고, 빠르고 융통성이 있다.

JSP 보다 코드의 양이 줄어든다.

랜더링 속도가 빠르다.

Template 으로부터  SQL, PostScript, e-mail, XML 등을 쉽게 생성할 있다.

2.      Velocity 다른 것과 연동하기 쉽다.

3.      Velocity 간단하면서도 강력하다.



3.     Velocity 실행 원리

최초에 was 실행 되면 server.xml(was 마다 이름은 조금씩 다를 있다.) 먼저 실행한다. 그런 다음. server.xml 설정되어 있는 Context 대한 실행을 하는데(webapps 폴더 아래에 있는 경우는 자동으로 실행된다.),

Context(하나의 web application) 놓고 봤을 , 먼저 WEB-INF/web.xml 읽어들인다. Struts 여기에 ActionServlet WEB-INF/struts-config.xml , taglib 등을 설정한다.

Velocity 역시 마찬가치다.  여기에 struts ActionServlet 대신

org.apache.velocity.tools.view.servlet.VelocityViewServlet , struts-config.xml 대신 velocity-toolbox.xml, velocity.properties 설정해서 전체 어플리케이션에 적용 되도록 한다.

Velocity 서블릿에서 컨텍스트를 받아들일 때 JSP태그와 동일한 scope전략을 이용한다. , request scope를 가장 먼저 검사하고, session scope를 검사한 다음, 마지막으로  application scope를 검사한다.

엔진은 템플릿을 랜더링할 때 Velocity 문장과 레퍼런스를 검색한다. Velocity 문장은 # 기호와 라인의 앞부분에 나오는 키워드로 구분한다. 레퍼런스는 컨텍스트에 있는 변수에 해당한다. 레퍼런스는 $기호와 그 다음에 나오는 레퍼런스 이름으로 구분한다. 어떠한 자바객체도 이러한 Context에 올 수 있으며, 레퍼런스로 사용될 수 있다. 레퍼런스는 자바 클래스에 정의된 모든 public 메소드에 접근할 수 있다.

 

[taglib]

<request:isUserInRole role=”contirbutor”>

  <%-- … -%>

</request:isUserInRole>

[velocity]

 #if $request.isUserInRole(“contributor”)

    # ...

 #endif

 

 <p>Username: $(session.getAttribute(“username”))</p>

 <p>Username: $!user.username</p>

 

[struts-config.xml]

<forward name=”continue” path=”/page/Logon.jsp”/>

=> <forward name=”continue” path=”/page/Logon.vm”/>




2010/12/23 - [JAVA/Velocity] - Velocity II - Development Configuration
2010/12/23 - [JAVA/Velocity] - velocity III - Samples

Professional Struts Applications: Building Web Sites with Struts, Object Relational Bridge, Lucene, and Velocity
외국도서
저자 : John Carnell
출판 : Wrox 2003.01.01
상세보기



저작자 표시 비영리 변경 금지
신고
posted by 훈즈 플로거
2010.12.23 13:21 Programming/JSON
object
{}
{ members }
members
pair
pair , members
pair
string : value
array
[]
[ elements ]
elements
value
value , elements
value
string
number
object
array
true
false
null

string
""
" chars "
chars
char
char chars
char
any-Unicode-character-
    except-
"-or-\-or-
    control-character
\"
\\
\/
\b
\f
\n
\r
\t
\u four-hex-digits
number
int
int frac
int exp
int frac exp
int
digit
digit1-9 digits
- digit
- digit1-9 digits
frac
. digits
exp
e digits
digits
digit
digit digits
e
e
e+
e-
E
E+
E-

저작자 표시 비영리 변경 금지
신고

'Programming > JSON' 카테고리의 다른 글

JSon 문법 - 출처 : json.org  (0) 2010.12.23
JSON Example II - 출처 : json.org  (0) 2010.12.23
JSON Example I - 출처 : json.org  (0) 2010.12.23
Introducing JSON - 원문 json.org  (0) 2010.12.23
posted by 훈즈 플로거
prev 1 2 next

티스토리 툴바