달력

52024  이전 다음

  • 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
앞서 "[생각] 자바는 참 어려운 언어.." 라는 글에도 봤지만 JVM위에 올라가는 언어들은 JDK가 기본적으로 제공하는 그리고 Java쪽의 관련 라이브러리들이 제공하는 기능을 좀더 사용하기 쉽게 래피하는 형태가 많습니다.
그 중 하나가 HTTPBuilder 입니다.

Apache의 HttpClient 를 한번 더 래핑했습니다. 그리고 Prototype.js의 Ajax.Request 개념을 사용했기 때문에 비동기 호출이 가능합니다.

import groovyx.net.http.*;
import static groovyx.net.http.ContentType.TEXT

def http = new HTTPBuilder('http://www.google.com')

http.get( path : '/search',
          contentType : TEXT,
          query : [q:'Groovy'] ) { resp, reader ->

  println "response status: ${resp.statusLine}"
  println 'Response data: -----'
  System.out << reader
  println '\n--------------------'
}

http://openframework.or.kr/Wiki.jsp?page=Using_Groovy_HTTPBuilder 에 간단히 정리해봤습니다.

'자바' 카테고리의 다른 글

[자바] 인코딩  (1) 2009.01.30
[eclipse] 2008년 정리  (1) 2009.01.16
[메모] 웹애플리케이션의 실제 경로 가져오기  (0) 2009.01.08
[Ant] Ant로 SVN 작업 처리하기  (0) 2008.12.26
[일상] 일요일 위키에 추가한 내용  (0) 2008.12.21
Posted by fromm0
|
토요일은 돌잔치를 가느라 공부를 못했고 오늘은 groovy를 좀 보고 있습니다. 자바외 다른 언어를 한번 해볼려고 Ruby로 손대보고 Python도 손대보고 했는데 제대로 손이 가는 놈은 하나도 없네요. 그나마 groovy는 좀 손이 더 가서 간혹 자료를 정리하곤 합니다. 업무에서 사용해야 제대로 공부가 될텐데.. 이건 사용할 기회가 없다보니 매번 이렇게 되네요. ^^

1. Groovy JDBC - Groovy를 이용한 JDBC프로그래밍
2. Grails Start - Grails 시작하기
3. Groovlet과 GSP - Groovlet과 GSP를 이용한 웹개발

오늘 추가한 내용은 위 3가지 입니다. 주로 보는 글은 Groovy홈페이지의 문서 페이지IBM developerWorks의 Groovy관련 글입니다.

참고할만한 사이트는 한국 Groovy & Grails 사용자 그룹 이 있습니다.
Posted by fromm0
|
제목이 좀 그렇긴 한데 정확하게 쓰자면 "groovy 로 작성한 코드를 java애플리케이션에서 사용하기" 가 될 것 같습니다. JVM위에서 돌아가는 많은 언어가 나왔습니다. 예를 들면 groovy, JRuby, Jython 등등 많죠. JVM에서 돌아가기때문에 즉 JVM이 그 각각의 코드를 알아볼수 있다면 당연히 java애플리케이션에서 사용할 수 있으리라는 짐작이 갑니다. 그래서 한번 해봤습니다. ^^

# groovy 코드(builder를 이용해서 XML생성)
package openframework.groovy

import groovy.xml.*
import java.io.*

class XMLBuilder{
    def getXML() {
        def writer = new StringWriter()
        def builder = new MarkupBuilder(writer)
        def friendnames = [ "Julie", "Joey", "Hannah"]

        builder.person() {
            name(first:"Megan", last:"Smith") {
                age("33")
                gender("female")
            }
            friends() {
                for (e in friendnames) { friend(e) }
            }
        }
        return writer.toString()
    }
}

groovyc 명령어를 통해 컴파일을 합니다. 그럼 당연히 openframework.groovy 패키지 아래 XMLBuilder.class라는 파일이 생성됩니다. 실제로는 아래처럼 다양한 클래스 파일이 생성됩니다.
무려 4개나 생성되네요. ^^

자바코드를 만들어봅니다.

# java 코드(groovy코드를 통해 xml을 생성)
package openframework;

import openframework.groovy.XMLBuilder;

public class Test {
    public static void main(String[] args) {
        XMLBuilder builder = new XMLBuilder();
        System.out.println(builder.getXML());
    }
}

# 결과물
<person>
  <name first='Megan' last='Smith'>
    <age>33</age>
    <gender>female</gender>
  </name>
  <friends>
    <friend>Julie</friend>
    <friend>Joey</friend>
    <friend>Hannah</friend>
  </friends>
</person>

순수 자바에 비하면 좀더 간단하게 기능을 구현할 수 있는 방법은 JVM위에 돌아가는 많은 스크립트 언어가 아닐까 하는 생각으로 테스트 해봤습니다. 단점도 있겠죠..?? 유지보수라고 할수도 있겠지만. 글쎄요.. ^^
다양한 생각을 해보고 싶어서 해본 테스트 결과였습니다.

'자바' 카테고리의 다른 글

[Ant] Ant로 SVN 작업 처리하기  (0) 2008.12.26
[일상] 일요일 위키에 추가한 내용  (0) 2008.12.21
[생각] 자바는 참 어려운 언어..  (17) 2008.12.21
[JDK] JDK 7의 변경사항  (4) 2008.12.20
[REST] jersey로 REST구현하기  (2) 2008.12.16
Posted by fromm0
|
자바라는 프로그램 언어로 6년가까이 돈을 벌고는 있지만 "자바"라는 언어가 참 어렵다는 생각은 간혹 합니다.
제가 최근에는 보고 있는 groovy와 비교해보면 왜 이렇게 어렵고 복잡하게 코딩을 해야 하는가 하는 생각이 자주 듭니다. groovy뿐 아니라 ruby, python과 같은 다른언어와 비교해봐도 참 어렵게 코딩을 해야 하는 구나. 하는 생각이 많이 들죠..

대표적인 경우가 jdbc코딩입니다. 아래 코드는 실제 같은 결과를 출력하는 코드입니다.

# Java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class Test {
    public static void main(String[] args) {
        Connection con = null;
        Statement stmt = null;
        ResultSet rs = null;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test", "fromm0", "1111");
            stmt = con.createStatement();
            rs = stmt.executeQuery("select * from test");
            while (rs.next()) {
                System.out.println(rs.getLong(1) + " " + rs.getString(2));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } finally {
            try {
                rs.close();
            } catch (Exception e) {
            }
            try {
                stmt.close();
            } catch (Exception e) {
            }
            try {
                con.close();
            } catch (Exception e) {
            }
        }
    }
}

# groovy
import groovy.sql.Sql
class GroovySqlExample1{
  static void main(args) {
    def sql = groovy.sql.Sql.newInstance("jdbc:mysql://127.0.0.1:3306/test", "fromm0", "1111", "com.mysql.jdbc.Driver")
    sql.eachRow("select * from test"){ println it.id + " " + it.name }
  }
}

혹시나 저랑 다르게 생각하시는 분이 있으신지..?? ^^

'자바' 카테고리의 다른 글

[일상] 일요일 위키에 추가한 내용  (0) 2008.12.21
[개발] Java와 Groovy 함께 사용하기  (0) 2008.12.21
[JDK] JDK 7의 변경사항  (4) 2008.12.20
[REST] jersey로 REST구현하기  (2) 2008.12.16
[eclipse] 시작시 에러  (4) 2008.11.23
Posted by fromm0
|
기존에 SI업무를 할때는 사실 스크립트 언어의 필요성을 별로 느끼지 못했습니다.
회사를 옮기고 나서 배치성 업무들이 많아 지면서 자연스럽게 스크립트 언어를 하나 정도를 봐둬야 할 필요성을 느끼게 되네요. 회사에서 가장 많이 사용되는건 역시 PHP인데, 자바랑 쉽게 사용할 만한 놈을 찾다보니 PHP는 제외가 되네요. 루비도 좋겠지만 groovy가 눈에 뜁니다.
스크립트 언어의 기능중에 주로 보는 기능은 파일처리, SQL처리, XML처리 정도입니다.


  1. 파일처리

  2. XML 읽어오기


  3. SQL처리

  4. Bean의 private 변수값 가져오기


  5. 3가지 모두 같은 값을 리턴합니다. private으로 선언되어 있더라도 book.title이 값을 가져오는 것을 보면 내부적으로 getTitle()와 같은 메소드를 자동으로 생성하는것 같네요.


재미있을듯 합니다.
Posted by fromm0
|