2012. 11. 1. 11:10

애자일 선언




애자일 선언을 위키백과와 애자일 선언 홈페이지의 내용을 참고하여 번역해 올립니다.

http://en.wikipedia.org/wiki/Agile_Manifesto
http://agilemanifesto.org/

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

애자일 선언은 애자일 소프트웨어 개발의 토대를 강화하는 원칙을 발표한 것이다. 초안은 2001년 2월 11일에서 13일까지 유타의 워새치산맥에 있는 스노우버드 스키 리조트 라운지에서 만들어졌다. 여기에서 기존의 무거운 방법론보다 가벼운 대체방법론들의 필요성에 대해 토의하고자 Extreme Programming, Scrum, DSDM, AdaptiveSoftware Development, Crystal, Feature Driven Development, Pragmaticprogramming 같은 다양한 새 방법론의 대표자들이 만났다.

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

Manifesto for Agile Software Development
애자일 소프트웨어 개발에 대한 선언


We are uncovering better ways of developing software by doing it and helping others do it.
우리는 소프트웨어를 개발하는 더 나은 방법을, 직접 실천하고 다른 이들을 도우면서 밝혀내고 있다.

Through this work we have come to value:
이 작업을 하는 동안 우리는 다음을 가치있게 여기게 되었다.

    Individuals and interactions over processes and tools 
    프로세스나 도구에 앞서 개인과 상호 작용을 
    Working software over comprehensive documentation
    포괄적인 문서화에 앞서 작동하는 소프트웨어를

    Customer collaboration over contract negotiation
    계약 협상에 앞서 고객과의 협력을 

    Responding to change over following a plan
    계획 준수에 앞서 변화에 대한 대응을

That is, while there is value in the items on the right, we value the items on the left more.
우리는 왼쪽 항목의 가치를 인정하면서도 오른쪽 항목을 더 중요하게 여긴다.

Kent Beck, Mike Beedle, Arie van Bennekum,
Alistair Cockburn, Ward Cunningham, Martin Fowler,
James Grenning, Jim Highsmith, Andrew Hunt,
Ron Jeffries, Jon Kern, Brian Marick,
Robert C. Martin, Steve Mellor, Ken Schwaber,
Jeff Sutherland, Dave Thomas


-----------------------------------------------------------------------------------
Principles behind the Agile Manifesto
애자일 선언의 배경 원칙들


We follow these principles:
우리는 다음 원칙들을 따른다:

Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
가치있는 소프트웨어를 조기에 그리고 지속적으로 인도해 고객을 만족시키는 것을 가장 우선으로 여긴다.

Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.
개발 후반이라고 해도 요구사항의 변경을 환영한다. 애자일 프로세스는 변경을 고객의 경쟁적 우위 요인으로 삼는다.

Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
작동하는 소프트웨어를 수 주에서 수 개월의 주기로 자주, 가능한 더 짧은 기간에 인도한다.

Business people and developers must work together daily throughout the project.
프로젝트 기간 내내 업무 전문가와 개발자가 매일 함께 일해야 한다. 

Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
동기부여된 개인을 중심으로 프로젝트를 구축하라. 그들에게 필요한 환경과 지원을 제공하고 업무를 완수할 것으로 믿어라.

The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
개발팀에게 그리고 팀 내에서 
정보를 전파하는 가장 효율적이고도 효과적인 방법은 얼굴을 직접 보고 대화하는 것이다.

Working software is the primary measure of progress. 
작동하는 소프트웨어가 진도를 측정하는 제 1 척도이다.

Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. 
애자일 프로세스는 지속할 수 있는 개발을 장려한다. 후원자들과 개발자들과 사용자들은 일정한 보폭을 끝까지 유지할 수 있어야 한다.

Continuous attention to technical excellence and good design enhances agility.
기술적 탁월함과 좋은 설계에 대한 끊임없는 관심은 기민성을 강화한다.

Simplicity--the art of maximizing the amount of work not done--is essential.
단순함, 안 해도 되는 일은 최대한 안 하게 하는 기교, 이것이 핵심이다. 

The best architectures, requirements, and designs emerge from self-organizing teams.
최고의 아키텍쳐와 요구사항과 설계는 자기 조직화된 팀에서 나온다.

At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
팀은 정기적으로 더 효과적으로 일할 수 있는 방법을 숙고하고 그에 따라 자신의 행동을 조율하고 수정한다.

2012. 10. 30. 13:42

Maven Integration for Eclipse




메이븐을 이용해서 웹프로젝트는 사용할 수 있도록 해보겠습니다.

아직까지도 불편하기만 하지만.. 쩝..

http://eclipse.org/m2e/



Eclipse Indigo(3.7)와 JDK 1.6 으로 설치 해보겠습니다.


아래 두개의 사이트에서 업데이르를 받습니다.

Maven Integration for Eclipse Update Site : http://m2eclipse.sonatype.org/sites/m2e/

Maven Integration for Eclipse Extras Update Site : http://m2eclipse.sonatype.org/sites/m2e-extras/



Maven Intergration for Eclipse WTP 플러그인이 웹 어플을 만들 수 있게 해주는 플러그인 입니다.



플러그인이 둘 다 설치되면 이클립스를 재시작 합니다.

이제 이클립스에서 메이븐 프로젝트를 생성할 수 있습니다.




위와 같은 경고 메세지가 보이면 eclipse.ini 파일에 jdk 위치를 직접 지정합니다.

(경로는 각자 다르니 알아서.. -_-+)

  1. -startup
  2. plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
  3. --launcher.library
  4. plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.100.v20110502
  5. -product
  6. org.eclipse.epp.package.jee.product
  7. -vm
  8. C:\Program Files\Java\jdk1.6.0_27\bin\javaw.exe
  9. --launcher.defaultAction
  10. openFile
  11. --launcher.XXMaxPermSize
  12. 256M
  13. -showsplash
  14. org.eclipse.platform
  15. --launcher.XXMaxPermSize
  16. 256m
  17. --launcher.defaultAction
  18. openFile
  19. -vmargs
  20. -Dosgi.requiredJavaVersion=1.5
  21. -Xms40m
  22. -Xmx512m


이제 웹프로젝트를 만들어서 테스트 해봅시다~

File - New - Other... (Ctrl + N)

Maven Porject 를 선택합니다.


그냥 Next 클릭.



"maven-archetype-webapp" Archetype 을 선택합니다.



Group Id 와 Artifact Id(프로젝트명)를  적습니다.



아래와 같이 프로젝트가 만들어졌습니다.



평소 이클립스에서 하듯이 서버에 배치하고 실행해보면 페이지가 나오는 것을 확인할 수 있습니다.




JDK 버전 맞추기

그나마 우리가 쓰던대로 하려면 아주 조금 더 설정을 해줘야합니다. -_-;;;

만약 JDK 1.6 이상을 쓴다면 아래와 같이 경고가 나는 것을 확인할 수 있습니다.

Description Resource Path Location Type
Build path specifies execution environment J2SE-1.5. There are no JREs installed in the workspace that are strictly compatible with this environment.  first-maven  Build path JRE System Library Problem


메이븐 프로젝트는 기본적으로 Java 1.5를 사용하게 설정되어 있네요.

프로젝트에서 마우스 오른쪽 버튼 클릭 - Properties (Alt + Enter) 선택해서 프로젝트 설정으로 들어갑니다.

Java 를 1.6 으로 변경합니다.





Project Explorer 정렬 문제

프로젝트 생성 후에 작업을 하다보면 웹 파일쪽의 뭔가 이상합니다. -_-;;

폴더 a-z , 파일 a-z 였던 정렬이 뒤엉켜 버립니다. ㅠ_ㅠ


그나마 쓸 수 있는 방법은 아래와 같습니다.

Project Explorer 오른쪽의 View Menu(아래쪽 세모)를 클릭 - Customize View 선택.


JavaScript Elements, Web Resources, Resources 를 체크 해제합니다.


이제는 제대로 보이네요 ㅎㅎ




Java Resource 설정

이제 자바 파일을 생성해 보겠습니다.

근데 이상하게 나옵니다 -_-;; 그냥 파일로 인식이 되네요...


수정해봅시다. ㅠㅠ

프로젝트 설정으로 갑니다.

Java Build Path 부분에서 Source 탭으로 이동합니다.

기존에 있던 폴더를 삭제 후 다시 폴더를 추가합니다.


src/main/reources 를 선택합니다.



OK 버튼을 클릭합니다.


이제야 제대로 보이네요 ㅎㅎㅎ




메이븐을 사용하는 가장 큰 이유인 pom.xml 을 이용한 라이브러리 자동 세팅(?)을 이용하기 m2eclipse 플러그인을 설치했습니다.

한발치 떨어져서 보면 열라 좋아 보이지만 막상 쓸려고하니까 기존 Dynamic Web Project 에 익숙해져서 인지 불편하네요..

그나마 두번째 플러그인(WTP를 위한 플러그인)이 없었을 때는 더 불편했었죠... ㅠㅠ

설치 후에 버그(?)들 쉽게 해결할 수 있는 방법 아시는분~

2012. 10. 30. 13:40

ArtifactDescriptorException: Failed to read artifact descriptor for xxx




aven 프로젝트 체크아웃 시 다음과 같은 에러에 직면할 수 있다.

ArtifactDescriptorException: Failed to read artifact descriptor for org.apache.commons:com.springsource.org.apache.commons.logging:jar:1.1.1: ArtifactResolutionException: Failure to transfer org.apache.commons:com.springsource.org.apache.commons.logging:pom:1.1.1 from http://repository.springsource.com/maven/bundles/release was cached in the local repository, resolution will not be reattempted until the update interval of com.springsource.repository.bundles.release has elapsed or updates are forced. Original error: Could not transfer artifact org.apache.commons:com.springsource.org.apache.commons.logging:pom:1.1.1 from/to com.springsource.repository.bundles.release (http://repository.springsource.com/maven/bundles/release): No route to host to http://repository.springsource.com/maven/bundles/release/org/apache/commons/com.springsource.org.apache.commons.logging/1.1.1/com.springsource.org.apache.commons.logging-1.1.1.pom    pom.xml    /spring.test    line 1    Maven Dependency Problem

이 경우 다음과 같이 한다.

Maven -> Update Dependencies

다음을 체크하고, OK 버튼을 클릭한다.

Force Update of Snapshots/Releases

혹시 왜 이런 문제가 발생하는지 아시는 분이 있다면,

코멘트 부탁드립니다 :-)