자바로 만든 마법사 기반의 설치 프로그램을 소개하는 글이 올라왔습니다. 재밌어 보이는 글이라 소개합니다. ^^

원문 : 사람을 위한 자동화: 마법사 기반 설치 프로그램 사용하기

소프트웨어 설치는 많은 사용자에게 보통 고통스러운 일에 해당합니다. 여러분이 생성한 설치 패키지(소프트웨어 개발의 "마지막 일정")는 사용자에게 채택되거나 쓰레기통에 버려지는 갈림길에서 예전보다 나아질 수 있습니다. 이번 사람을 위한 자동화 기사에서, 자동화 전문가 Paul Duvall은 무료로 이용할 수 있는 오픈 소스 IzPack 도구를 사용하여 마법사 기반 설치 프로그램을 만들어 여러분의 소프트웨어를 사용자가 간단하게 설치할 수 있게 하는 방법을 살펴보겠습니다.

내 경험을 전반적으로 볼 때, 나는 소프트웨어 개발 전체 생명 주기에 참여해왔다. 요구 사항 도출, 설계, 개발 그리고 테스트뿐만 아니라 배포, 빌드 관리, 문서화, 설치 같은 활동에도 참여했다. 요즘 애자일을 많이 채택하면서 이 부류가 좀 더 많아졌고 일반화되었다. 하지만 내가 참여했던 애자일 프로젝트에서 효율적인 배포와 설치가 항상 최우선 과제는 아니었다. 이것이 바로 아이러니다. 잠재적인 고객이 여러분의 소프트웨어를 쉽게 사용할 수 없거나 아예 사용할 수 없다면, 여러분은 그들을 잃을 것이기 때문이다. 여러분의 소프트웨어를 간단하게 설치하는 방법을 제공하는 것은 고객을 유지하고 더 끌어오는데 정말로 중요하다.


YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST


 자동화는 관리자든, 개발자든 공통적으로 중요한 일이죠. 이번에 IBM DeveloperWorks에 "손 쉬운 데이터베이스 마이그레이션"이라는 제목의 글이 올라왔습니다. 흠... LiquiBase라는 오픈소스 소프트웨어를 이용해서 데이터베이스 변경 관리하는 법을 소개하고 있네요. 흥미로운 글입니다.

원문 : 사람을 위한 자동화: 손 쉬운 데이터베이스 마이그레이션

데이터베이스는 종종 그것을 기반으로 하는 애플리케이션과 어긋난 상태로 존재하는데, 이로 인해 데이터베이스와 데이터를 안정된 상태로 끌어내는 것은 관리에 있어서 상당한 도전 과제가 됩니다. 사람을 위한 자동화 이번 기사에서는, 자동화 전문가 Paul Duvall이 오픈 소스 LiquiBase 데이터베이스-마이그레이션 도구를 사용하여 데이터베이스와 애플리케이션의 변경 사항을 관리할 때 발생하는 고통을 줄이는 방법을 보여줄 것입니다.

수년간 내가 일했던 애플리케이션들은 대부분 다량의 데이터를 관리해야 하는 엔터프라이즈 애플리케이션이었다. 그런 프로젝트에서 일하는 개발 팀은 보통 데이터베이스를 애플리케이션과는 완전히 별개의 것으로 취급한다. 이는 때때로 데이터베이스 팀과 애플리케이션 개발 팀으로 나뉘어 있기 때문이거나, 단순하게 팀이 그런 식으로 일을 하기 때문일 것이다. 두 방법 모두 다음과 같은 결과를 초래할 수 있다.

  • 데이터베이스에 변경 사항 직접 반영하기
  • 데이터베이스 변경 사항을 다른 팀원과 공유하지 않기
  • 일관되지 않은 방법으로 데이터베이스나 데이터 변경 적용하기
  • 데이터베이스 버전을 다음 버전으로 변경하는 관리를 비효율적으로 손수 다루기

개발자들이 데이터 변경 사항을 제대로 인지하지 못한 상태로 두는 비효율적인 상황이 발생한다. 게다가, 그들은 애플리케이션 사용자가 데이터 불일치나 충돌 문제를 경험하게 할 수도 있다.

그림 1은 소프트웨어 개발 프로젝트에서 흔히 사용하는 데이터베이스에 직접 변경을 가하는 방법을 보여준다. 직접 데이터를 변경하는 방법은 불안하고 에러가 발생할 여지가 많다, 그리고 방금 한 것을 되돌리는 걸 어렵게 하며 시간 흐름에 따라 데이터베이스에 어떤 변화가 있었는지 그 히스토리를 분석하는 것도 힘들다. 예를 들어, DBA가 한 건의 조회 데이터를 변경해야 한다는 것을 기억하고 있을지 모른다. 하지만 한 개발자가 나중에 이 데이터를 같은 테이블에 넣어야 한다는 것을 깜빡할 수도 있다.


YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST




 각종 프로젝트를 진행하다보면 늘 맞닥뜨리게 되는 문제중 하나가 바로 문서화입니다. 지금 소개하려는 문서는 오픈소스 프로그램을 이용하여 어떻게 문서를 자동으로 생성할 수 있는지 알려줍니다.


원문 : 사람을 위한 자동화 : 전자동 문서화


프로젝트 문서화는 소프트웨어 제품을 내놓을 때 종종 필요악이 됩니다. 하지만 문서를 버튼 클릭 한 번으로 작성할 수 있다고 상상해 보세요. 사람을 위한 자동화 연재에서, 자동화 전문가 Paul Duvall은 오픈 소스 도구를 이용해 어떻게 UML(Unified Modeling Language), 빌드 다이어그램, ERD(Entity-relationship diagram), 그리고 심지어 사용자 문서까지 생성할 수 있는지 설명합니다.

소 프트웨어 개발 프로젝트에서 문서 쓰기를 좋아한다고 말하는 개발자를 만날 일은 별로 없다. 프로젝트를 떠나거나 늘 외로운 개발자가 되거나 사용자가 한 명도 없기를 바라지 않는 한(프로젝트에 좋은 징조는 아닐 것이다) 소프트웨어의 목적을 다른 사람들에게 알릴 반영구적인 방법이 필요하다. 애자일 선언문의 '종합적인 문서보다는 동작하는 소프트웨어'라는 문장을 문서가 필요없다는 의미로 오해하는 개발자들도 있다(참고자료). 다른 한편으로는 사용자 또는 다른 개발자들에게 불필요한 문서라는 부담을 지울 필요도 없다. 나는 행복할 수 있는 방안을 찾고 있다. 한 번 맞춰보라. 이 글에서 자동화로 프로젝트 문서를 만드는 프로세스를 합리적으로 만들고 문서 작성의 비극을 줄이는 방법을 보여줄 것이다.

본 연재에 대해

개발자로서 우리는 고객의 프로세스를 자동화하기 위해 일한다. 하지만 대부분은 우리 스스로의 개발 프로세스를 자동화할 수 있는 기회를 간과하곤 한다. 더 이상 그러지 않기 위해, 사람을 위한 자동화 연재를 기획하여 소프트웨어 개발 프로세스를 자동화하는 실용적인 사용법들과 성공적으로 자동화를 언제 어떻게 적용하는지 설명하겠다.

내 경험에 비춰봤을 때, 두 개의 핵심 문제 때문에 소프트웨어 개발 문서화가 병들고 있다. 첫 번째는 아무도 그것을 읽지 않을 것이라는 가능성 때문이다. 두 번째로 흔한 문제는 문서 작성 시기가 거의 대부분 지연된다는 것이다. 이 두 개 문제는 서로 관련이 있다. 문서가 현재 있다면 사람들은 그것을 읽으려고 했을 것이다. 문서 생성을 자동화하는 것은 그것을 항상 최신 상태로 유지함으로써 소프트웨어 사용자에게 더 유용하게 만들 수 있다.

물론 문서 작성을 자동화함으로써 다른 종류의 장점도 얻을 수 있을 것이다. 하지만 보통 고통을 유발하는 문서화 작업들을 자동화하는 방법에 초점을 맞추겠다(참고자료를 참조하여 아래 목록에 있는 도구 링크를 참조하라).

  • UMLGraph를 사용하여 현재 소스 코드를 기반으로 UML 다이어그램 생성하기
  • 스키마스파이(SchemaSpy)를 사용하여 데이터베이스에 있는 테이블과 관계들을 ERD로 생성하기
  • 그랜드(Grand)를 사용하여 앤트 빌드 타깃과 그 관계를 빌드 다이어그램으로 만들기
  • Doxygen을 사용하여 소스 코드 문서 작성하기
  • 독북(DocBook)을 사용해 사용자 문서 만들기

다음과 같은 순서로 설명할 것이다.

  1. 각각의 작업을 직접 수행할 때 생기는 이슈들을 설명한다.
  2. 아파치 앤트(Apache Ant)를 이용하여 그와 관련된 문서 또는 다이어그램 생성 도구를 사용하는 예제 코드를 보여준다.
  3. 코드 예제를 사용하여 만든, 즉 "스크립트로 생성한 문서" 이미지를 보여준다.

본 연재에서 보통 그래왔듯이, 모든 예제는 무료로 사용할 수 있으며 여러분의 프로젝트에 도입할 수 있는 오픈 소스 도구들을 사용하고 있다. 몇몇 도구(예를 들어, UMLGraph와 그랜드)는 그래프비즈(GraphViz) 같은 부가적인 도구를 사용하기도 한다. 이것은 특정 도구가 생성한 .dot 파일을 이용한다.


YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST