본문 바로가기

공부

개인용 Java 기반 프로젝트 환경 설치 - (3) BitNami Redmine 설치 1. 개요 레드마인은 PMS(Project Management System)의 한 종류로, 루비 온 레일즈(Ruby on Rails)를 기반으로 작성된 시스템이다. 레드마인은 프로젝트 관리, 일정 관리, 형상 관리 통합, 이슈 추적 등의 기능을 지원하며, 다양한 플랫폼과 데이터베이스를 지원하고 있다. 레드마인에 대한 자세한 내용은 공식 홈페이지(http://www.redmine.org/)를 통해 확인 가능하다. 공식 홈페이지 역시 Redmine로 되어있으므로, 사용 전에 미리 리뷰를 하고 싶다면, 이 사이트를 통해 기능들을 확인하면 되겠다. 개인적으로 사용하면서 Trac과 유사한 환경이여서 사용에 그다지 어려움을 느끼지 못했으며, 기능이나 디자인 면에서는 Trac보다 오히려 나은 느낌을 받았다. 다만 R.. 더보기
[Mercurial 사용법] Clone 1. Clone 개요 머큐리얼의 Clone은 저장소를 복사하는 것을 의미하며, 단순히 저장소의 "현재 상태"를 복사하는 것이 아니라, 저장소의 모든 변경 이력 등을 함께 복사하는 것을 의미한다. 머큐리얼은 모든 사용자가 자신의 저장소를 이용하여 이력을 확인할 수 있고, 유연하게 변경 사항을 Push, Pull 할 수 있다. 따라서, Clone은 여러가지 형태로 활용이 가능하다. 프로젝트를 Checkout하기 위해 Clone을 수행할 수 있다.프로그램에 실험적인 코드를 적용하기 위해 Clone을 한 후, 변경 사항을 적용하거나, 해당 코드를 버릴 수 있다. 이러한 작업을 위해 SVN은 흔히 branch를 사용하며, 머큐리얼 역시 branch 기능을 지원하긴 하지만, 머큐리얼의 Clone을 통한 branch.. 더보기
[Mercurial 사용법] Push, Pull 1. Push, Pull 개요 머큐리얼의 Push, Pull은 타 저장소로 변경 사항(changeset)을 전송하는 과정을 의미한다. Push와 Pull을 설명하기 이전에, 머큐리얼의 Revision과 Changeset의 개념에 대해 간단히 정리할 필요가 있다. Revision은 특정 시점에 저장소의 상태를 표시하는 번호이다. 이 번호는 순차적으로 올라가게 된다. changeset은 저장소의 변경 사항을 저장하는 단위이며, 하나의 changeset을 commit하거나 다른 저장소로부터 pull/update하게 되면, changeset을 받아오게 되며, Revision 번호는 하나 증가한다.Revision 번호를 changeset과 동일한 것으로 보는 경향이 있는데 이는 잘못된 것이다. 이는 머큐리얼이 각.. 더보기
[Mercurial 사용법] Mercurial로 프로젝트 공유하기 Eclipse를 통해 생성한 프로젝트를 머큐리얼을 통해 공유하는 방법을 알아본다. 1. 공유할 프로젝트 생성 Eclipse를 이용하여 공유할 프로젝트를 생성한다.이 과정은 일반적인 이클립스 프로젝트 생성 과정과 동일하므로, 별도로 언급하지 않는다. Maven 프로젝트로 생성한 프로젝트에 간단한 예제 파일을 넣어 프로젝트를 생성한다. 2. Mercurial Repository에 프로젝트 공유 프로젝트를 공유하기 위해 다음과 같은 과정을 수행한다. 프로젝트를 선택한 후, 우클릭하여 Team > Share Project를 선택표시된 창에서 Mercurial을 선택한 후, 다음 창에서 Finish를 눌러 프로젝트를 머큐리얼로 공유첫 공유 이후 commit을 수행하여 현재 프로젝트의 첫 commit을 수행 하지만.. 더보기
이클립스에 MercurialEclipse 플러그인 설치 머큐리얼을 Eclipse에서 직접 사용하기 위해서는 MercurialEclipse 플러그인을 설치해야 한다. 이 포스팅에서는 MercurialEclipse 플러그인을 설치하는 방법을 알아본다. MercurialEclipse 플러그인 홈페이지는 다음 주소(http://javaforge.com/project/HGE)에서 확인할 수 있다. 이 홈페이지에서 Download Now 버튼을 찾아 이동한 페이지에서 Eclipse Plugin 주소(http://cbes.javaforge.com/update)를 확인할 수 있다. 해당 주소를 입력하여 MercurialEclipse를 선택하고, 설치를 진행한다. (주: codeBeamer를 함께 설치했으며, Eclipse는 전자정부표준프레임워크 2.5를 사용했으나, 설치시.. 더보기
개인용 Java 기반 프로젝트 환경 설치 - (2) Mercurial 설치 및 설정 1. Mercurial 설치 개요 머큐리얼은 대표적인 DVCS(Distributed Version Control System) 중 하나다. 머큐리얼에 대한 설명은 내 블로그에 이미 정리된 포스트(http://silencer.tistory.com/57)가 있으므로, 생략한다. 현재까지 내가 머큐리얼을 사용하면서 직접적으로 느낀 장점과 단점은 아래와 같다. 장점빠른 커밋로컬 저장소에 이력을 저장하므로, 커밋이 빠르다. 로컬 저장소에 커밋이 빠르다는 점은, 그만큼 '커밋을 하는데 부담이 적다'라는 장점을 가질 수 있고, 이는 사용자가 변경사항에 대해 더 자주 커밋을 할 수 있도록 해준다. 단, 이 커밋은 중앙 저장소로의 커밋과는 다르다. 머큐리얼은 중앙 저장소로의 동기화를 위해 pull, push 라는 명령을.. 더보기
개인용 Java 기반 프로젝트 환경 설치 - (1) 개요 1. 개요 평소 예제 프로그램 등을 작성하기 위해 사용하는 저장소가 여기 저기 분산되어 있는 상황(노트북, 컴퓨터, 회사 노트북 등등)인지라, 이를 통합할 필요성을 매번 느껴왔었다. 현재 집에서 사용하는 인터넷 공유기는 IPTIME 공유기로, 포트 트리거, WOL(Wake On Lan) 등의 기능을 충분히 지원하고 있다. (이전에도 마찬가지였지만, 요즘 공유기는 적어도 기능면에서는 왠만한 VPN 장비와 거의 동일한 기능을 지원하는 것 같다... ㅎㅎ) 게다가 개별 공유기에 사설 ip를 설정할 수 있는 기능을 지원하므로, 외부 IP가 변경된다해도 개발 서버로 사용하기에는 기능적으로 충분하다. 잠시 인터넷에서 라즈베리파이라는 저가 PC(라고 표현해야할 지 모르겠으나 마땅히 표현할 단어가 생각나지 않는다.)를.. 더보기
[서적 핵심 정리 - 토비의 스프링 3] Ch1. 오브젝트와 의존 관계 관심사의 분리 (Separation of Concerns)관심이 같은 것끼리 하나의 객체 또는 친한 객체로 모음관심이 다른 것은 가능한 따로 떨어져서 서로 영향을 주지 않도록 분리즉, 객체지향 설계의 기본 원칙인 High Cohesion, Low Coupling과 동일한 의미 리팩토링 (Refactoring)기존의 코드를 외부의 동작 방식에 변화 없이 내부 구조를 변경해서 재구성하는 작업 또는 기술을 의미 템플릿 메소드 패턴 (Templete Method Pattern)변하지 않는 기능을 슈퍼 클래스에 정의하고, 확장할 기능을 서브클래스에서 상속하여 정의하게 한다. 확장할 메소드를 템플릿 메소드라고 하며, 아래와 같은 방법으로 정의할 수 있다.추상 메소드 (abstract method) 훅 메소드 (ho.. 더보기
[서적 핵심 정리] 토비의 스프링 개요 책을 구입한지 어언... 1년이 되어가는 것 같다... 그동안 이런 핑계, 저런 핑계로 책을 읽지 못했다... 그 중 가장 큰 이유는 아마도 나약한 내 정신력과그냥 되는 대로 살자 식의 인생과의 합의? 물론, Spring 관련된 교육을 일부 받긴 했지만...일단 현재 종사 분야가 그리 Spring을 접할 만한 기회가 없기에 많은 부분을 까먹은 것 같다. 다시 공부를 시작할 겸해서책에 있는 예제들이나 중요 개념을 내 나름대로 정리할 예정이다. 책에 있는 것만 따라하는 건 그리 좋은 방법이 아닌 것 같다.내 나름대로 진행하면서 그동안 공부했던 다른 툴이나 기술을 활용하여예제를 완성해나가는 것도 나름 재미있을 것 같다. 일단... 꾸준히 한번 시작해보자... 더보기
Redmine 개요 참고 사이트 #1 : http://trac.tistory.com/ 아직 TOW(Trac On Windows) 관련 유입 키워드가 많은 상황에서 공식 홈페이지에서 이야기하는대로 TOW에 대한 추후 업데이트는 지원이 중단 간만에 이슈 트랙킹 시스템을 사내에서 사용하려던 나에겐 청천벽력 같은 소리였는데...다행히도 공식 사이트에서 이에 대한 대안을 제시하고 있음 참고 사이트 #2 : http://bitnami.org/ 이 사이트에서 Redmine(뿐만 아니라 다양한 Open Source 어플리케이션) 설치 패키지를 지원하고 있음 Redmine은 기본적으로 Ruby On Rails 를 이용하여 개발되었다고 하며Ruby On Rails라는 언어는 웹 개발에 있어서 생산성이 특히 뛰어난 언어로 알려져 있다. (위의.. 더보기