회사에서 MyBatis로 구현되어 있던 프로젝트를 새로 구축하면서 ORM을 써보기로 했다.

  리팩토링한다고 일정을 잡았는데, 내가 아는 리팩토링(기능에 크게 변형을 가하지 않으면서 코드 구조를 개선하는 작업이랑 정돈되지 않은 URL을 REST 형태로 잘 정돈)이랑 회사에서 이야기되는 리팩토링(기능개선하고 기능추가하고 구조를 바꾸고... 리모델링이잖아!!)이 서로 차이가 있었다.

  회사에서 4개월 정도 진행된 프로젝트를 새로이 구축하며 진행하기로 했다.

  설계당시에는 고려하지 못했던 변경사항들이 적용된 DB model 구조의 누더기같은 모습에

'ORM'으로 하면 이런 거 신경쓰는 일이 줄어들텐데...

DDD에 대한 환상을 가지고 있는지도 모른다. @_@) 

빠른 시간안에 결과물을 내놓는 개발방식으로 채용해도 나쁘지 않다는 경험을 가지고 있다.

  MyBatis로 Mapping Class와 DB 테이블들의 구성을 맞추는 작업이 귀찮아졌다... Orz... 내가 한 것도 아닌데...

  예전에(2년 전?) 몇달 정도 사용해봤던게 전부인지라, 쿼리쪽은 건드릴 엄두가 나질 않는 무서운 상황을 피하려고 무리수를 둔 것인지도 모르겠지만... 나로서는 기존에 해왔던 것들에 대한 속성심화과정을 하는 것이라 좋은 기회일지도 모른다.


회사에서 기본구조로 잡을 프로젝트 구성과 유사한 형태로 틀을 잡아봤다.

  Hibernate를 Spring Data JPA로 감싸서 사용할 예정이다. 

  프로젝트 기본구조는 잡아놨으니, 이제 도메인 클래스들에 대한 설계작업을 진행하려고 한다.

각 도메인들간의 관계를 잡아두고, 클래스로 만들어내고, 클래스 다이어그램으로 추출하면 간단하겠지!!

4개월 개발한 프로젝트를 한달만에 부지런히 만들어내야 하는 상황에 놓였다.

잘 할 수 있으려나 모르겠네. 다른 사람이 잡아주던 환경위에서 개발하는 것에만 익숙하다가 내가 환경설정을 하고 개발을 진행한다는 게 쉬운 일은 아닌데 말이지...

이번 기회에 jenkins를 통한 배포도 정착화시킬 수 있으면 좋겠는데...


내 자신에게 Good luck for me!



클라우드 컴퓨팅 구현 기술

저자
김형준 지음
출판사
에이콘출판 | 2011-01-05 출간
카테고리
컴퓨터/IT
책소개
클라우드 컴퓨팅을 실제로 구현한다!『클라우드 컴퓨팅 구현 기술』...
가격비교





Cloud Service Implements OpenSource Solution.mm


뭔가 동시다발적으로 공부를 시작했다.

몇 개는 포기하고, 몇개는 꽉 붙들고 가야한다.

Memcached, MongoDB는 빠른 시일 내에 다룰 수 있을 것 같다.

아는 분에게 구매한 IntelliJ로 갈아탈 때가 된 것인가?

ㅡ_-);; 대안이 있는 상태에서, 어떤 문제에 부딪쳤을 때 그 문제를 해결하려고 애쓸 필요는 없겠지.


무엇보다 귀찮...

요즘 XML 설정이 복잡한 메이븐Maven(http://maven.apache.org/) 대신 그레들Gradle(http://www.gradle.org/)이 사람들의 많은 관심을 받고 있다. 그루비Groovy를 바탕으로 하는 자동화 배포툴이라고 할 수 있으려나? 설정이 간략화되는 것에 대해서 높은 점수를 받고 있는 것으로 보인다. 그루비를 배워야 하나? ㅡ0-)?

안드로이드 배포툴도 그레들로 나오기 시작하던데...


우분투에서 Gradle 설치를 위한 명령어는 간단하다.

    $ sudo apt-get install gradle

honeymon@honeymon-ubuntu:~$ sudo apt-get install gradle

[sudo] password for honeymon: 

패키지 목록을 읽는 중입니다... 완료

의존성 트리를 만드는 중입니다       

상태 정보를 읽는 중입니다... 완료

다음 패키지를 더 설치할 것입니다:

  ant ant-optional antlr aspectj binfmt-support bnd bsh bsh-gcj checkstyle

  default-jdk default-jre default-jre-headless eclipse-jdt eclipse-pde

  eclipse-platform eclipse-platform-data eclipse-rcp fastjar fop gcj-4.6-base

  gcj-4.6-jre-lib groovy ivy jarwrapper junit junit4 libantlr-java

  libapache-pom-java libapr1 libaprutil1 libasm3-java libaspectj-java

  libavalon-framework-java libbatik-java libbindex-java libbonoboui2-0

  libbonoboui2-common libbsf-java libclassworlds-java libcodenarc-groovy-java

  libcommons-beanutils-java libcommons-cli-java libcommons-collections3-java

  libcommons-compress-java libcommons-configuration-java libcommons-dbcp-java

  libcommons-digester-java libcommons-el-java libcommons-httpclient-java

  libcommons-io-java libcommons-jexl-java libcommons-jxpath-java

  libcommons-lang-java libcommons-logging-java libcommons-net2-java

  libcommons-parent-java libcommons-pool-java libcommons-vfs-java libdb-java

  libdb-je-java libdb4.8 libdb5.1-java libdb5.1-java-gcj libdoxia-java

  libeasymock-java libecj-java libequinox-osgi-java libfop-java

  libganymed-ssh2-java libgcj-bc libgcj-common libgcj12

  libgeronimo-jpa-2.0-spec-java libgeronimo-jta-1.1-spec-java

  libgeronimo-osgi-support-java libglade2-0 libgmetrics-groovy-java

  libgnomecanvas2-0 libgnomecanvas2-common libgnomeui-0 libgnomeui-common

  libgnuinet-java libgnujaf-java libgnumail-java libgoogle-collections-java

  libgradle-announce-java libgradle-antlr-java libgradle-code-quality-java

  libgradle-core-java libgradle-ide-java libgradle-jetty-java

  libgradle-maven-java libgradle-osgi-java libgradle-plugins-java

  libgradle-scala-java libgradle-wrapper-java libhamcrest-java

  libhawtjni-runtime-java libhttpclient-java libhttpcore-java

  libicu4j-4.4-java libicu4j-java libitext1-java libjansi-java

  libjansi-native-java libjasper-java libjetty-extra libjetty-extra-java

  libjetty-java libjline-java libjna-java libjna-posix-java libjoptsimple-java

  libjsch-java libjsoup-java libjsr305-java libjtidy-java libjzlib-java

  liblogback-java liblucene2-java libmaven-ant-tasks-java libmaven-scm-java

  libmaven2-core-java libmockobjects-java libmodello-java libmx4j-java

  libnetbeans-cvsclient-java libosgi-compendium-java libosgi-core-java

  libosgi-foundation-ee-java libplexus-ant-factory-java

  libplexus-archiver-java libplexus-bsh-factory-java libplexus-build-api-java

  libplexus-cipher-java libplexus-classworlds-java

  libplexus-component-api-java libplexus-container-default-java

  libplexus-containers-java libplexus-i18n-java

  libplexus-interactivity-api-java libplexus-interpolation-java

  libplexus-io-java libplexus-sec-dispatcher-java libplexus-utils-java

  libregexp-java librhino-java libsaxon-java libservlet2.4-java libslf4j-java

  libsvn-java libsvn1 libsvnkit-java libswt-cairo-gtk-3-jni

  libswt-glx-gtk-3-jni libswt-gnome-gtk-3-jni libswt-gtk-3-java

  libswt-gtk-3-jni libswt-webkit-gtk-3-jni libtomcat6-java

  libtrilead-ssh2-java libwagon-java libxbean-java libxmlgraphics-commons-java

  libxstream-java openjdk-6-jdk rhino sat4j testng

제안하는 패키지:

  ant-gcj ant-doc liboro-java jython libjdepend-java libcommons-net-java

  javacc ant-optional-gcj bsh-doc eclipse fop-doc groovy-doc libbcprov-java

  libbcpg-java ivy-doc junit-doc libavalon-framework-java-doc

  libclassworlds-java-doc libcodenarc-groovy-java-doc

  libcommons-beanutils-java-doc libcommons-collections3-java-doc

  libgeronimo-jta-1.0.1b-spec-java libcommons-digester-java-doc

  libcommons-httpclient-java-doc libcommons-io-java-doc

  libcommons-jxpath-java-doc libcommons-logging-java-doc

  libexcalibur-logkit-java libcommons-net2-java-doc libcommons-vfs-java-doc

  libdoxia-java-doc libeasymock-java-doc ecj libecj-java-gcj libgcj12-dbg

  libgcj12-awt libgeronimo-jpa-2.0-spec-java-doc libgeronimo-jta-java-doc

  libgeronimo-osgi-support-java-doc libgmetrics-groovy-java-doc

  libgnumail-java-doc gradle-doc maven2 scala jetty libjetty-java-doc

  libjline-java-doc libjna-java-doc libjsoup-java-doc libjsr305-java-doc

  libjtidy-java-doc glassfish-javaee janino libmaven-scm-java-doc

  libmodello-java-doc libhessian-java libosgi-compendium-java-doc

  libosgi-core-java-doc libosgi-foundation-ee-java-doc

  libplexus-build-api-java-doc libplexus-cipher-java-doc

  libplexus-classworlds-java-doc libplexus-component-api-java-doc

  libplexus-container-default-java-doc libplexus-i18n-java-doc

  libplexus-interactivity-api-java-doc libplexus-interpolation-java-doc

  libplexus-sec-dispatcher-java-doc libplexus-utils-java-doc libsaxon-java-doc

  libswt-gtk-3-java-gcj tomcat6 libwagon-java-doc libspring-core-java

  libspring-beans-java libspring-context-java libspring-web-java

  libjoda-time-java libstax-java libcglib2.1-java libjettison-java

  openjdk-6-demo openjdk-6-source visualvm librhino-java-doc testng-doc

다음 새 패키지를 설치할 것입니다:

  ant ant-optional antlr aspectj binfmt-support bnd bsh bsh-gcj checkstyle

  default-jdk default-jre default-jre-headless eclipse-jdt eclipse-pde

  eclipse-platform eclipse-platform-data eclipse-rcp fastjar fop gcj-4.6-base

  gcj-4.6-jre-lib gradle groovy ivy jarwrapper junit junit4 libantlr-java

  libapache-pom-java libapr1 libaprutil1 libasm3-java libaspectj-java

  libavalon-framework-java libbatik-java libbindex-java libbonoboui2-0

  libbonoboui2-common libbsf-java libclassworlds-java libcodenarc-groovy-java

  libcommons-beanutils-java libcommons-cli-java libcommons-collections3-java

  libcommons-compress-java libcommons-configuration-java libcommons-dbcp-java

  libcommons-digester-java libcommons-el-java libcommons-httpclient-java

  libcommons-io-java libcommons-jexl-java libcommons-jxpath-java

  libcommons-lang-java libcommons-logging-java libcommons-net2-java

  libcommons-parent-java libcommons-pool-java libcommons-vfs-java libdb-java

  libdb-je-java libdb4.8 libdb5.1-java libdb5.1-java-gcj libdoxia-java

  libeasymock-java libecj-java libequinox-osgi-java libfop-java

  libganymed-ssh2-java libgcj-bc libgcj-common libgcj12

  libgeronimo-jpa-2.0-spec-java libgeronimo-jta-1.1-spec-java

  libgeronimo-osgi-support-java libglade2-0 libgmetrics-groovy-java

  libgnomecanvas2-0 libgnomecanvas2-common libgnomeui-0 libgnomeui-common

  libgnuinet-java libgnujaf-java libgnumail-java libgoogle-collections-java

  libgradle-announce-java libgradle-antlr-java libgradle-code-quality-java

  libgradle-core-java libgradle-ide-java libgradle-jetty-java

  libgradle-maven-java libgradle-osgi-java libgradle-plugins-java

  libgradle-scala-java libgradle-wrapper-java libhamcrest-java

  libhawtjni-runtime-java libhttpclient-java libhttpcore-java

  libicu4j-4.4-java libicu4j-java libitext1-java libjansi-java

  libjansi-native-java libjasper-java libjetty-extra libjetty-extra-java

  libjetty-java libjline-java libjna-java libjna-posix-java libjoptsimple-java

  libjsch-java libjsoup-java libjsr305-java libjtidy-java libjzlib-java

  liblogback-java liblucene2-java libmaven-ant-tasks-java libmaven-scm-java

  libmaven2-core-java libmockobjects-java libmodello-java libmx4j-java

  libnetbeans-cvsclient-java libosgi-compendium-java libosgi-core-java

  libosgi-foundation-ee-java libplexus-ant-factory-java

  libplexus-archiver-java libplexus-bsh-factory-java libplexus-build-api-java

  libplexus-cipher-java libplexus-classworlds-java

  libplexus-component-api-java libplexus-container-default-java

  libplexus-containers-java libplexus-i18n-java

  libplexus-interactivity-api-java libplexus-interpolation-java

  libplexus-io-java libplexus-sec-dispatcher-java libplexus-utils-java

  libregexp-java librhino-java libsaxon-java libservlet2.4-java libslf4j-java

  libsvn-java libsvn1 libsvnkit-java libswt-cairo-gtk-3-jni

  libswt-glx-gtk-3-jni libswt-gnome-gtk-3-jni libswt-gtk-3-java

  libswt-gtk-3-jni libswt-webkit-gtk-3-jni libtomcat6-java

  libtrilead-ssh2-java libwagon-java libxbean-java libxmlgraphics-commons-java

  libxstream-java openjdk-6-jdk rhino sat4j testng

0개 업그레이드, 170개 새로 설치, 0개 제거 및 5개 업그레이드 안 함.

279 M바이트 아카이브를 받아야 합니다.

이 작업 후 407 M바이트의 디스크 공간을 더 사용하게 됩니다.

계속 하시겠습니까 [Y/n]?


관련해서 설치해야하는 gradle이 억수로 많네~ ㅡ0-)>


   설치 확인!  
 

honeymon@honeymon-ubuntu:~$ gradle

:help

Welcome to Gradle 1.0-milestone-3.

To run a build, run gradle <task> ...

To see a list of available tasks, run gradle tasks

To see a list of command-line options, run gradle --help

BUILD SUCCESSFUL

Total time: 1.615 secs

honeymon@honeymon-ubuntu:~$


 

그레들 버전 확인

 

$ gradle -v

honeymon@honeymon-ubuntu:~$ gradle -v

------------------------------------------------------------

Gradle 1.0-milestone-3

------------------------------------------------------------

Gradle build time: Thursday, September 8, 2011 4:06:52 PM UTC

Groovy: 1.8.6

Ant: Apache Ant(TM) version 1.8.2 compiled on December 3 2011

Ivy: non official version

JVM: 1.6.0_27 (Sun Microsystems Inc. 20.0-b12)

OS: Linux 3.5.0-25-generic amd64

honeymon@honeymon-ubuntu:~$ 


 

 그레들 설치 위치  

 

/usr/share/gradle


 

 참고사이트

 

* 손권남님의 위키 : http://wiki.kwonnam.pe.kr/gradle

* Gradle/lean :http://www.gradle.org/learn



인텔리제이 아이디어 IntelliJ IDEA 12를 구매하고 사용하지 않다가, 문득 생각이 나서 설치를 했다. 그런데 프로젝트 타이틀의 글씨들이 깨지는(안티앨리어싱이 적용되지 않아 글씨가 단계지어 나타나는) 현상이 보여서 이를 해결하려고 찾아봤다.

File - Setting - Editor - Appearance 에서 'Use anti-aliased font' 를 체크하면 된다고 하기에 해봤는데 안된다. 

그래서 혹시나 하고 찾아보니, 별도의 idea.vmoptions 라는 파일을 손봐야 한다는 글을 발견했다.


* 참고문헌 : 

    * http://helols.tistory.com/304

    * http://devnet.jetbrains.com/message/5277587?tstart=0

    * http://stackoverflow.com/questions/8691088/change-font-into-intellij-10-11    <-- 요놈 보고 정리


* 사용 운영체제 : Ubuntu 12.04 64bit

* IntelliIDEA 설치위치 : /develop/intelli-idea-12

* 안티앨리어싱 관련 설정파일 위치 : /develop/intelli-idea-12/bin

    * 32bit 설정파일 : idea.vmoptions 

    * 64bit 설정파일 : idea64.vmoptions

* 추가할 항목 : 

-Dawt.useSystemAAFontSettings=on


  IntelliJ IDEA가 Java AWT의 환경설정을 따르면서 나타나는 현상으로, VM 실행옵션으로 -Dawt.useSystemAAFontSettings을 주어서 UI단에서 안티앨리어싱(높은 해상도의 폰트를 화면에 불러올 때 나타나는 깨진 패턴을 완화시키기 위해 사용)을 동작시키는 시스템 프로퍼티값을 주었다. 다양한 옵션이 있는데, 간단하게 'on'으로만 처리했다.


* awt.useSystemAAFontSettings 관련 설명

    * http://docs.oracle.com/javase/6/docs/technotes/guides/2d/flags.html#aaFonts

+ Recent posts