Whiteship's Note


OpenSprout Nexus 이용하여 스프링 3.0 라이브러리 추가하기

OSAF : 2009.04.13 10:11


참조:
Spring 3.0 (4) - Maven에서 Spring 3.0 최신버전 사용하기
Spring3.0 (5) - 스프링 모듈의 의존관계
Maven의 version range를 사용할 때 주의할 점

일단 사부님이 관리 중인 OpenSprout Nexus를 메이븐 settings.xml나 프로젝트의 pom.xml에 등록해 주세요.

<repository> 
    <id>spring-latest</id> 
    <name>Spring Latest by OpenSprout</name> 
    <url>http://www.opensprout.org/nexus/content/repositories/spring-latest</url> 
</repository> 

다음으로 스프링 번들 리파지토리도 등록해주세요.

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

이제 준비는 끝났습니다. 본격적으로 스프링 3.0 라이브러리를 추가하면 됩니다. 추가하는 방법은 두 가지가 있을 수 있습니다. 모든 라이브러리를 직관적으로 명시해주는 방법과 추이적 종속성을 이용하여 반드시 명시해야 할 것만 명시하는 방법이 있습니다.

사용자 삽입 이미지
원본 이미지: http://toby.epril.com/?p=598

사부님이 그린 그림을 보면 빨간색 박스로 표시한 라이브러리만 추가하면 파란색으로 칠한 모든 라이브러리를 추이적으로 가져올 거라는 것을 알 수 있습니다. 따라서.. pom.xml에 다음과 같이 설정하면 스프링 라이브러리 중에 필요한 것은 대부분 가져옵니다.

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>org.springframework.web.servlet</artifactId>
            <version>[3.0.0.BUILD-00000000000000,9.9.9.BUILD]</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>org.springframework.aspects</artifactId>
            <version>[3.0.0.BUILD-00000000000000,9.9.9.BUILD]</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>org.springframework.orm</artifactId>
            <version>[3.0.0.BUILD-00000000000000,9.9.9.BUILD]</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>org.springframework.test</artifactId>
            <version>[3.0.0.BUILD-00000000000000,9.9.9.BUILD]</version>
        </dependency>

버전 범위 표시를 저렇게 한 이유는 세 번째 참조 글에서 확인할 수 있습니다.

이렇게 해서 가져온 라이브러리들을 M2Eclipse 플러긴의 Dependency Graph 또는 Dependency Hierarchy로 확인할 수 있습니다.

사용자 삽입 이미지
사용자 삽입 이미지

스프링 3.0이 어떤 제 3 라이브러리(어떤 버전을) 사용하는지 궁금하다면

http://spreadsheets.google.com/pub?key=ppDRa3Yit-05zS2cqWYFlNA

사부님이 작성하신 위 문서를 참조하시면 됩니다.

나이스!! 이제는 드디어 스프링 3.0 개발을 시작합니다~
top

  1. choonguri 2009.09.29 16:48 PERM. MOD/DEL REPLY

    감사히 잘 보고있습니다.^^
    from 항상 얻어만 가는 이..

    Favicon of http://whiteship.me BlogIcon 기선 2009.09.29 17:54 PERM MOD/DEL

    넵~

Write a comment.


SpringSource DM Server 이클립스 플러긴

Good Tools : 2008.11.10 14:47


참조 : http://static.springsource.com/projects/dm-server/1.0.x/programmer-guide/html/ch08.html

스프링소스의 프로젝트를 보면 신생 프로젝트들인데도 문서화가 정말 잘 하고 있는게 신기합니다. 전부 개발자들일 텐데(그 중에서 아는 이름은 Rob Harrop밖에 없지만) 개발 하랴 문서화 하랴 정말 대단합니다.

그건 그렇고 SpringSource DM Server(S2DS)를 이클립스에서 실행하려면 간단한 플러그인 설치가 필요합니다.

이클립스 업데이트 사이트: http://static.springsource.com/projects/sts-dm-server/update/

위 주소를 이용해서 플러그인을 설치하고 Server 뷰에서 New Server를 선택하면 다음과 같이 S2DS를 선택할 수 있습니다. 동영상에 보니까 프로젝트를 드래그 앤 드랍 하면 해당 번들을 설치해주던데.. 아직 해보진 않았습니다.ㅋㅋ



물론 저 서버를 생성하려면 OpenSprout에서 배포한. 혹은 자신이 직접 소스 코드에서 빌드한 S2DS 홈 디렉토리를 설정해 줘야 합니다.


서버 탭 구성이나 내용이 Tomcat 서버와는 좀 달랐습니다.


한 번 돌려봤는데 잘 동작합니다.



top

Write a comment.


S2DS(SpringSource DM Server) build by OpenSprout 1.0.0

OSAF : 2008.11.09 23:47


스프링소스의 정책이 바껴서 커뮤니티 버전은 직접 빌드를 해야합니다. S2DS라는 멋진 툴 한 번 돌려 보시려면 얼마나 귀찮으세요. Ant로 빌드해야 되는데, readme.txt도 안 읽어보면 어디가서 빌드해야 되는지도 잘 모르겠고, 잘 찾아가서 ant를 실행한다고 해도 OutOfMemory라도 만나는 날에는 정말이지.. 아휴~.

그래서 저희 OpenSprout에서는 다운로드 후 바로 실행해 볼 수 있는 S2DS를 제공하고 있습니다. 빌드하기 귀찮으신 분들에게 이 보다 더 좋은 서비스는 없을 겁니다. 그냥 한 번 빌드해서 실행보려고 해도 갑작스런 에러때문에 당황스러울 수 있는데요. 그런 에러까지 이미 제가 마루타 삼아 겪어보고 빌드했기 때문에 믿고 사용할 수 있는 배포판입니다.

OpenSprout 빌드 서비스. S2DS뿐 아니라, 앞으로 SpringSource 모든 제품을 빌드해서 제공해 드리겠습니다. 완전 사랑스럽죠? 헤헷

다운받고 -> 압축풀고 -> bin/start.sh 실행 -> localhost:8080 접속.

사용자 삽입 이미지

짝짝짝짝짝짝..

다운로드
top

  1. Favicon of https://helols.tistory.com BlogIcon is윤군 2008.11.10 09:31 신고 PERM. MOD/DEL REPLY

    짝짝짝짝짝짝 ㅋㅋㅋㅋ
    마루타;; 바쁜데요;;ㅋ

    Favicon of http://whiteship.me BlogIcon 기선 2008.11.10 14:27 PERM MOD/DEL

    재밌어서 하는건데요 뭐.ㅋㅋ

  2. Favicon of http://seal.tistory.com BlogIcon 물개 2008.11.10 14:05 PERM. MOD/DEL REPLY

    완전 사랑스럽삼~

    Favicon of http://whiteship.me BlogIcon 기선 2008.11.10 14:27 PERM MOD/DEL

    넹 ㅎㅎㅎ

Write a comment.


OpenSprout IRC 서버로 오세요.

OSAF : 2008.10.28 09:50


원문: http://www.opensprout.org/wiki/pages/viewpage.action?pageId=2162739

Introduction

OpenSprout에서 발표한 OSAF 프레임워크나 Spring에 대해서 질문이나 의견 나누실 분들 또는 다른 개발자들과 이런 저런 채팅을 원하시는 분들은 언제든 환영합니다. IRC서버 운영이 생전 처음이라 미흡한 점이 있을 것 같아 일단 KSUG분들을 중심으로 시범 운영해보려고 합니다.

How-to

IRC 클라이언트 설치

mirc같은 상용 제품도 있지만, 파이어폭스 플러긴 Chatzilla를 이용할 수도 있습니다. 파이어폭스 기준으로 설명하겠습니다.

  • 도구 -> 부가기능 클릭
  • 전체검색 탭 클릭
  • irc로 검색
  • chatzilla 설치 및 파폭 재시작.

Chatzilla 설정하기

위에서 Chatzilla를 설치했다면, 이제 도구 -> Chatzilla 메뉴가 생겼을 겁니다. Chatzilla를 이용해서 클라이언트 프로그램을 실행하면 조그만 창이 뜹니다.

일단 설정 화면(ChatZilla -> Preference)에 들어가서 인코딩 설정을 해줍니다.

부가적으로 Gloval 탭의 중간쯤에 알람 설정을 할 수도 있습니다. 다른 사용자가 메시지를 입력했는지 알고 싶다면 해당 탭에서 beep 또는 wav 파일 위치를 설정하면 됩니다.

이제 채팅하기

/server www.opensprout.org

이렇게 OpenSprout IRC 서버로 접속합니다. 접속이 되면,

/list

list 명령어로 현재 개설된 채널을 확인할 수 있습니다. OSAF 채널은 항상 열려있습니다. 따라서,

/join OSAF

이렇게 OSAF 채널로 들어오시면 됩니다.


top

Write a comment.


Thank you. Atlassian!!

Good Tools : 2008.09.17 16:36


아뜰라시안한테 오픈소스 라이선스를 받았습니다. 꺄오~ Confluence, Jira, Bamboo, Clover. Crucible을 마음껏 이용할 수 있게 됐네요. 캬캬캬. 개인용은 언제나 공짜였지만, 사용자를 딱 2명으로 제한해둬서 정말 개인밖에 못 썼는데, 오픈소스 라이선스는 사용자가 무제한입니다.

OpenSprout를 공개할 날도 얼마 남지 않았네요. 이제 기반은 다 마련됐고, 코드랑, 예제까지 준비해뒀지만, 커스텀 태그 전면 교체 작업이 남아 있어서 좀 시간이 걸리 것 같습니다. :)
top

  1. Favicon of http://yunsunghan.tistory.com BlogIcon Max 2008.09.18 18:11 PERM. MOD/DEL REPLY

    OpenSprout 빨리 공개해 주세요...
    기대 잔뜩! 입니다. :)

    Favicon of https://whiteship.tistory.com BlogIcon 기선 2008.09.18 21:08 신고 PERM MOD/DEL

    네.ㅋㅋ 커스텀 태그만 마무리 되면 공개할 생각입니다.

Write a comment.


새싹(OpenSprout)이 꿈꾸는 Agile 개발

Good Tools : 2008.09.08 23:05


이전에도 어디부터 개발을 해야 하는건지 고민한적이 있었는데, 좀 전에 박재성님께서 그와 비슷한 글을 올려주셔서 새삼 기억이 났습니다.

그래서 요즘 꿈꾸고 있는 초고속 개발에 대해 그려볼까 합니다. 개발 과정은 단순합니다.

1. 도메인 클래스 작성.
2. 코드 생성(한 방에 DAO, Service, Controller + 기타 Context 클래스들(validator, param, ref, 덩덩,)까지..+ 뷰)
3. 세부 조정.

끝 입니다. RoR의 스캐폴드 정도로 생각하시면 될 것 같습니다. 물론 확장성도 고려해서 코드 생성을 해주는 겁니다. 스프링, 하이버네이트를 사용해서 이런 초고속 개발을 뒷받침할 프레임워크를 공개할 생각입니다. 하지만.. 저정도 초고속 개발을 하려면, 프레임워크 혼자서는 안 될 겁니다.

고도의 확장성을 고려하여 설계한 코드 생성 로직이 프레임워크에 담겨있어야 하고, 화면 코드도 커스텀 태그를 적극 활용해서 화면 구성요소를 모두 JSF 정도로 컴포넌트화 해야 합니다. 코드 생성을 지원할 이클립스 플러그인 같은 툴도 필요하며, 메이븐 아키타입으로 프로젝트 기초 틀을 제공하면... ㅎㅎ. 이 정도가 새싹이 꿈꾸는 목표라고 할 수 있겠습니다.

물론 Generic을 기반으로 생성한 코드에는 분명 한계가 있겠습니다. Generic 하지 않은 것들은 손수 개발을 해야 할 겁니다. 그럴 때는 기존 방식대로, 도메인 -> JSP -> 컨트롤러 -> 서비스 -> DAO 순으로 내려가든.. 도메인 -> DAO -> Service -> Controller -> JSP 순으로 올라가든 중간 중간 듬성 듬성 하든 개인이 편한대로 개발을 하면 될 것입니다.

지금 이 순간 "하지만 이것도 어느정도 규모가 작아서 정말 피자 두 판 이내의 조직일 때야 가능하지, 규모가 커서 규율로 정해야 하면..." 이라고 생각하고 계신가요. 아마도 이런 생각은 주로 아키텍트인 분들이 하시겠죠.

맞을 겁니다. 규모가 커지면 일을 어떻게 나눴는가에 따라 많이 달라질 것 같습니다. 일을 나누는 것 자체도 복잡할 것 같습니다. 작업 덩어리를 크게 쪼개면 개인 부담이 크고, 그렇다고 일 덩어리를 너무 잘게 쪼개도, SVN 같이 중앙 집중식 SCM을 쓰면 코드가 전부 충돌나서 짜증이 이만 저만이 아닐거라는 상상이 됩니다.(물론 실제로는 제 상상 이상이겠지만..) 작업 나누기 말고도 수 많은 리스크와 이슈들이 존재하겠죠.

하지만, 하지만.. 그렇게 복잡하고 규모가 큰 시스템에도 분명 위와 같은 새싹은 도움이 될 겁니다. 일단 기본 CRUD와 기본 화면을 불과 몇 초만에 생성해내면, 그 만큼 작업 부담이 줄어들고, 복잡한 비즈니스 로직이나 워크 프로우를 개발하는데 더 많은 시간을 투자할 수 있습니다. 그만큼 특정 영역에 집중해서 프로젝트 성공률을 높일 수 있을 겁니다.

실제로 이전 개발 프로젝트에서 OSAF(OpenSprout Application Framework)와 UI 컴포넌트를 사용해서 기본 CRUD 코드를 코드젠 없이 수동으로 도메인 클래스당 DAO, Service, Controller, add.jsp, update.jsp, grid.jsp, search.jsp를 5분만에 생성할 수 있었습니다. 그 뒤에 세세한 조정을 거쳐서 새로운 메뉴 하나(검색, 뷰, 가끔 Ajax 폼 검색, 비즈니스 로직 추가. 테스트.. 덩덩)를 완성하는데 2시간 정도면 충분했습니다. 물론 손수 작업한 부분 중에 코드젠을 적용해서 자동화 시킬 만한 부분들이 충분히 더 있었습니다. 가령, 검색 조건 같은거 말이죠. 이런걸 코드젠 할 때 선택할 수 있는 팝업이 뜨거나 설정파일로 주면 검색 조건 추가하는 3번. 세부 조정 작업중 일부도 자동화 할 수 있습니다.

가까운 미래에는 뭔가 더 달라질꺼라 생각합니다. 작년말부터 올해 초까지 잠깐 소문으로 무성했던 ROO도 그렇고.. 맨땅에서 DAO, Service, Controller를 생성하는 날은 이제 슬슬 끝나가고 있다고 생각합니다. 맨날 똑같은 클래스 상속 받아서 만들고, 비슷한 메소드 추가하고(add()나 insert()를 쓰지 않는 도메인이 얼마나 될까요.).. 이런 작업도 전부 중복으로.. 개발자가 개발에 질리게 만드는 것 중에 하나일 겁니다.

새싹이. OpenSprout가, 여러분을 고통없는 새로운 미래로 안내하겠습니다. 크하하하 낚시 글이 되버렸네요. 좋은 밤 되세요. ㅋㅋ

사용자 삽입 이미지

top

  1. Favicon of http://swjang.tistory.com BlogIcon 장성욱 2008.09.09 11:20 PERM. MOD/DEL REPLY

    좋은 아이디어로 하시는 일에 열정을 식힐까 코멘트하기가 두렵네요...
    RoR을 알고 있는데 grails 를 모르는거 같아 글 남기고 갑니다.
    "바퀴를 다시 발명해야할 필요가 없는 이유에서"

    Favicon of http://whiteship.me BlogIcon 기선 2008.09.09 11:56 PERM MOD/DEL

    넹. Grails. ;)

  2. 자바지기 2008.09.09 13:44 PERM. MOD/DEL REPLY

    소스 생성에 대해서 저 또한 관심이 많아서 이전에 개발했던게 있는데요. 최근에 드는 생각이 정말 소스 코드를 자동 생성하는 것이 맞을까하는 생각이 듭니다.

    조만간 제 생각도 정리해서 올려보도록 할께요. Open Sprout 기대하겠습니다.

    Favicon of http://whiteship.tistory.com BlogIcon 기선 2008.09.09 13:48 PERM MOD/DEL

    넵.. 자동화 할 수 있는 부분은 전부 자동화 하려는 취지에서 코드 생성을 활용할 생각입니다.

    자바지기님은 어떤 생각을 하고 계신지 벌써부터 궁금해지네요. :)

    히힛 새싹 열심히 만들어야겠네요.

  3. 대한민국토리 2008.09.19 15:16 PERM. MOD/DEL REPLY

    자동화 부분에 대해서 최근에 XML을 XSLT와 ANT를 이용해서 자바소스로 만들어 보려는 노력을 해봤었는데요, 막상 하다가 막히니까 이게 꼭 필요한건지 의문이 되더라구요.

    더 "편한 개발"이 목적아니라, 편한 개발 방법을 통해서 "보편적"이 되는게 처음 제가 생각한 취지였거든요.

    OpenSpout 화이팅입니다. 기대할께요.^^

    Favicon of https://whiteship.tistory.com BlogIcon 기선 2008.09.19 16:02 신고 PERM MOD/DEL

    넵. 헤헷 아직 갈길이 멀지만, 차근 차근 하다보면 언젠간 위의 목표를 이룰 수 있을 것 같습니다. :)

Write a comment.