Whiteship's Note

'2008/12'에 해당되는 글 44건

  1. 2008.12.30 봄싹 3기 TDD 스터디 장소 시간 확정 됐습니다. (2)
  2. 2008.12.29 봄싹 3기 TDD 스터디 계획 (4)
  3. 2008.12.28 스프링, 하이버 게시판 Whiteboard 1차 완성
  4. 2008.12.28 EJ2E Item 16. 상속보다 컴포지션을 선호하라
  5. 2008.12.27 SWF Chapter 1
  6. 2008.12.24 20081224 GMP
  7. 2008.12.23 EJ2E Item 15. 변경을 최소화하라 (2)
  8. 2008.12.23 번역 품질을 높이는 방법? (4)
  9. 2008.12.23 20081223 GMP
  10. 2008.12.23 이번 주 할 일
  11. 2008.12.23 잠깐 정리 좀;; (2)
  12. 2008.12.21 EJ2E 14. public 클래스에서는 접근 메소드를 사용하지 public 필드를 사용하지 마라.
  13. 2008.12.21 보드 타고 왔어요 (2)
  14. 2008.12.18 20081218 GMP (4)
  15. 2008.12.16 친구의 DAO 테스트 (2)
  16. 2008.12.15 오늘 내일 할 일
  17. 2008.12.15 document.location.href 써먹기 (2)
  18. 2008.12.13 아 드디어 집에 도착... (2)
  19. 2008.12.12 뢉 해럽 쌩큐 (2)
  20. 2008.12.12 Spring by Example (2)
  21. 2008.12.10 와우;; 완전 맛있는 스테이크 (2)
  22. 2008.12.09 스프링소스 새 웨비나 일정: SpringSource tc 서버 소개
  23. 2008.12.09 Alabama에 돼지갈비 립 (3)
  24. 2008.12.08 스프링 프레임워크 3.0 M1 배포~
  25. 2008.12.08 스프링 + OSGi(스프링 DM) 개발 필독 레퍼런스 3종 세트 (6)
  26. 2008.12.08 Word Cloud 만들어보기
  27. 2008.12.07 미국 Alabama에 있는 햄버거 가게와 서점 (4)
  28. 2008.12.07 저는 이제 Alabama에 왔습니다.
  29. 2008.12.07 Holub on Pattern 좋은데요~ (4)
  30. 2008.12.05 Grails(is Spring) 시작하기 (2)

봄싹 3기 TDD 스터디 장소 시간 확정 됐습니다.

모하니?/Planning : 2008.12.30 11:59


봄싹 3기 첫 번째 모임 장소, 시간, 참가자 확정

봄싹 블로그도 꼭 구독해주세요. 윗 글에 댓글을 다신 다음에 참석하시면 됩니다. 정말 간단하죠. 비용은 5천원입니다. 장소는 신촌. 시간은 오후 4~6시 두 시간. 뭘하냐면.. 처음이니만큼.. 참가자 분들 소개와 봄싹 소개 및 이번 TDD 스터디 개요와 진행 방법을 정하고 공유하겠습니다.

최대 25인까지 참석할 수 있으니까요. 많이들 신청하고 참석해주세요. (17인보다 적게 오시면 오시는 분들 비용이 늘어날 수 있습니다. 주변에 친한 동료를 한 분씩 데리고 오세요.ㅋㅋ)

5천원이면;; 웬만한 커피숖에서 젤 싼 커피값 아닌가요. 오셔서 다른 개발자 분들과 담소도 나누고 스터디도 하고 음료수도 마시고~. 좋자나요.
신고
top


봄싹 3기 TDD 스터디 계획

모하니?/Planning : 2008.12.29 11:55


이번 주 일요일(2009년 1월 4일)에 TDD 스터디를 시작합니다.

첫 번째 스터디에서는 본 스터디의 목표나 개요를 간략하게 설명하고 코드 저장소라던가 TDD 규칙을 공유하는 시간을 갖겠습니다. 자세한 내용은 차후 봄싹 블로그를 통해 공지하겠습니다.

스터디 목표
- 완전한 TDD 매니아가 되는 것이 본 스터디의 목적은 아닙니다.
- 테스트를 어떻게 작성해야 하는지 감을 익히는 것.
- 테스트의 소중함을 실감해 보는 것.
- 테스트 작성에 익숙해 지는 것.

소스 코드 저장소
- 게시판 저장소와 비슷하게 SVN을 사용하며 이클립스에서 SVN 클라이언트(서브버전 or 서버시브)를 사용하여 접근합니다.

TDD 퀴즈
- 저 입사 초기에 토비님께서 TDD 교육을 해주신 적이 있는데 그 때 풀었던 문제 6개를 공개해서 사용해도 된다는 허락을 받았습니다.

TDD 규칙
- 제일 먼저 ToDo 작성.
- 그 다음은 테스트 작성.
- 테스트를 성공 시키는데 필요한 코드만 작성할 것.
- 리팩터링 할 것.

스터디 방법
- 2주 텀으로 TDD 퀴즈를 각자 하나씩 풀어서 소스 코드 저장소에 올려둡니다.
- 다른 사람 및 자신이 작성한 코드에 대한 리뷰를 PPT로 발표 준비를 해 옵니다.
  - 테스트 없이 만든 코드가 있진 않은지 리뷰.
  - 리팩터링이 필요한 코드 리뷰.
  - 멋지다고 생각한 코드 리뷰.
  - 덩덩덩...
- 스터디 당일 돌아가면서 자신이 리뷰한 내용을 발표합니다.

다른 사람의 코드 리뷰를 할 떄는 좀 까칠하게 해도 괜찮습니다. 어렸을 떄 장기를 조금 배운적이 있는데 신기하게 자기가 둘 때 보다 훈수를 둘 때 더 잘 보이더라구요. 잘 하면 뭐하러 학습을 하겠습니까? 다들 똑같이 배우는 입장에서 다른 사람의 의견을 겸허하게 받아 들이는 스터디가 되면 좋겠습니다. 대신. 그렇다고 해서 자신이 이성적으로 맞다고 생각하는 걸 굽힐 필요는 없으니까. 자신 보다 경력이 많거나 말빨이 좋은 사람이 이러 저러한게 좋아 보인다고 해서 꼭 그게 맞을 꺼라는 생각을 하진 마시구요. 자신의 주장도 소신껏 이어가시고.. 그걸로 인해서 토론도 하고.. 그렇게 되면 재밌겠습니다.

새해 첫 스터디이니 만큼 재밌게 달려보자구요. 파이팅!!
신고

'모하니? > Planning' 카테고리의 다른 글

2009년 마무리로 할 일  (4) 2009.10.08
9월에 할 일 정리  (10) 2009.08.31
공부할 것 정리  (6) 2009.03.16
요즘 내 우선순위  (2) 2009.01.22
봄싹 3기 TDD 스터디 장소 시간 확정 됐습니다.  (2) 2008.12.30
봄싹 3기 TDD 스터디 계획  (4) 2008.12.29
이번 주 할 일  (0) 2008.12.23
잠깐 정리 좀;;  (2) 2008.12.23
오늘 내일 할 일  (0) 2008.12.15
12월 Whiteship's 미국 비행기 일정표  (0) 2008.10.17
썬 테크데이 참가할 세션  (0) 2008.09.24
top


스프링, 하이버 게시판 Whiteboard 1차 완성

모하니?/Coding : 2008.12.28 13:42


사용자 삽입 이미지
검색하고 페이징까지 구현 완료 했습니다. 이번 봄싹 스터디의 목표가 딱 여기까지 였죠.

게시판 구현 2차에서 할 일
- 프레임 없애고 한 프레임으로..
- 화면 UI 개선
- 댓글
- 정렬
- ...
신고
top


EJ2E Item 16. 상속보다 컴포지션을 선호하라

Java : 2008.12.28 00:25


참조: Effective Java 2nd Edition Item 16: Favor composition over inheritence

상속
- 상속은 코드 재사용을 하는 강력한 방법이지만 항상 최선의 방법은 아니다. 무분별하게 사용했다가는 연약한 소프트웨어가 된다.

- 상속은 동일한 패키지 내에서 하위 클래스와 상위 클래스 구현을 같은 프로그래머가 관리할 때 안전하다. 또한 상속은 상속하려는 클래스가 확장을 고려해서 설계되었고 문서화 되어 있을 때 안전하다.

- 이 책에서 말하는 상속은 구현체 간의 상속이지 인터페이스 상속을 말하는 건 아니다.

- 메소드 호출과 달리 상속은 캡슐활르 위반한다. 즉 하위 클래스가 상위 클래스의 구현에 의존한다.  상위 클래스의 구현 내용이 배포를 거듭하면서 바뀔 수 있는데.. 이로 인해 하위 클래스 코드는 건드리지도 않았는데 깨질 수가 있다.

- 오직 "is-a" 관계가 성립할 때만 적당하다. 자바 플랫폼에서 이를 위반 한 사례: Stack이 Vector를 상속받았다. Properties가 Hashtable을 상속 받았다.

컴포지션
- 컴포지션을 사용하면 앞서 말한 문제(깨지기 쉬운 코드, 상위 클래스에 새로운 메소드 추가 필요)를 해결할 수 있다.

- 포워딩(흔히 역할 위임이라고 일컫는 작업을 나타내는 듯)을 한다.

- 구현의 구체적인 내용과는 의존성이 없다.

- 래퍼(wrapper) 클래스와 데코레이터 패턴

- 래퍼 클래스 단점: 래퍼 클래스는 콜백 프레임워크에서 사용하기 적당하지 않다. 래퍼 클래스로 감싼 객체는 자기가 누구한테 감싸였는지 모르기 때문에 itself(this) 형태로 호출해도 래퍼는 무시된다. (만약 상속이었다면? 다형성 때문에 결국 상위 클래스를 상속받은 하위 클래스의 객체가 넘어갔겠지만..) => SELF problem





신고
top

Java : 2008.12.28 00:25 Trackback. : Comment.

SWF Chapter 1



참조: 스프링 웹 플로우 레퍼런스 1 장

1. 소개

1.1 이 가이드가 다루고 있는 것

이 가이드는 스프링 웹 플로우와 관련된 모든 것을 다룬다. 최종-사용자 애플리케이션의 플로우를 구현하는 방법과 기능 들을 사용하는 방법을 다룬다. 또한 프레임워크를 확장하는 방법과 전체적인 아키텍처 모델도 다룬다.

1.2. 웹 플로우를 실행할 때 필요로 하는 것

자바 1.4 이상

스프링 2.5.4 이상

1.3 지원을 받을 수 있는 곳

생략

1.4. 개발을 주도 할 수 있는 곳

생략

1.5. 웹 플로우 구성 요소를 스프링소스 번들 저장소에서 얻는 방법

각각의 웹 플로우 배포판의 jar 파일들은 스프링소스 엔터프라이즈 번들 저장소에서 얻을 수 있다. 이 jar 파일들에 메이븐이나 Ivy 의존성 관리자를 사용하여 접근할 수 있다.

1.5.1. 메이븐으로 웹 플로우에 접근하기

메이븐을 사용하여 jar에 접근 하려면 다음 저장소를 메이븐 pom에 추가하라.

<repository>
    <id>com.springsource.repository.bundles.release</id>
    <name>SpringSource Enterprise Bundle Repository - SpringSource Releases</name>
    <url>http://repository.springsource.com/maven/bundles/release</url>
</repository>

<repository>
    <id>com.springsource.repository.bundles.external</id>
    <name>SpringSource Enterprise Bundle Repository - External Releases</name>
    <url>http://repository.springsource.com/maven/bundles/external</url>
</repository>
           

그런 다음 다음의 의존성을 추가하라.

<dependency>
    <groupId>org.springframework.webflow</groupId>
    <artifactId>org.springframework.binding</artifactId>
    <version>2.0.5.RELEASE</version>
</dependency>

<dependency>
    <groupId>org.springframework.webflow</groupId>
    <artifactId>org.springframework.js</artifactId>
    <version>2.0.5.RELEASE</version>
</dependency>

<dependency>
    <groupId>org.springframework.webflow</groupId>
    <artifactId>org.springframework.webflow</artifactId>
    <version>2.0.5.RELEASE</version>
</dependency>

       
그리고 만약 JSF(JavaServerFaces)를 사용하고 있다면 다음을 추가하라.

<dependency>
    <groupId>org.springframework.webflow</groupId>
    <artifactId>org.springframework.faces</artifactId>
    <version>2.0.5.RELEASE</version>
</dependency>

          
1.5.2. Ivy로 웹 플로우에 접근하기

Ivy를 사용하여 jar 파일에 접근하려면, 다음 저장소를 Ivy 설정에 추가하라.

<url name="com.springsource.repository.bundles.release">
    <ivy pattern="http://repository.springsource.com/ivy/bundles/release/
                  [organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
    <artifact pattern="http://repository.springsource.com/ivy/bundles/release/
                       [organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
</url>

<url name="com.springsource.repository.bundles.external">
    <ivy pattern="http://repository.springsource.com/ivy/bundles/external/
                  [organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
    <artifact pattern="http://repository.springsource.com/ivy/bundles/external/
                       [organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
</url>
           

그런 다음 다음 의존성을 선언하라.

<dependency org="org.springframework.webflow" name="org.springframework.binding"
            rev="2.0.5.RELEASE" conf="compile->runtime" />
<dependency org="org.springframework.webflow" name="org.springframework.js"
            rev="2.0.5.RELEASE" conf="compile->runtime" />
<dependency org="org.springframework.webflow" name="org.springframework.webflow"
            rev="2.0.5.RELEASE" conf="compile->runtime" />

           

그리고 만약 JSF를 사용한다면 다음을 추가하라.

<dependency org="org.springframework.webflow" name="org.springframework.faces"
            rev="2.0.5.RELEASE" conf="compile->runtime" />

           
1.6. 메이븐 중앙 저장소에서 웹 플로우 구성 요소 얻는 방법

웹 플로우 배포판의 모든 jar 파일은 메이븐 중앙 저장소에서도 접근할 수 있다.

메이븐 중앙 저장소에 있는 웹 플로우 jar에 접근하려면 다음 의존성을 pom에 추가하라.

<dependency>
    <groupId>org.springframework.webflow</groupId>
    <artifactId>org.springframework.binding</artifactId>
    <version>2.0.5.RELEASE</version>
</dependency>

<dependency>
    <groupId>org.springframework.webflow</groupId>
    <artifactId>org.springframework.js</artifactId>
    <version>2.0.5.RELEASE</version>
</dependency>

<dependency>
    <groupId>org.springframework.webflow</groupId>
    <artifactId>org.springframework.webflow</artifactId>
    <version>2.0.5.RELEASE</version>
</dependency>

       
만약 JSF를 사용한다면 다음을 추가하라.

<dependency>
    <groupId>org.springframework.webflow</groupId>
    <artifactId>org.springframework.faces</artifactId>
    <version>2.0.5.RELEASE</version>
</dependency>

       
1.7. 나이틀리 빌드 얻는 방법

나이틀리 스냅샷 버전의 웹 플로우 트렁크는 스프링 소스 번들 저장소에서 이용할 수 있다. 스냅샷에 접근하려면 다음 저장소를 pom에 추가하라.

<repository>
    <id>com.springsource.repository.bundles.snapshot</id>
    <name>SpringSource Enterprise Bundle Repository - Nightly Snapshots</name>
    <url>http://repository.springsource.com/maven/bundles/snapshot</url>
</repository>
       
그리고 다음 의존성을 선언하라.

<dependency>
    <groupId>org.springframework.webflow</groupId>
    <artifactId>org.springframework.binding</artifactId>
    <version>3.0.0.CI-###</version>
</dependency>

<dependency>
    <groupId>org.springframework.webflow</groupId>
    <artifactId>org.springframework.js</artifactId>
    <version>3.0.0.CI-###</version>
</dependency>

<dependency>
    <groupId>org.springframework.webflow</groupId>
    <artifactId>org.springframework.webflow</artifactId>
    <version>3.0.0.CI-###</version>
</dependency>

           
그리고 만약 JSF를 사용한다면 다음을 추가하라.

<dependency>
    <groupId>org.springframework.webflow</groupId>
    <artifactId>org.springframework.faces</artifactId>
    <version>3.0.0.CI-###</version>
</dependency>

       
위에서 '# # #'은 3.0.0.CI-500 같은 빌드 넘버를 나타낸 것이다. 최근 빌드 넘버를 알고 싶다면 나이틀리 빌드 영역을 참조하라.
신고

'Spring Web Flow > Chapter 1' 카테고리의 다른 글

SWF Chapter 1  (0) 2008.12.27
top


20081224 GMP

모하니?/GMPing : 2008.12.24 11:02


News

Director Scott derrickson believes science fiction continues to provide film makers with a way to entertain audiences but also address important social issues.

Movie

팬더: I stayed because I thought If anyone could change me could make me not me. It was you. The greatest kung-fu teacher in all of China.
사부: But I can change you. I can turn you into the dragon worrior. And I will.
팬더: Come on. Tylon is on his way here right now. Even if It takes him a hundres years to get here, How are you gonna change this into dragon worrior?

It takes + 사람 + 시간 + to ~ : 누가 ~하는데 얼마나 걸린다.

Pop

I won't ask for a much this cristmas.
I won't even wish for snow
I'm just keep on waiting underneath the mistletoe.
I won't make a list and send it to north pole for saint nig.
I won't even stay awake to hear those magic sounds.
All I want for cristmas is you.

mistletoe 밑에서 키스하면 사랑이 이루어진다는 얘기가 있덴다.

Expression

I was about to ~ : ~ 하려던 참이었다.
I was about to leave.
I was about to call you.
I was about to say that.
I was about to fall a sleep.
I was about to throw it out.
I was about to make breakfast for you.
I was about to buy this one.
신고

'모하니? > GMPing' 카테고리의 다른 글

20090326 GMP  (0) 2009.03.26
20090324 GMP  (6) 2009.03.24
20090320 GMP  (0) 2009.03.20
20090319 GMP  (2) 2009.03.19
20090317 GMP  (0) 2009.03.17
20081224 GMP  (0) 2008.12.24
20081223 GMP  (0) 2008.12.23
20081218 GMP  (4) 2008.12.18
20080829 GMP  (0) 2008.08.29
20080828 GMP  (0) 2008.08.28
20080825 GMP  (0) 2008.08.25
top

TAG GMP

EJ2E Item 15. 변경을 최소화하라

Java : 2008.12.23 21:52


참조: Effective Java 2nd Editio Item 15: Minimize mutability

자바에는 다양한 Immutable 클래스들이 있는데, 그 이유는.. 불변 클래스가 변하는(mutable) 클래스보다 설계하고 구현하고 사용하기 쉽기 때문이다.

불변 클래스를 만드는 다섯 가지 규칙
1. 객체의 상태를 바꾸는 메소드를 제공하지 말라.
2. 클래스를 확장할 수 없도록 해라.
3. 모든 필드를 final로 하라.
4. 모든 필드를 private으로 하라.
5. 변경 가능한 요소에는 상호 배타적으로 접근하도록 하라.(불변 클래스가 변하는 필드를 가지고 있을 때, 클라이언트가 해당 객체에 대한 레퍼런스를 가지지 못하게 하라. defensive copies를 생성자나 aceessor에서 만들고 readObject 메소드를 만들어라. @_@)

별로 안 간단해 보이는데;;; 간단하데요

불변 객체는 당연히 쓰레드-세이프 하다. 따라서 동기화 필요 없다. 자유롭게 공유해서 쓰면 된다.

단점은 매번 별도의 객체를 필요로 한다는 것이다. 비싼 객체는 좀.. 글켔군요.

상속을 막는 방법이 클래스를 final로 만드는 거 말고 좀 더 유연한 방법이 있다. 모든 생성자를 private 또는 package-private으로 만들고 public static 팩터리를 만드는 거다. 같은 패키지에서는 상속해서 다양한 구현체를 만들 수 있지만 해당 패키지 밖에서 참조할 땐 final 클래스와 마찬가지니깐... 오호.. 천젠데;;

어떤 클래스를 불편 불변 클래스로 만들어야 할까? 고민해본 적이 없네... 집에 가면서 생각해보자.. 굳이 바뀔 필요가 없는 클래스도 필요 없이 setter를 전부 만들진 않았을까..


신고
top


번역 품질을 높이는 방법?



전 잘 모릅니다. 번역을 꾸준히 하고는 있지만 잘 한다고 생각하지도 않으며 잘 하려고 연구를 해보지도 않았습니다. 그럴 시간에 하나라도 더 번역을 해야하기 때문에... 그래도 한 번 생각난 김에 정리해보면 다음과 같습니다.

먼저 번역하는 사람의 문장력이 좋아야 합니다. 번역자가 문장력이 좋고 한글 표현을 잘 사용할 줄 안다면 그만큼 품질 좋은 번역 기사나 번역서가 나올 겁니다.

다음으로 번역자가 영어를 감당할 수 있어야 합니다. 영어를 잘 몰라도 주변에 영어를 잘 알고 있는 친구나 사전을 이용해 가면서 문맥에 비슷한 표현이 나오도록 할 수 있어야 합니다. 기술 서적 중에 쉬운 책들은 중학교 수준 영어 실력만 있어도 번역이 가능하죠.

세번째로는 번역하려는 내용을 알고 있어야 합니다. 저 같은 경우 짧은 글을 번역할 때는 이 규칙은 보통 무시합니다. 새로운 기술이 알고 싶어서 번역할 때도 있거든요. 대신 책이나 레퍼런스 같이 분량이 많아서 일관성이 있어야 하고 어떤 기준이 필요할 때는 해당 기술을 얼마나 잘 이해하고 있는가가 번역 품지을 좌우하기도 합니다. 실제로 제가 메이븐을 하나도 모를 때 메이븐 튜토리얼을 번역한 적이 있는데.. 요즘 들어 가끔보게 되면 민망해 죽을 지경입니다.

네번째로는 재벌이 중요합니다. 다시 한 번 전체 내용을 읽어보면서 날림 번역으로 어색한 문장이나 문맥에 맞지 않는 내용이 눈에 띄면 다시 원문과 비교해서 손보는 작업입니다. 이 작업을 하면서 자신이 읽어도 이해가 된다. 싶을 정도면 일단 OK 입니다. 저는 보통 짧은 글은 재벌도 잘 하지 않는 편입니다. 짧은 글은 애초에 처음 번역할 때 날림 번역을 하지 않고 문맥에 맞추면서 하기 때문에 자잘한 오타와 한 두 문장을 고쳐야 하는데 시간을 소비하고 싶지 않아서 입니다.

마지막으로는 번역을 꾸준히 해서 감을 잃지 말아야 하는건데 이건 잘 지키고 있습니다. 꾸준히 하다보면 비슷한 문장이 등장했을 때 번역 패턴이 생기기도 하고 더 좋은 한글 표현이 떠오르기도 합니다. 예를 들어 오늘 GMP를 듣다가 알게 된건데 All I want for cristmas is you 같은 경우. "내가 크리스마때 원하는 전부는 너야." 라고 All 을 곧이 곧대로 번역하는 거 보다 "내가 크리스마스때 원하는 건 오직 너 뿐이야." 라고 All의 의미를 반전시키면 훨씬 깔끔한 문장이 되는거죠. 이런 건 꾸준히 하다보면 하나 둘 씩 생기는 스킬 같은 거라고 생각합니다.

어쩃거나.. 결론은 번역 품질을 높이려면 번역자가 번역을 잘 해야 한다는 거... 그렇지 않고 베타리딩에 모든 걸 건다?? 글쎄요. 저 같은 경우 베타리딩 할 때 품질이 영 아니면 대충 해버리거나 중간에 포기해버립니다. 베타리더가 돈을 받는 것도 아니고 명예가 생기는 것도 아닌데 감수자나 번역자 역할을 대신 해줄 순 없으니까요.
신고
top

TAG 번역

20081223 GMP

모하니?/GMPing : 2008.12.23 14:39


News

lay off 임시 해고

When people are loosing their jobs, being layed off, uncirtain about what the economy is going to bring, they turned to higher education.

Movie

마스터: I need your help master.
사부: No. you just need to believe. Promise me sifu. Promise you'll believe.
마스터: Good. My time has come. You must continue your journey without me.
사부: What what wa wa wa. Master you can't leave me.

Song

I just want you for my own more that you could ever know.
Make my wish comes true. All I want for cristmas is you.

Expression

Do you have any ~?
Do you have any luggage?
Do you have any vacancy?
Do you have any change?
Do you have any questions?
Do you have any good ideas?
Do you have any suggestions?
Do you have any specific plans?
Do you have any special reasons?
신고

'모하니? > GMPing' 카테고리의 다른 글

20090324 GMP  (6) 2009.03.24
20090320 GMP  (0) 2009.03.20
20090319 GMP  (2) 2009.03.19
20090317 GMP  (0) 2009.03.17
20081224 GMP  (0) 2008.12.24
20081223 GMP  (0) 2008.12.23
20081218 GMP  (4) 2008.12.18
20080829 GMP  (0) 2008.08.29
20080828 GMP  (0) 2008.08.28
20080825 GMP  (0) 2008.08.25
20080821 GMP  (0) 2008.08.21
top

TAG GMP

이번 주 할 일

모하니?/Planning : 2008.12.23 11:05


이번 주는 크리스마스에 보트 타러 갈 거고 주말에도 보드  타러 갈지 모르기 때문에 일정이 완전 빠듯해.. 정신차려 백기선. 다 할 수 있어!!! 파이팅!!

이번 주에 매일 할 일
- GMP(, , 목, 금, 토, 일)
- EJ2E(, 수, 목, 금, 토, 일)
- 홀럽 온 패턴(화, 수, 목, 금, 토, 일)
- 피아노 연습(, 수, 목, 금, 토, 일)
- 큐브 연습(화, 수, 목, 금, 토, 일)

화(23)
- 유지보수 적용
- 레거시 분석
- 게시판 코드 완성
- 피아노 이번 주 레쓴 미루기
- Pro Spring 2.5 재벌
- IBM DW 기사 번역
- 시즌권 구매
- 시즌방 예약
- 아래 고민 해결해야 함

수(24)
- 레거시 분석
- IBM DW 기사 번역 완료
- 보드 장비 구입
- 보드 타러 ㄱㄱ

목(25)
- 보드 당일 치기.

금(26)
- 레거시 분석
- Pro Spring 2.5 재벌

토(27)
- 보드 당일 치기
- Pro Spring 2.5 재벌

일(28)
- 스터디에서 게시판 마무리
- Pro Spring 2.5 재벌 마무리
- IBM DW 기사 번역 마무리
신고

'모하니? > Planning' 카테고리의 다른 글

9월에 할 일 정리  (10) 2009.08.31
공부할 것 정리  (6) 2009.03.16
요즘 내 우선순위  (2) 2009.01.22
봄싹 3기 TDD 스터디 장소 시간 확정 됐습니다.  (2) 2008.12.30
봄싹 3기 TDD 스터디 계획  (4) 2008.12.29
이번 주 할 일  (0) 2008.12.23
잠깐 정리 좀;;  (2) 2008.12.23
오늘 내일 할 일  (0) 2008.12.15
12월 Whiteship's 미국 비행기 일정표  (0) 2008.10.17
썬 테크데이 참가할 세션  (0) 2008.09.24
S1A 비행기 예약 + 호텔 예약  (0) 2008.09.23
top

TAG 할 일

잠깐 정리 좀;;

모하니?/Planning : 2008.12.23 10:35


주업
- 레거시 분석
- 유지보수

부업
- Pro Spring 2.5 번역
- Java Persistence with Hibernate 번역
- IBM DW 기사 번역(한 달에 2~3개)
- 스크린캐스팅 한 달 걸러 하나씩

학습
- GMP
- 게시판 만들기
- 스프링 웹 플로우
- 스프링 배치
- Grails
- Effective Java 2nd
- 홀럽 온 패턴

취미
- 피아노
- 큐브
- 스노우보드

주업
레거시 분석
- 새 프로젝트가 레거시 시스템과 비슷하기 때문에 거의 완벽하게 분석해야 함.
- 도메인 모델의 주요 속성과 관계를 UML로 그리기(주요 영역 별로 쪼개서.)
- 주요 비즈니스 로직 분석하기

유지보수
- 구현은 끝났으니까 적용하고 실무자에게 확인 받기

부업
Pro Spring 2.5 번역
- 이번 주 내로 맡은 부분 재벌 마치기

JPWH 번역
- 이건 당분간 신경 못 씀. Pro Spring 2.5 끝나면 다시 시작.

IBM DW 기사 번역
- 이번 주 내로 기사 하나 번역 해야 함.

스크린캐스팅
- 2월에 올라갈 거니깐 아직 급하진 않지만 미리 주제 선정하고 학습해 둘 것.

학습
GMP
- 매일 하나씩 들으면서 요약 정리.
- MP3 받아서 귀에 꽂고 다니기.
- 친구한테 써먹기.

게시판 만들기
- 이번 주말 스터디에서 마무리.
- 그전까지 페이징만 구현.

스프링 웹 플로우
- 게시판 예제 코드 가지고 하나씩 해보기.
- 새 프로젝트 적용할 수 있을 정도로만 해두자.
- 대충 1월 ~ 2월 사이에.
- 이걸 주제로 스크린캐스팅을 제공하는게 좋겠다.

스프링 배치
- SWF랑 마찬가지.

Grails
- 아직 대책 없음.

EJ2E
- 매일 한 아이템씩 정리.

홀럽 온 패턴
- 자기 전에 한 챕터씩 읽고 자기.

취미
피아노
- 학원은 이제 그만. 이번 달이 마지막 레쓴.
- 하농, 체르니 꾸준히.
- 하고 싶은 곡 하나씩 마스터.

큐브
- F2L 출력해서 출 퇴근 길에 마스터 할 것.

스노우보드
- 그냥 한 번 질러 보자.
- 지금 아니면 언제 해보겠어.

신고
top

TAG 정리

EJ2E 14. public 클래스에서는 접근 메소드를 사용하지 public 필드를 사용하지 마라.

Java : 2008.12.21 19:57


참조: Effective Java 2nd Edition. Item 14: In public classes, use accessor methods, not public fields

그런 클래스에 있는 데이터 필드에 바로 접근하면 캡슐화(Item 13) 장점을 제공하지 못하게 된다.
1. 내부를 변경하면 API까지 바뀐다. 
2. 필드를 읽을 떄 어떤 보조 행위를 추가하지 못한다.
3. 불변성을 보장할 수 없다.

따라서 private 필드를 사용하고 public 접근 메소드(getter)와 (가변 클래스인 경우) setter를 제공하라.

패키지 밖에서 해당 클래스에 접근이 필요한 경우에 접근 메소드를 제공하라. 자바 플랫폼 라이브러리중에 Dimension과 Point 클래스(java.awt 패키지)가 이를 위반하고 있다.(흠.. 뭔가 대체할 만한 클래스가 있겠죠?)

불변값에 직접 전근하게 하는건 그리 나쁘지 않다. 1과 2는 어쩔 수 없는데 불변경은 보장할 수 있다.

예제코드 hour와 minute 이라는 int 타입 final 필드를 public으로 제공하고, 해당 클래스의 생성자에서 int 값 두개를 인자로 받아서 해당 final 필드에 세팅을 해줌.
신고
top

Java : 2008.12.21 19:57 Trackback. : Comment.

보드 타고 왔어요



네이버 카페(피아노사랑)에서 알게된 친구가 보드 매니아라서 꼬드김에 넘어가 보드를 난생 첨으로 타보고 왔습니다. 에전에 친구들이랑 스키장가서 독학으로 스키 하루 타보고 온적은 있는데 그것도 오래 전 일이고 보드랑 스키는 또 많이 달라서 걱정을 많이 했는데 친구가 잘 챙겨줘서 어떻게든 내려올 순 있는 정도로 배우고 왔습니다.

8시부터 새벽 1시까지 탔습니다. 정말 재밌던데요. 이젠 거의 매주 가지 않을까 싶습니다. 월화수목금 일하고 금욜 저녁에 가서 금요일 야간 심야 토요일 야간 심야 일요일 귀가. 이런 패턴으로 타면 많이 탈 수 있겠더라구요. 문제는 돈인데.. 보드나 신발도 없고~ 보호구도 없고~ 옷도 없고~ ㅋㅋㅋ 뭐 좀 싸게 넘기실 거 없나요. 이번엔 친구가 다 알아서 준비해줘서 정말 편하게 타고 왔는데 담에 갈 땐 보호구라도 준비해서 가야겠습니다.

타보면서 느낀점은 보드는 정말 위험하다는 거. 그래서 보호구가 필수더군요. 스키 처음 탈 땐 아무것도 없이 타도 별로 아픈곳이 없었는데 보드는 엉덩이 보호구 없이 탔으면 엉덩이가 뽀개지지 않았을까 싶습니다. 그리고 손목 보호구. 넘어질 때 손을 집으면 안 되는데 나도 모르게 손을 바닦에 꽝.. 짚으면... 그대로 손목이 나가버리기 쉽상이더군요. 어쨋든 이 두개는 꼭.. 착용하고 타야겠습니다. 그리고 나 때문이 아니라 다른 사람이 와서 들이받을 수도 있기 때문에 헬멧이나 기타 보호구들도 꼭 필요한 것 같습니다.

이것으로 또 하나의 취미가 생겼습니다.

큐브, 피아노, 보드

여친한테 차이고 나니... 세상이 더 넓어지는 것 같습니다. 어떻게든 외로움에서 벗어나려고 발버둥 치다보니 이렇게 되네요. 큐브나 피아노는 혼자하는거라 외로움을 순전히 집중력으로 이겨내는 방법이고, 보드도 역시 집중력이 필요하긴 한데 인간적인 유대관계 없이는 좀 힘든거라 자연스럽게 새로운 친구들도 생기더군요. 보드를 통해서 만나게 되는 새로운 사람들과 좋은 관계가 지속되면 좋겠습니다.
신고
top

TAG 보드

20081218 GMP

모하니?/GMPing : 2008.12.18 09:43


News

What really makes these bots unique is the technology used to control them. A simple moile phone is all it takes to send the bots on the way.

Movie

포: Maybe I should just quit and go back to making noodles.
사부: Quit? don't quit. Noodles? don't noodles.
You're too concerned with what was and what will be.
There is a sayng. "Yester is a history. Tomorrow is a mistery, but today is a present."
That is why it is called present.

Pop (John Lennon-Love)

Love is real. Real is a love.
Love is feeling. feeling love.
Love is wanting to be loved.

Expression

I don't watch~
I don't watch debates.
I don't watch tv at all.
I don't watch award shows.
I don't watch sports on tv.
I don't watch violant movies.
I don't watch animated movies.
I don't watch american tv dramas.


신고

'모하니? > GMPing' 카테고리의 다른 글

20090320 GMP  (0) 2009.03.20
20090319 GMP  (2) 2009.03.19
20090317 GMP  (0) 2009.03.17
20081224 GMP  (0) 2008.12.24
20081223 GMP  (0) 2008.12.23
20081218 GMP  (4) 2008.12.18
20080829 GMP  (0) 2008.08.29
20080828 GMP  (0) 2008.08.28
20080825 GMP  (0) 2008.08.25
20080821 GMP  (0) 2008.08.21
20080819 GMP  (0) 2008.08.19
top

TAG GMP

친구의 DAO 테스트

모하니?/Thinking : 2008.12.16 12:15


올해 여름이었나... 취직 걱정을 하던 친구를 붙잡고 주말마다 스프링 공부를 잠깐 한 적이 있었습니다. 집중하기 힘든 시기였을텐데 나름대로 최선을 다해서 학습을 했었죠. 길게 가진 않았지만 대충 한 두달은 공부한 것 같습니다. 제가 그 당시 그 친구에게 해준 조언은 조급해하지 말고 열공하라는 거였습니다. 결국 지금은 어딘가에 취직해서 2~3달간의 기초 교육 과정을 마치고 현재 첫 프로젝트에서 PL이란 직책을 맡아서 개발을 즐기고 있습니다. 캬캬캬.

블로깅도 꼬드겨서 시켰는데 드문 드문이긴 하지만 꾸준히 하고 있어서 요즘 뭐하고 사는지 대충 알 수 있습니다. 오늘은 오라클 관련 에러 해결한 글이 올라왔길래 뭔가 봤더니 DAO 테스트를 하고 있더군요. 그래서 메신저로 말을 걸어서 물어봤습니다.

오~ DAO 테스트도 해?
DAO 테스트 어떻게 해? DBUnit 써?
테스트 데이터 어떻게 관리해?
테스트 때문에 생기는 찌꺼기 데이터는 어떻게 처리해?

=> 오라클에 테스트용 DB를 하나 만들고 거기에 텍스트 파일로(ex123/기선/자바..) 테스트 데이터 만들고 그거 짤라서 DB에 넣는 유틸 클래스가 있고 테스트 뒤에 찌꺼기 처리하는 유틸 클래스가 있어.

흠.. DBUnit 사용하면 XML이나 Excel로 테스트 데이터 만들면 알아서 DB에 넣어준다는 것과 테스트를 트랜잭션처리 해버리면 찌꺼기 처리할 필요가 없다는 걸 알려주긴 했지만..

그동안 스프링 공부를 안 했는지 DBUnit 도입은 할 거처럼 보이는데 스프링 도입은 망성이고 있네요. 기간이 촉박해서 학습할 시간이 없나봅니다. 그러게 평소에 좀 꾸준히 해두지~ㅋㅋ 모르죠 DBUnit도 귀찮아서 안 쓰고 그냥 지금 하던데로 할지..

어쩄거나 DAO 테스트를 만들고 있다는 사실 자체는 상당히 높이사고 싶네요. 귿좝~
신고
top


오늘 내일 할 일

모하니?/Planning : 2008.12.15 18:11



지금은 12월이지만... 노래 참 좋네요. @_@ 시차적응 실패로 몸은 무겁고~ 머리는 깨지고~ 정신은 몽롱하네요. 여기에 그리움과 글루미 썬데이 OST까지 더해지면 금상첨화겠죠? 그래도 할 일은 해야 되니깐..ㄱㄱㅆ

오늘 한 일
- 레거시 모델 중 하나에 속성 하나 추가
  - enum 타입 추가
  - update 화면 수정
  - grid 화면 수정
  - search 화면 수정
  - 검색 조건에 추가
- 레거시에 재고조사관련 모델 추가
  - DAO, BL, Ctrl, Context 추가
  - list, search, grid 화면 추가
  - 재고조사 기능 추가
  - 재고스캔 초기화 기능 추가

내일 할 일
- 닷넷으로 클라이언트 프로그램 만들기
- 레거시 코드 분석
- 레거시 도메인 클래스 다이어그램 그리기
신고

'모하니? > Planning' 카테고리의 다른 글

요즘 내 우선순위  (2) 2009.01.22
봄싹 3기 TDD 스터디 장소 시간 확정 됐습니다.  (2) 2008.12.30
봄싹 3기 TDD 스터디 계획  (4) 2008.12.29
이번 주 할 일  (0) 2008.12.23
잠깐 정리 좀;;  (2) 2008.12.23
오늘 내일 할 일  (0) 2008.12.15
12월 Whiteship's 미국 비행기 일정표  (0) 2008.10.17
썬 테크데이 참가할 세션  (0) 2008.09.24
S1A 비행기 예약 + 호텔 예약  (0) 2008.09.23
S1A(Spring One America) 질렀다. 가는거다.  (2) 2008.09.22
나의 길  (0) 2008.09.12
top

TAG 할 일

document.location.href 써먹기

View/JavaScript : 2008.12.15 16:14


    <script>
    function doinvconfirm() {
        var res = confirm("재고조사를 하시겠습니까?");
        if (res == false) return;

        document.location.href = "doinvconfirm.do";
    }
    </script>

<a href="javascript:doinvconfirm()" class="black">&nbsp;재고조사</a>


흠~ document.location.href를 이용하면 URL 주소창에 해당 URL을 입력한 거랑 동일한 효과가 나는 거군요. 자세한 내용은 여기서 참조할 수 있습니다.
신고
top


아 드디어 집에 도착...



13시간이 넘는 비행 시간 동안 한 숨도 안 자고 논스탑 영화 시청을 했더니 상당히 피곤합니다. 다행히 서울에 도착하니까 저녁이네요. 오늘은 좀 일찍 자고 내일 스터디에 가야겠습니다. 도착해서 부모님 선물(어머니 화장품, 아버지 양주)을 드렸더니;; 뭐하러 돈을 썼냐고;;; -_-;; 역시.. 예상적중. 아버지야 그렇다지만 어머닌 좋으신듯 하니 일단 반은 성공. 회사 퇴근 후 집에 온 동생이 보자마자 하는 말 "살찐 거 같네?" 헐.. 찔 수 밖에.. ㅋㅋ 먹었던 걸 다 얘기 해주기가 귀찮아서 "맨날 고기 먹었다."라고 해주고 알라바마에서 사온 피칸 한 봉지로 동생 선물 끝~

오자마자 짐을 풀고 씻고 정신차려보니 어지러진 내 방, 스터디 준비, 담주까지 해야 할 회사일, 굳어버린 손을 풀어줄 키보드, 아.. 다시 돌아왔구나!!
신고
top


뢉 해럽 쌩큐

Spring/etc : 2008.12.12 15:01


참조: http://blog.springsource.com/2008/12/11/slides-and-demos-from-springone-americas-2008/

뢉 해럽이 S1A에서 발표한 세션 중 두 개 세션의 ppt와 소스 코드를 공개했습니다.

그 중 하나가 컨커런시인데 이 부분은 굳이 스프링 애호가나 사용자가 아니여도 들어볼 만한 세션인 것 같습니다. 코딩을 얼마 해보지도 않았지만, 컨커런시를 다룬 코딩은 정말 조금 밖에 안 해봤고(배치와 스케줄러 관련 작업할 때 조금 해본 기억이 나네요. 아주 조금; 단순하거.. 그것도 사부님한테 여러번 수정 사항 지적받으면서..) 별로 궁금하지도 않았습니다. Thread랑 Runnable 가지고 깨우고 재우고 롹킹하고 어쩌구 저쩌고.. 정도만 알고 있었을 뿐..

이번 뢉 해럽의 발표를 보니까 정말 정말 많은 기능들이 자바에 추가되고 있었습니다. 몰랐습니다. 거의 90% 가까이 내용을 못 알아들었습니다. 좌절했죠. (역시 아는 만큼만 보이고 들리더군요.) 그래서 돌아가면 소스 코드 보면서 다시 공부하리라 마음 먹었습니다. 뢉 해럽한테 가서 소스 코드도 얻어보려고 발표가 끝나고 앞에 나가서 "how can I get the source code? example source code." 라고 질문도 했었죠.ㅋㅋ 그랬더니 오늘쯤 블로그에 올린다고 하더니 정말 올려줬습니다.

S1A에 가서 첫날 뢉 해럽한테 우루루 몰려가서 사진찍고 둘 쨋날은 맨 앞에서 뢉 해렵의 모든 세션(dm 서버 관련 3개)에 참석하고 마지막 날은 사인까지 받았고 질문도 했으니.. 다음에 찾아가도 절 기억해 주겠죠? 기억 못하면 다시 사진 한 방.. ㅋㅋ
신고
top


Spring by Example

Spring/etc : 2008.12.12 14:49


참조: http://www.springbyexample.org/

스프링을 사용하는 여러 코드를 정리해 두었습니다. 주로 한 사람(David)이 코드를 올렸고 간간히 다른 사람의 이름도 보입니다. 레퍼런스 스타일로 쉽게 참조해서 스프링을 사용해 볼 수 있겠습니다. 재밌는 활동인 것 같은데 기회가 되면 저도 참여해야겠습니다. 저런 사이트가 관리가 잘 되고 규모가 커져서 다양한 시나리오와 그 시나리오에 적절한 코드 사용법까지 정리된다면 굉장한 스프링 관련 사이트가 될 것 같습니다.
신고
top


와우;; 완전 맛있는 스테이크



미국와서 먹은 음식 중에 젤 맛있었던 것 같습니다. 진짜.. 완전 완전 완. 전. 맛있습니다. 12온스짜리를 먹었는데 배터지는 줄 알았네요. 스테이크를 하나 주문하면 사이드 메뉴 두 개를 주문할 수 있습니다. 사이드 메뉴로 스위트 포테이토와 시저 샐러드를 주분했는데 시저 샐러드 한접시가 무슨 메인 메뉴인양 등장했습니다. 그리고 기본으로 주는 빵도 정말 맛있었는데.. 애초에 양이 많을 줄 짐작하고 있었기 때문에 한 조각만 먹었습니다. @_@ 오늘도 배를 가득 채웠습니다. 캬오..


신고
top


스프링소스 새 웨비나 일정: SpringSource tc 서버 소개

Spring/Webinar : 2008.12.09 21:27


참조: http://www.springsource.org/node/849

12월 11일에 합니다. 아.. 내일이군요. 미국에 있어서 낮에 봐야하는대 녹녹치 않을 듯 합니다. 이건 나중에 녹화된 걸로 봐야겠습니다.

다루는 내용은 다음과 같습니다.
  • 대규모 개발 관리하기
  • 분산된 톰캣 인스턴스 그룹 제어하기
  • 제품 시스템에 엔터프라이즈 애플리케이션 잘(reliably) 배포하기

tc 서버 데모를 S1A 키노트 떄 잠깐 봤었는데 이번 웨비나를 통해 더 자세히 살펴볼 수 있겠네요. 기존의 톰캣은 운영이나 관리 측면이 빈약했는데 tc 서버는 그 부분을 어떻게 보완했는지.. 사용은 편한지.. 등등..
신고
top


Alabama에 돼지갈비 립



드림랜드라는 가게에서 먹었습니다. 일단 크기가 엄청 크구요. 살도 많이 붙어있습니다. 소스도 좀 특이한 맛이었습니다. 약간 톡쏘는 맛이 있었는데;; 뭐라 표현을 못하겠네요. 첨먹어본 맛이라; 그리고 사이드로 식빵을 줍니다. 휴지 대신에 키친 타올을 주구요. ㅋㅋ

사부님이랑 둘이서 먹었는데 배가 너무 부릅니다. 예상보다 분발해서 먹었더니 사부님께서 약간 부족하셨던듯... 이 곳은 음료수 서비스가 일품인데, 어딜가나 음료수 리필은 아주 끝내주게 해줍니다. 서비스에 대한 댓가는 톡톡히 해줘야하죠. 팁으로.


아침엔 스타벅스에서 커피로 때웠는데 점심은 부폐 저녁은 푸짐한 립으로 한 배 가득 채웠습니다.

오늘 부턴 고객사에 나가서 업무를 익히고 있는데 어렵습니다. ERP 관련 업무인데 익혀야할 기본 이론이나 단어들도 많고 그걸 그대로 적용할 수 있는 것도 아니고 현업에 맞게 변형해서 적용해야 하는데 다행히.. 이미 그렇게 해오신 사부님께서 잘 설명해주셔서 차근 차근 배우고 있습니다. 대학교 때 학부가 MIS다 보니 ERP 얘긴 간간히 들어봤지만 이렇게 구현에 가까운 관점에서 MRP부터 시작해서 ERP 설명을 들으니까 굉장히 신선하고 머리에도 잘 들어오네요. 예전 시스템을 만드시면서 수십권의 책을 보셨다던데;; 그저 놀라울 따름입니다. 제가 ERP 전문가가 될 수도 없을 뿐더러 그렇게 되고 싶지도 않지만, 현업에서 요구하는 것이 무엇인지 파악할 수 있을 정도의 기본 지식은 갖춰야겠습니다.

EDI, MPS, BOM, MRP, PO, ASN, Production, Transaction, WMS, JIT, JIS, ... @.@ 에구 머리야..

신고
top

TAG Alabama, ERP,

스프링 프레임워크 3.0 M1 배포~

Spring/etc : 2008.12.08 22:19


참조: http://blog.springsource.com/2008/12/05/spring-framework-30-m1-released/
  • revised project layout and build system with module-based sources
  • updated entire codebase for Java 5 code style (generics, varargs)
  • updated to JUnit 4.5 and JRuby 1.1
  • introduced Spring EL parser (org.springframework.expression package)
  • introduced support for #{…} expressions in bean definitions
  • introduced expression-enabled @Value annotation for embedded expressions
  • introduced @PathVariable annotation for URI template handling in MVC handlers
  • introduced default value support for @RequestParam in MVC handlers
  • introduced @RequestHeader annotation for HTTP header access in MVC handlers
  • introduced AbstractAtomFeedView and AbstractRssFeedView base classes
  • introduced <spring:url> and <spring:param> JSP tags

오늘 발표 됐습니다. 소스 코드 저장소가 SVN으로 바꼈고 구조도 바꼈습니다. spring.jar는 더이상 관리하지 않기 때문인지 전부 세부 프로젝트로 바꼈네요. 소스 코드를 받아봐야겠습니다.

엄청 기능 추가가 있는데 바로 EL 기능 추가 입니다. 이걸 XML 이나 애노테이션 속성 값 부분에 사용해서 특정 value또는 메소드를 실행한 결과 값을 설정할 수 있습니다.

또 웹 쪽에도 중요 기능이 추가됐습니다. @PathVariable을 사용해서 REST 스타일의 URL 템플릿을 사용할 수 있습니다. 또한 @RequestHeader를 이용해서 헤더 정보에 바로 접근할 수 있습니다. 굳이 HttpServletRequest변수를 사용해서 꺼내는 코드를 작성하여 Servlet API에 의존하지 않아도 된다는 겁니다. 나중엔 쿠키나 세션도 지원해줄 것 같습니다. RSS 뷰도 주 개가 추가되었습니다. JSON 뷰는 보이지 않는 군요. 그것도 추가해준댔는데.. 그리고 jsp 태그 두 개가 추가됐습니다. 뭔지는 잘 몰겠습니다.


신고
top


스프링 + OSGi(스프링 DM) 개발 필독 레퍼런스 3종 세트

Spring DM/etc : 2008.12.08 14:13


스프링 DM 레퍼런스: http://static.springframework.org/osgi/docs/current/reference/html/
스프링 DM 서버 사용자 가이드: http://static.springsource.com/projects/dm-server/1.0.x/user-guide/html/index.html
스프링 DM 서버 개발자 가이드: http://static.springsource.com/projects/dm-server/1.0.x/programmer-guide/html/index.html

맨 위에껀 제가 번역/편역 해서 올린적이 있는데 지금은 또 많이 바껴서 다시 봐야겠고, 아래 두 문서도 분량이 얼마 되지 않으니 금방 읽어 보실 수 있습니다. 나머지 두 문서도 한글화를 할까 생각해봤는데 그럴 여유가 없더군요. 나중에 시간이 되면 블로그에 간단 요약 정도는 가능할지도 모르겠습니다.

읽는 순서는 일단 DM 레퍼런스를 보시는게 좋겠구요. 그 다음은 별로 순서가 필요없을 것 같습니다. 서버 사용법이 궁금하면 사용자 가이드를 보고, 개발할 때 dm 서버가 어떤 도움을 주는지 궁금하시다면 개발자 가이드를 보시면 됩니다. 개발자는 당연히 두 개 다 봐야겠죠? ㅋ

스프링을 사용하여 OSGi 개발이 상당히 편리해지고 있지만, 역시 핵심은 모듈화를 어떻게 할 것인가 인데.. 이건 삽질을 좀 해봐야겠습니다.

어찌됐든, dm 서버로 인해서 한층 OSGi 개발이 편리해진 것 같습니다. 손수 타겟 플랫폼 만들지 않아도 되고, 로깅 걱정 안 해도 되고, 에러 분석도 해주고, 배포 방법 다양하고, PAR 패키징 지원해서 여러 번들을 애플리케이션 별로 구분 할 수도 있고, 이클립스에서 편하게 사용할 수도 있으니 말이죠.

전 이제 자야겠습니다. 한국은 오후 2시 일텐데;;
신고
top


Word Cloud 만들어보기

Good Tools : 2008.12.08 05:14


http://www.wordle.net/
위 사이트에서 간단하게 만들어 볼 수 있습니다.

직접 키워드를 입력할 수도 있고 블로그 주소나 RSS 피드 URL을 주면 알아서 만들어 주기도 합니다. 일일히 입력해 보긴 귀찮아서 사부님 블로그랑 제 블로그 RSS로 해봤습니다.

\"사용자

사용자 삽입 이미지

딱 보면 어떤게 누구껀지 알 수 있겠죠? 한글이 깨지시는 분들은 Font를 바꿔보세요. 그럼 잘 나올겁니다.
신고
top


미국 Alabama에 있는 햄버거 가게와 서점



오늘은 아침에 일어나서 머물고 있는 호텔(모텔?)의 실내 수영장에서 놀다가 책을 조금 보고 점심에는 햄버거를 먹고 서점 구경을 하다 왔습니다.

햄버거 주문 방식이 좀 낯설었습니다. 햄버거를 하나 선택하고 그 다음에 얹을 토핑을 주루룩 불러줘야 하는데 저같은 귀차니스트한텐 그닥.. 편하지 않은 시스템이었습니다. 역시나 오늘도 놀란건. 양!! 뭐가 이렇게 많은지.. 땅콩 무한 리필, 감자 튀김은 사부님이랑 둘이서 먹는데도 잘 안 줄어들더군요. @.@ 컵에 담겨있는게 다겠거니.. 했는데 왠걸.. 담다가 넘친것들이 종이 봉지 바닦에 쌓여있었습니다.

그렇게 먹고 서점에 가서 구경하고 놀았습니다. 인상깊었던 건 잡지가 정말 다양하고 많았다는 겁니다. 컴퓨터 관련 잡지도 굉장히 다양했는데 그 중에서도 Apple의 제품과 관련된 잡지만 한 대 여섯개가 보였습니다. 비스타도 한 권 있엇습니다. WOW 잡지도 있고.. 정말 다양하더군요. 아 그리고 만화책도 많았는데 만화책을 한국처럼 비닐로 포장 해두지도 않고 그냥 볼 수도 있게 열어 뒀더군요. 물론 그렇게 해놨어도 아무도 작정하고 서서 보고 있거나 앉아서 책을 보고 있진 않았습니다.

너무 배가 불러서 오늘 저녁은 대충 어제 사온 걸로 때우자고 하셨는데 과연~~ 사부님이 저녁을 잘 버틸 수 있을지..


신고
top


저는 이제 Alabama에 왔습니다.



LA랑 마이애미같은 대도시를 벗어나 회사일로 Alabama에 왔습니다. Atlanta 공항에서 차로 세 시간을 달려왔습니다. 차도는 굉장히 깨끗하고 길 주변은 온통 나무 밖에 없었습니다. 공기가 엄청 좋고 멋졌습니다.

도착하자마자 먹거리를 사러 마트에 갔습니다. 한국에서 못 본 여러 가지가 있더군요. 모든지 종류가 굉장히 다양하고 큽니다. 다양한 건 좋은데 크기가 큰 건 좀 부담스럽더군요. 이걸 언제 다 먹나~~

그렇게 하루가 저물었습니다.



신고

'모하니? > 그냥 놀아' 카테고리의 다른 글

보드 타고 왔어요  (2) 2008.12.21
아 드디어 집에 도착...  (2) 2008.12.13
와우;; 완전 맛있는 스테이크  (2) 2008.12.10
Alabama에 돼지갈비 립  (3) 2008.12.09
미국 Alabama에 있는 햄버거 가게와 서점  (4) 2008.12.07
저는 이제 Alabama에 왔습니다.  (0) 2008.12.07
LA에서 보낸 하루(?)  (6) 2008.12.01
지금은 공항이에요  (8) 2008.11.30
LA, 마이애미, 아틀란타 날씨  (0) 2008.11.28
회사 이사 중  (2) 2008.11.21
개발자들의 수다 후기  (0) 2008.11.09
top


Holub on Pattern 좋은데요~

Design Pattern : 2008.12.07 03:27


사용자 삽입 이미지

수영장에서 놀다가 5대 원칙 부분만 읽어봤는데 아주 맘에 듭니다.

SRP: 단일 책임 원칙. 클래스 하나는 한 가지 책임만 지녀야 한다.

DIP: 의존성 관계 역전 원칙. 구체 클래스가 아닌 추상 클래스 또는 인터페이스에 의존할 것.

ISP: 인터페이스 분리 원칙. 세세한 인터페이스가 큰 한 덩어리 인터페이스보다 좋다.

LSP: 리스코프 대체 원칙. 상속 제대로 할 것.

OCP: Open-Closed 원칙.

무엇보다 번역이 정말 세심하게 되어 있는 것 같습니다. 간혹 독자가 긴 단락을 이해하지 못할까봐 역자 분의 요약도 볼 수 있는데 이 부분이 저한텐 많이 도움이 됩니다. 책 내용에 집중해서 좀 더 빠르게 읽게 도와준달까요.

책이 절판되서 없어지기 전에 장만 해 두시는 건 어떨까 싶습니다. :)
신고

'Design Pattern' 카테고리의 다른 글

[OOAD] 객체지향 원칙 1. SRP  (2) 2010.05.07
[Tell, Don't Ask] 물어보지 말고 시켜라  (8) 2010.04.07
Visitor 패턴  (2) 2010.03.12
Holub on Pattern 좋은데요~  (4) 2008.12.07
프로토타입 패턴(Prototype Pattern)  (2) 2008.10.31
데코레이터(Decorator) 패턴  (0) 2008.10.01
프록시(Proxy) 패턴  (0) 2008.09.26
JUnit 공부하자.  (0) 2008.09.01
H.F.OOAD 5장 문제  (0) 2007.11.20
상위 클래스 보다는 인터페이스를...  (4) 2007.08.31
Singletons and lazy loading  (2) 2007.01.27
top


Grails(is Spring) 시작하기

Grails : 2008.12.05 13:08


0. 일단 http://www.grails.org/Home 여기로 가서 홈피 구경을 합니다.

1. 다운로드하러 갑니다. 이때 주의 할 건 맨 위에 보이는 1.0.4가 아니라 1.1.0 베타1을 받습니다.

2. 압축을 풀고 Grails 홉 디렉터리를 GRAILS_HOME으로 환경변수에 추가하고 PATH에는 GRAILS_HOME/bin을 추가해줍니다.

3. 콘솔에서 grails help를 입력해 봅니다.

=> 화면에 뭔가 잘 뜨면 Grilas 준비 끝 납니다. 이젠 이클립스를 조금 준비해 줍니다.

4. 이클립스를 켜고 Groovy 플러그인을 받아서 설치합니다. http://dist.codehaus.org/groovy/distributions/update/ 업데이트 사이트를 이용할 수 있습니다.

5. Preference -> Java -> Build Path -> Classpath Component인가(?) 에 new 를 클릭하고 GRAILS_HOME 환경 변수를 등록해 줍니다.

=> 이클립스 준비 끝. 이젠 Grails 퀵스타트를 보면서 프로젝트를 하나 만들어 봅니다.

6. grails create-app 프로젝트이름

7. 이클립스에서 import ->  Existing Project ... 로 프로젝트 로딩(Grails 프로젝트는 만들 때 기본으로 이클립스에서 인식할 수 있는 프로젝트로 만들어 줌)

8. grails create-domain-class 도메인이름

9. 이클립스에서 프로젝트 리로딩(F5)

10. 도메인 클래스에 필요한 속성 추가

11. grails generate-all

12. grails run-app

13. 브라우저에 http://localhost:8080/프로젝트이름/도메인이름/list 입력

14. 환호성.. 오오오~~~~!!!

코드가 Groovy라서 자바 코드 활용도 간단하고 코딩 스타일도 (자바 스타일이랑 거의 똑같이 해도 제대로 동작하지만) 좀 더 간결해지고 무엇보다.. 스크립트 언어 장점을 그대로 활용할 수 있다는거.. 이 말은 서버 재시작 없이 애플리케이션 변경하면 그 변경 사항이 그대로 적용된다는거... 아드리안 콜리어가 보여준 데모의 아주 일부를 해 봤습니다.

아드리안이 보여준 데모는 이 데모 전에 스프링 인티그레이션을 보여주고 위의 데모 뒤에 위 애플리케이션이랑 스프링 인티그레이션으로 만든 애플리케이션을 연동하고, 마지막으로 grails war를 사용해서 스프링 dm 서버에 설치하는 것 까지 보여줬습니다.

바램이 있다면, Grails에서 스프링 DM 개발을 빨리 지원해주면 좋겠습니다. grails bundle 같은 명령어로 쉽게 OSGi 번들로 패키징 해주면 좋겠습니다. 이런 플러긴을 만들 수 있는지 살펴보고 없으면 제가 만들어서 스프링소스에 제공해도 되겠네요. 흠~ 해볼까나~
신고

'Grails' 카테고리의 다른 글

Grails(is Spring) 시작하기  (2) 2008.12.05
top







티스토리 툴바