달력

72025  이전 다음

  • 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


java.net 에서 투표중인 것으로 보입니다. 아직 732명 밖에 하지 않아서 결과 자체에 큰 의미를 두는 것은 무리일듯 합니다. 제가 볼때는 3가지로 요약이 될듯 하기는 합니다. JavaFX, Java7 에서 클로저를 포함하지 않는것, 그리고 동적 언어 지원 그외 댓글을 보면 OSGI에 대한 언급도 있긴 합니다만 아직은 얼리어댑터에 가까운 기술이 아닌가 생각합니다.

개인적으로 2008년에는 신기술 습득에는 별로 시간을 할애하지 않아 그런가 보다.. 라는 생각밖에 안 드네요.
제가 2009년에 계획중인 것을 정리한 말들입니다.

소통
다시보기
제대로알기
다양한 경험과 많은 자료 만들기
정리

'일상' 카테고리의 다른 글

[팁] Live USB Creator  (0) 2009.01.30
[생각] 시각과 시간  (2) 2009.01.16
[일상] Windows 7 베타  (0) 2009.01.10
[일상] 갑작스럽게 증가한 블로그 방문 횟수  (2) 2009.01.09
[일상] 위키 업타임  (0) 2009.01.05
Posted by fromm0
|
앞서 "[생각] 자바는 참 어려운 언어.." 라는 글에도 봤지만 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
|

[일상] Windows 7 베타

일상 2009. 1. 10. 22:37
많은 이슈가 되고 있는 Windows 7 베타를 설치해봤습니다.

1. 제품키를 먼저 받아야 겠죠.. 


2. 설치 자체는 노트북을 밀지 않고 VirtualBox 를 사용했습니다. 덕분에(?) 설치시간이 많이 들었네요.
아래 화면은 설치의 첫 화면입니다. 언어를 선택하는 것이죠. 문제없이 한글을 선택했습니다.




3. 가장 중요한 라이센스 알림입니다. 다 읽어보지는 않았는데 짐작은 갑니다. 정해진 기간내에서만 사용가능하고 개인적인 테스트 목적 그리고 그외 마이크로소프트가 제시하는 라이센스 관련 부분에 대해 알고 있고 그렇게 따르겠다는 것을 확인받는 것입니다.


4. 업그레드냐 설치냐의 차이인데 앞서 언급한 것처럼 VirtualBox를 통한 신규설치라 Custom을 선택했습니다.


5. 디스트 설정화면이죠.


6. 설치를 위해 파일을 복사하기 시작했습니다.


7. 설치완료 후 시스템 부팅시 나오는 윈도우즈 마크입니다.

8. 비스타와 크게 다를바 없는 로그인 화면입니다.


9. 설치 후 화면입니다. 노트북에 512MB만 할당하고 부팅했는데 그다지 무겁다는 생각이 들지는 않습니다. 하긴 추가로 설치한 애플리케이션은 AVC 안티바이러스 free 밖에 없기는 합니다만 그리고 제가 개인적으로 비스타를 사용해보지 않아 "무겁다" 의 기준으로는 딱히 드릴말이 없네요.


올해 정식버전이 릴리즈 될 것으로 보이는데 경제적인 가격으로 판매가 되었으면 합니다. 유독 국내에서 비싸게 팔기도 하는데 중국만큼은 아니더라도 좀 구매할수 있는 수준의 가격정책이 나오길 바랍니다.

Posted by fromm0
|
제 블로그가 들르는 사람이 사실 많지 않습니다. 보통 하루에 많으면 100명 정도라고 할까요..??
그런데 어제 갑자기 카운트가 증가했습니다.



평소의 3배나 되는 수치입니다.
티스토리의 유입경로 정보를 살펴봤는데 다음과 같습니다.



음 주로 메일이네요. 메일.???
제 메일함을 뒤졌습니다. 보니까 어제 받은 "1월 첫번째 썬 개발자 뉴스레터" 메일에 제 블로그 링크가 3개나 있습니다.



원래 방문 카운트에 대해 신경을 쓰지 않는 편인데, 카운트가 늘어나니까. 왠지 티스토리 서버가 걱정되는군요. ^^

'일상' 카테고리의 다른 글

[java] 외국 자바개발자가 본 2008년의 가장 중요한 뉴스  (0) 2009.01.11
[일상] Windows 7 베타  (0) 2009.01.10
[일상] 위키 업타임  (0) 2009.01.05
[일상] 밥 멘토 지원  (2) 2008.12.23
[일상] 서버 이전 완료  (2) 2008.12.15
Posted by fromm0
|
webwork를 사용중입니다.
프로젝트 특성상 웹애플리케이션의 가장 상위 경로를 동적으로 가져와야 합니다.
잘 해보지 않아서 또는 API를 주의깊게 보지 않아서 어떻게 가져오지..? 를 다른 팀원과 함께 찾아봤습니다.

ServletActionContext.getServletContext().getRealPath("");

방법은 의외로 간단합니다.
메모입니다. ^^
Posted by fromm0
|

[일상] 위키 업타임

일상 2009. 1. 5. 23:01
예전에 지원을 받지 않는 상태에서 위키를 운영할 경우 하루에 한번씩 사이트가 죽었습니다.
자료는 소중하고 사이트는 자주 죽어서 걱정이 좀 많아서 최근에 NHN의 지원을 받아 운영하고 있죠.
그다지 신경을 쓰지 않고 살았는데 보니 이제는 안정적으로 돌아서인지 무리없이 잘 돌고 있습니다.

시스템 정보 페이지인 http://openframework.or.kr/Wiki.jsp?page=SystemInfo 를 접속해보시면 업타임 정보가 나옵니다. 7일 동안 아무런(?) 문제없이 잘돌고 있다는 것을 알수 있습니다.



여담으로 현재 위키에서 제공하는 컨텐츠가 579개임을 알수 있습니다. 물론 그 자료들간의 질적 차이가 있을수 있지만 10%만이라도 정말 유용한 자료라면 60여개 정도는 참 좋은 자료가 되겠죠. ??
이번에 알게된건 자료의 양도 영향이 있겠지만 제가 운영하는 위키가 안정적으로 돌려면 적어도 300MB정도의 메모리가 필요한 것으로 보입니다.

'일상' 카테고리의 다른 글

[일상] Windows 7 베타  (0) 2009.01.10
[일상] 갑작스럽게 증가한 블로그 방문 횟수  (2) 2009.01.09
[일상] 밥 멘토 지원  (2) 2008.12.23
[일상] 서버 이전 완료  (2) 2008.12.15
[생각] 밥 멘토..!!!  (4) 2008.12.13
Posted by fromm0
|
최근 서버 호스팅을  옮기고 이런 저런 셋팅을 변경하면서 과거 웹호스팅시 서버가 자주 죽던 현상이 도대체 왜 발생한 것인지가 궁금해서 Jennifer를 설치해봤습니다.
제가 가기고 있는 JProfiler 를 돌려도 되지만 아무래도 오랜시간을 모니터링을 해야 하는 터라 프로파일러는 적합하지 않다고 생각을 했습니다.

설치하기

설치는 비교적 간단했습니다.
제가 운영하는 서버가 JDK 1.6, tomcat 6.0을 사용하고 32bit 라는 것만 알고 있다면 설정상에서 어려움은 없었습니다. 단 -64d 옵션이 처음에 뭔가 하다가 64bit를 나타낸다는 것을 알았는데 처음 사용자의 경우 그 부분에 대한 배려가 별로 없었던게 아닌가 하는 생각이 아주 잠깐(?) 들었습니다.


지원하는 was종류입니다. 국내제품이라서 그런지 외사 제품이 지원하지 않는 JEUS가 있습니다.
jprofiler를 만들어내는 ej-technologies사에 JEUS지원해달라고 요청한 뒤 아무런 답변이 없는 것에 비하면 국내에서는 이것만 해도 굉장히 큰 장점이 되리라 생각됩니다.


64비트에 해당되는 -d64 옵션을 사용할 것인지에 대한 부분입니다. 처음 설치시 "y" 로 선택해서 했는데 잘 통과되더니 실제 사용시 맞지 않다는 오류가 함께 에러가 발생했습니다. 개인적으로 보완이 필요하지 않나 생각됩니다.
추후 다시 설정해서 32비트로 사용하기 위해 "n" 를 선택하니 별다른 문제가 없습니다.


사용할 에이전트 이름을 물어봅니다. 그냥 w11이라고 사용했습니다.


설정된 환경값입니다. 확인차 보여주는 거라.. ^^

어드민 화면

# 로그인 화면

기본 계정이 admin/admin 이기 때문에 로그인만 하면 됩니다.

# 대시보드

제니퍼에 접속시 가장 처음 보게 되는 대시보드입니다.
제니퍼가 제공하는 모니터링 기능의 대부분을 한 화면에서 제공하는데 아무래도 제가 업무용으로 사용하는 24인치 와이드 모니터 정도는 되어야 전체를 한번에 볼수 있습니다. 그냥 이 화면만 봐도 서버 상태를 파악할 수 있습니다.

# 메뉴정보

메뉴별로 다시 하위메뉴로 다시 분류되는 부분도 있습니다. 메뉴나 화면들이 무엇을 나타내는지는 쉽게 파악이 되지만 정식으로 라이센스를 구매한 사용자라면 간단한 교육을 받아주는게 좋을듯 합니다.

# 서비스 처리 정보

제가 운영하는 위키가 레퍼런스와 같은 정적 컨텐츠는 tomcat을 거치지 않기 때문에 잡히지 않기도 하고 사용자가 적은 시간대를 선택해서 인지 거의 변화가 없습니다.

# 자바 힙 정보

제가 이번에 제니퍼를 적용해서 모니터링 하고자 하는 실제 값입니다. 자바 힙의 사용정보..단순 이미지가 보여드릴수 없지만 계속 늘쑥날쑥 합니다.

# X-View


제니터의 가장 중요한 기능중 하나인 X-View로 알고 있습니다. 음 역시 접속자가 많은 서비스도 시간대도 아니다 보니.. 한적합니다.

# 실시간 업무처리량

실시간을 모니터링하는 항목에서 업무처리량에 관련된 값들입니다. 요청율, 응답시간, 호출횟수, 방문자 수등을 제공합니다.

# 실시간 사용자

실시간 사용자 정보입니다. 서비스 개수, 호출횟수, 방문자 수 등 앞서 본 실시간 업무처리량에서 본 데이터와 일부 중복되는 데이터도 있습니다.

# 실시간 메모리

제가 가장 중요하게 보고 있는 실시간 메모리 정보입니다. 그래프가 그다지 맘에 들지 않는데요. ^^

# 설정창


화면 우측 상단의 메모리 정보 같은 부분을 클릭하면 설정메뉴가 뜹니다. 설정이 가능한 부분은 언어설정과 스타일(white, black) 그외 보이는 정도입니다.

에러

# AWT의 NullPointerException


저의 경우 간혹 발생하고 있습니다. 로그인을 정상적으로 해도 발생하고 빈번하지는 않습니다만 간혹 발생하는게 사실입니다. 위는 에러창인데 실제 화면에서는 "오류" 라고 표기되면서 화면이 뜨지 않습니다.
사용하는 JDK가 1.6.0_10 입니다.

# 웹브라우저가 죽는 현상
이 에러도 간혹 발생하는데 웹브라우저가 간혹 죽습니다. 처음에는 다른게 원인이라고 생각했으나 웹브라우저를 띄우고 제니퍼 어드민에 접속한 후 그대로 놔두면 죽어 있습니다. 초기 접속시 메모리 어쩌고 했던 알림창이 기억나는데 그거 때문인가 하는 생각을 하고 있습니다.


내용은 살펴보면서 더 추가될 껍니다. ^^



'성능' 카테고리의 다른 글

[성능] JProfiler 사용법 정리  (0) 2013.02.19
[성능] VisualVM 플러그인 이야기  (0) 2009.01.18
[성능] VisualVM  (2) 2009.01.18
[일상] java.lang.management 아래 관리 인터페이스  (3) 2008.12.27
[리뷰] 프로파일러 비교  (0) 2008.08.03
Posted by fromm0
|
JDK 1.5 이후 java.lang.management아래에는 관리 인터페이스로 많은 MXBean을 제공합니다.
제가 알고 있는 오픈소스 모니터링및 관리툴인 Lambda Probe 에 비하면 많은 부분 작업을 더해야 겠지만 기본적인 기능만으로도 간단한 모니터링이 가능합니다.

JMX나 다른 기타 기능을 통해 통합 모니터링 시스템을 만들수 있으리라는 짐작을 하게 합니다.
시간을 내어 간단히 인터페이스 기능만을 사용해 웹 페이지를 꾸며봤습니다.
http://monitor.openframework.or.kr/index.jsp

좀 지속적으로 해보고자 구글에는 프로젝트로 등록했구요. ^^
http://code.google.com/p/monitoring-application/

아직 구문번역은 대충 해놓은 상태입니다. 오역이나 의견이 있으시면 바로 알려주셔도 됩니다.. 그럼 감사하죠..^^


# GC정보보기


# 메모리 정보보기


# 런타임 정보보기


# 쓰레드 정보보기


메모리 사용에 대해 어떤 경계점을 지날 경우 자동알림도 가능하겠네요. 물론 코딩이 좀 들어가야 겠지만
http://java.sun.com/j2se/1.5.0/docs/api/java/lang/management/MemoryNotificationInfo.html

아무튼 이미 이런 기능이 JDK 1.5에도 많이 추가되어 있는데 사용하는 건 극히 일부라는걸 항상 느끼게 됩니다.


'성능' 카테고리의 다른 글

[성능] JProfiler 사용법 정리  (0) 2013.02.19
[성능] VisualVM 플러그인 이야기  (0) 2009.01.18
[성능] VisualVM  (2) 2009.01.18
[일상][작성중] Jennifer 4.0 사용기  (0) 2008.12.30
[리뷰] 프로파일러 비교  (0) 2008.08.03
Posted by fromm0
|

업무상 프로젝트 간의 의존성이 있을 경우 다른 SVN에 등록된 프로젝트의 소스를 가져와서 사용해야할 필요가 있었는데, Ant로 SVN작업을 처리하는 방법이 있네요.

먼저 svnant가 필요합니다. svnant는 subclipse 프로젝트에서 제공하고 있습니다. 다운로드는 다음 URL에서 하시면 됩니다.
http://subclipse.tigris.org/svnant.html

# build.properties파일
# -----------------------------------------------------------------------------
# build.properties
# 이 파일은 svnant에서 제공하는 기본 build.xml 파일을 참고해서 다시 만든것입니다.
# -----------------------------------------------------------------------------
svnant.version=1.2.1

# -----------------------------------------------------------------------------
# 필요한 모든 jar파일
# -----------------------------------------------------------------------------
lib.dir=lib

####실제로 필요한 SVN 프로퍼티들 ####
svn.repository.url=https://ksug.googlecode.com/svn/trunk/
svn.project.base.path=SpringReference
svn.username=fromm0
svn.password=1111
# 태그명, 빌드전에 반드시 수정되어야 하는 값
# export하기 위해 사용됨
tag.name=SOME_TAG_NAME_12222008
# 새로운 브랜치명
# 브랜치를 새롭게 생성할 때만 사용됨
new.branch.name=NEW_BRANCH_12222008
####실제로 필요한 SVN 프로퍼티들 ####

# build.xml파일
<?xml version="1.0"?>
<!-- Sample build file used to retrieve svnant's sources -->
<project name="svnant" basedir="." default="checkoutLatest">

    <!--  all properties are in build.properties -->
    <property file="build.properties" />

    <!-- SVN and SVN-ANT Tasks properties -->
    <property name="svn.repository.url" value="${svn.repository.url}" />
    <property name="svn.project.base.path" value="${svn.project.base.path}" />
    <property name="svn.base.url" value="${svn.repository.url}/${svn.project.base.path}" />
    <property name="svnant.javahl" value="false" />
    <property name="svnant.svnkit" value="true" />
    <!-- SVN and SVN-ANT Tasks properties -->


    <!-- path to the svnant libraries. Usually they will be located in ANT_HOME/lib -->
    <path id="svnant.classpath">
        <fileset dir="${lib.dir}">
            <include name="**/*.jar" />
        </fileset>
    </path>

    <!-- load the svn task -->
    <typedef resource="org/tigris/subversion/svnant/svnantlib.xml" classpathref="svnant.classpath" />

    <target name="clean">
        <delete dir="src_latest" />
    </target>

    <target name="checkoutLatest">
        <svn username="${svn.username}" password="${svn.password}">
            <checkout url="${svn.base.url}" revision="HEAD" destPath="src_latest" />
        </svn>
    </target>

    <!-- *************************************************************** -->
    <!-- tool-availability: Determine if SVN-ANT is available.           -->
    <!-- *************************************************************** -->
    <target name="tool-availability">
        <available resource="org/tigris/subversion/svnant/svnantlib.xml" classpathref="svnant.classpath" property="available.svnant" />
        <echo message="SVN-ANT is available = ${available.svnant}" />
    </target>


    <!-- **************************************************************** -->
    <!-- does-svnant-exist: depends on tool-availablility and     -->
    <!--                    displays error message                                   -->
    <!-- ***************************************************************** -->
    <target name="does-svnant-exist" depends="tool-availability">
        <fail unless="available.svnant">
      SVN-ANT is not available, cannot perform tagging or checkout/export svn ant task.
     </fail>
    </target>


    <!-- ****************************************************************** -->
    <!-- svntag: performs tagging using properties from                              -->
    <!--         build.properties and uses SVNANT tasks                              -->
    <!-- ******************************************************************* -->
    <target name="svntag" description="tags individual project using svnant task">
        <property name="svn.tag.message" value="Tagging Project ${project.name} with tag name ${tag.name} from trunk " />
        <property name="src.url" value="${svn.base.url}/${project.name}/trunk/" />
        <property name="dest.url" value="${svn.base.url}/${project.name}/tags/${tag.name}" />

        <echo message="${svn.tag.message}" />
        <echo message="${src.url}" />
        <echo message="${dest.url}" />

        <svn javahl="${svnant.javahl}" svnkit="${svnant.svnkit}" username="${svn.username}" password="${svn.password}">
            <copy srcUrl="${src.url}" destUrl="${dest.url}" message="${svn.tag.message}" />
        </svn>
    </target>


    <!-- ****************************************************************** -->
    <!-- svnexport: performs export using properties from                            -->
    <!--            build.properties and uses SVNANT tasks                           -->
    <!-- ****************************************************************** -->
    <target name="svnexport" description="exports individual project using svnant task">
        <property name="svn.tag.message" value="Exporting Project ${project.name} with tag name ${tag.name}" />
        <property name="src.url" value="${svn.base.url}/${project.name}/tags/${tag.name}" />
        <property name="destPath" value="${dest.path}" />
        <echo message="${svn.tag.message}" />
        <svn javahl="${svnant.javahl}" svnkit="${svnant.svnkit}" username="${svn.username}" password="${svn.password}">
            <export srcUrl="${src.url}" destPath="${destPath}/${project.name}" />
        </svn>
    </target>

    <!-- ****************************************************************** -->
    <!-- svnbranch: creates a new branch using properties from                       -->
    <!--            build.properties and uses SVNANT tasks                           -->
    <!-- ****************************************************************** -->
    <target name="svnbranch" description="creates a new branch for individual project using svnant task">

        <property name="svn.branch.message" value="Creating new branch for
    Project ${project.name} with new branch name ${new.branch.name} from
    trunk" />
        <property name="src.url" value="${svn.base.url}/${project.name}/trunk/" />
        <property name="dest.url" value="${svn.base.url}/${project.name}/branches/${new.branch.name}" />

        <echo message="${svn.branch.message}" />
        <echo message="${src.url}" />
        <echo message="${dest.url}" />

        <svn javahl="${svnant.javahl}" svnkit="${svnant.svnkit}" username="${svn.username}" password="${svn.password}">
            <copy srcUrl="${src.url}" destUrl="${dest.url}" message="${svn.branch.message}" />
        </svn>
    </target>
</project>

현재 필요한 기능은 실제 최신 버전의 체크아웃이라 checkoutLatest만 해봤는데 잘됩니다. ^^
Posted by fromm0
|

[일상] 밥 멘토 지원

일상 2008. 12. 23. 11:10
오픈마루와 아이티투데이가 주최하는 WoC의 밥 멘토로 지원했습니다.


밥 멘토 신청서를 좀 늦게 보냈더니 꼴치로 등록되었나 봅니다. 14번째입니다.
관심 태그를 적어달라길래 위처럼 적어서 보냈는데 다른 분들 태그가 더 눈에 띄네요..

아무도 지원하지 않으면 어쩌죠..?? 걱정입니다.
사람 만나는건 좋아하는데 무슨 말을 해줘야 할지는 걱정입니다.

'일상' 카테고리의 다른 글

[일상] 갑작스럽게 증가한 블로그 방문 횟수  (2) 2009.01.09
[일상] 위키 업타임  (0) 2009.01.05
[일상] 서버 이전 완료  (2) 2008.12.15
[생각] 밥 멘토..!!!  (4) 2008.12.13
[일상] gugi.pe.kr 도메인  (0) 2008.12.12
Posted by fromm0
|