2012/02/04 01:38

https://market.android.com/details?id=kr.netcrew.android.gyeongjubus


0.1 버전 설명

0.1 버전은 시험용 버전으로서 단순히 버스노선번호를 입력 받아 금아버스그룹 홈페이지에서 조회 한 후 금아버스그룹 홈페이지 내 시간표를 그대로 출력하는 기능만 가지고 있습니다.


참고사항

- 3G나, wi-fi 등으로 인터넷이 가능 해야 사용가능합니다.

- 금아버스그룹 홈페이지에 접속이 되지 않는 인터넷 환경이거나 금아버스그룹 홈페이지가 변경 되거나 서버 주소 변경 등 문제가 있으면 사용 불가능합니다.

- 제 개인임시서버에서 금아버스그룹 자료 접근을 거치게 되므로 제 서버가 작동하지 않아도 사용 불가능합니다.


차후 버전 예정 사항

- 노선번호 목록 및 간략한 정보가 나오고 노선 선택 후 금아고속 자료를 볼 수 있도록 수정.

- 버스노선 즐겨찾기 기능


차후 발생되는 문제점이나 개선사항이 있으면

http://www.dearmai.net 이나 dearmai@netcrew.kr 로 메일 부탁드립니다.

저작자 표시 비영리 동일 조건 변경 허락

Posted by DearMai
2012/02/02 23:37

요즘 Struts 기반으로 게시판 하나를 제작 하는 중인데 SWFUpload 를 연동해서 다중 업로드를 구현하는데 있어서 파일 업로드가 제데로 되지 않는 문제가 발생 했다.

처음 구현 된것은 apache common-fileupload 를 이용해서 구현하였는데 작은 용량의 파일
대략 5메가 이하의 파일들을 테스트 했을 때 파일 업로드를 인식을 못하였다. 그 이상 파일들은 문제 없이 업로드가 가능했고..

무슨 문제 일까 싶어서 TCP 패킷 캡쳐 프로그램들을 동원해서 HTTP 헤더들도 보았지만 아무런 다른점이 없었다..ㅠㅠ

그러다 oreilly cos 에 multipartrequest 를 이용해서 구현 하였는데 


Corrupt form data: premature ending


이런 에러메세지를 발견하였다.

알고보니 Struts2 도 연동되어있었는데 Struts가 파일 업로드를 인터셉트 해서 Inputstream 을 사용을 한 후라 업로드가 문제가 있었던 것 이었다..

큰 사이즈만 업로드가 되었던 이유도 Struts 2에서 기본설정으로 2메가 이하(제 기억엔 말입니다~) 파일들만 업로드 가능 하도록 되어있어서..


그후 web,xml 파일을 수정해 struts 가 업로드때 인터셉트 못하도록 매핑을 수정 하였더니 문제가 해결되었다.


하지만 근본적인 문제는 Struts 에서 업로드를 구현해야하는데.. 이건 차후에 해야겠다 ㅠ_ㅠ


참고 페이지
http://www.okjsp.pe.kr/seq/143631
http://www.aboutjsp.com/spring/board/viewArticle.do?boardId=JSPQNA&boardSeq=8

저작자 표시 비영리 동일 조건 변경 허락

Posted by DearMai
2012/01/18 23:56

UCloud BIZ 홈페이지에 공개되 있던 문서 이다.

SSH, FTP 등 무작위로 로그인 시도 하는 Bruteforce Attack 에 대해 대응 하는 유틸리티.
설정에 따라서 몇회 실패 시 잠시간 차단(iptables 기반) 할 수 있어서 꽤 유용하게 쓰일 것 같다.

문서는 CentOS 기준이지만 우분투에서도 apt-get install fail2ban 이라고 하면 똑같이 설치 하고 동일하게 설정 할 수 있으므로 문제 없다.

문서가 잘 작성되있으니 따로 설명은 하지 않아도 될 것이다.



저작자 표시 비영리 동일 조건 변경 허락

Posted by DearMai
2012/01/14 20:31

패딩

http://www.11st.co.kr/product/SellerProductDetail.tmall?method=getSellerProductDetail&prdNo=317907824&alpha2=TV9JRD1kZWFybWFp&U1RZUEU9TUFTUw==&TElTVF9UQUJMRT1FTVNfTUFTU19TRU5EX0xJU1RfMDE=&UE9TVF9JRD0yMDEyMDExMjAwMDAz&VEM9MjAxMjAxMTk=&S0lORD1D&Q0lEPTAwOQ==


니트 티

http://www.11st.co.kr/product/SellerProductDetail.tmall?method=getSellerProductDetail&prdNo=268336826&alpha2=TV9JRD1kZWFybWFp&U1RZUEU9TUFTUw==&TElTVF9UQUJMRT1FTVNfTUFTU19TRU5EX0xJU1RfMDE=&UE9TVF9JRD0yMDEyMDExMjAwMDAz&VEM9MjAxMjAxMTk=&S0lORD1D&Q0lEPTA1Mw==

저작자 표시 비영리 동일 조건 변경 허락
Posted by DearMai
2012/01/05 05:31

지금 개발 하고 있는 사이트에서 tiles랑 sitemesh 중에 뭘 쓸까 고민하다 구글 트렌드 검색을 해보았다.


전 세계 기준으론 tiles 가 점유율이 월등 하나(비교가 안될 정도로) 유독 국내를 포함한 아시아 권은 sitemesh 가 점유율이 높다.
너무 극심한 차이 때문에 뭘 기준으로 해야할지 난감 하다 ㅠㅠ

다시 보니.. tiles 가 apache tiles 로 되지 않고 다른의미인 tiles 인거 같은데..
아직 apache tiles 는 그래프 낼 데이터가 없다고 하네;;
그렇다면 sitemesh 결정.

저작자 표시 비영리 동일 조건 변경 허락

Posted by DearMai
2012/01/04 00:15

경주버스 어플을 다운받으시기 위해 찾아오신분들에게 알림 

http://blog.dearmai.net/2460054

일단 간단하게 나마 어플을 만들었습니다. 앞으로 업데이트를 할 것 이니 자주 확인 해주시기 부탁드립니다.

지금 경주버스 안드로이드 어플을 개발 할려는 중이다.


검색해보니 지금 마켓에 경주버스 어플이 하나 올라와있는데 지금 가지고있는 안드로이드 기기가 갤탭 와이파이 버전이라 해당 어플이 다운이 안된다 ㅠㅠ
따로 가지고 있는 모토쿼티는 다운이 가능한데 지금 여자친구가 쓰고있어서..ㅠㅠ
스크린샷으로 대충 확인해보니 전체 노선이 아니라 제한적인 노선 정보가 있는것 같고 실시간 버스 위치가 표현되고 있는 것은 같은데 어찌 구현된것인지..; 
지금 경주엔 BIS 시스템이 없는 걸로 아는데.. 그냥 출도착 시간 가지고 대략적으로 계산한 것일까?
또 스크린샷에 공개된 버스 번호를 보니 아무래도 나랑 같은 동국대 학생인것 같은 느낌이..

일단 노트에 해야할것들을 구체적으로 정리 해봐야 겠다.


저작자 표시 비영리 동일 조건 변경 허락

Posted by DearMai
2012/01/01 20:37

직접 갤럭시탭을 루팅 하기 위해서 찾아 본 강좌들을 정리한 내용입니다.
자세한 설명대신 대략적인 순서 정도로 적어 놓을 것이며,
이글을 읽고 발생한 모든 문제점은 글을 읽고 계신 방문자 본인에게 있습니다.
잘못 진행하거나 상황에 따라서 기기가 벽돌 상태로 될 수 있습니다.

(추가 사항으로 사용된 모델은 진저브레드로 업데이트된 상태입니다.
ed28이 진저브레드 업데이트후 적용된 커널인것 같긴하나 제가 정확히 알아보지 않았기에 2.2 프로요 사용자분들은 안되실 수도 있습니다.)

작업을 이 게시물을 보면서 진행하지 마시고 먼저 글을 다 읽어 보신 후 이해가 되신 후에 시작 하시는게 기기를 벽돌로 만들 확률을 최소로 줄일 수 있습니다.
먼저 정독 하시고 작업을 시작하시길 권해드립니다.

그리고 갤럭시탭 7인치 wi-fi버전 에서 실행 한 것입니다. 다른 버전(SKT, KT(Wibro), LG U+ 등)에서는 정상적으로 되지 않을 수도 있습니다. 그리고 적용대상 커널은 TF23, TI08 입니다. 이외 커널은 시도해보지 않았으며 이외 커널로 시도 해보시고 싶으면 먼저 해당 커널 부터 구하셔야 합니다.(TF23, TI08 커널을 아래에 있습니다.)


  1. 준비물

     Odin , ed28커널, 기기에 맞는 커널, 슈퍼원클릭(Superonclick)


  2. 자신의 커널 버전 알아보기
    환경설정 > 디바이스 정보 > 빌드 번호
    를 보시면 GINGERBREAD.TF23 을 찾으실수 있습니다.

    이 기기는 TF23 커널이기 때문에 위에 m180w.tf23.kernel.tar 파일을 사용합니다. 다른 버전 사용하시는분은 다른 커널을 구하셔서 이용하셔야합니다.(ti08 은 위에 준비 되어 있습니다.)

  3. 설정-응용프로그램-알수 없는 소스 허용
    위 메뉴에 들어가셔서 알수 없는 소스 허용을 해주셔야 합니다.  

  4. 갤럭시탭 다운로드 모드로 가기
    먼저 컴퓨터와 탭간에 USB 연결이 되어 있어야 합니다.
    그리고 작업하는동안 KIES 는 종료되어있어야 합니다. 

    먼저 갤럭시 탭을 종료 한뒤
    다시 전원을 키셔야 하는데 켤때 다운로드 모드로 들어가야 하므로
    볼륨 다운 카+전원키 를 눌러 다운로드 모드로 진입합니다.
    (볼륨 다운 키를 먼저 누르고 전원 버튼을 누르시고 켜지는 화면이 나올 때 까지 계속 누르시고 계셔야합니다. 2,3초정도)


    다음과 같은 화면을 볼 수 있으면 다운로드 모드로 진입 한 것입니다.
    (이 모드는 한번더 들어가야 하므로 방법을 숙지하세요.)

  5. 오딘으로 커널 변경 작업
    오딘을 실행하면 다음화면을 확인 할 수 있습니다.


    위와 같이 ID:COM 부분에 노란색으로 현재 탭이랑 연결되어 있음을 확인 할 수 있습니다.

    화면 우측에서 PDA 버튼을 누른 후 m180w.ed08.kernel.tar 파일을 선택 하여 줍니다.


    그리고 Start 버튼을 눌러 커널 변경 작업을 시작합니다.
    이때 완료되면 재부팅하면서 삼성 로고가 나오면서 무한 로딩(부팅이 진행안됨)이 되는데 당황하지마세요. 정상적인 과정에서 나오는 현상입니다.



    위와 같은 화면이 나오면서 갤럭시탭이 재부팅 되면 완료 된것입니다.
    (완료 되는데 까지 저의 경우 10초도 채 안걸리게 소요된것 같습니다.)
    다시한번 말씀드리지만 갤럭시 탭이 재부팅 되면서 삼성 로고 화면에서 무한 로딩(부팅이 더이상 진행되지 않음) 상태가 되는게 정상입니다. 당황하지마세요.

  6. 슈퍼원클릭 작업(삼성로고로 무한부팅이 진행되는상태)
    이때에도 갤럭시탭과 컴퓨터간에 USB로 계속 연결이 되어있어야 합니다.
    위에서 다운받은 슈퍼원클릭을 실행합니다.

    만약 이과정에서 슈퍼원클릭 에서 기기가 인식되지 않는 다면 다음 내용들을 확인해 보세요.

    1. 작업하고 있는 컴퓨터에 USB 드라이버가 설치 되어 있는지 확인하세요.(보통은 Kies 가 설치되어 있으면 설치 되어 있습니다. 물론 Kies 랑 최소한 한번이상의 연결을 해주어야 하구요.)
    - 하지만 USB 드라이버가 설치 되어 있지 않았다면 이전 단계도 진행이 되지 않았을 겁니다..

    2. 설정-응용프로그램-알수 없는 소스 에 허용되어 있는지 확인하세요.

    3. USB허브나 컴퓨터 케이스 앞쪽 USB 포트를 이용하시지 말고 케이스 후면에 있는 메인보드와 직접 연결되는 USB 포트를 사용하시고 해보세요.
    시스템 환경에 따라서 메인보드와 직접연결되지 않은 케이스 앞면 확장 USB 포트나 USB 허브를 통할때는 안정성이 떨어져서 인식안되는 경우가 가끔 발생합니다.
    (제 경우는 갤럭시탭에선 USB허브를 이용해도 문제없었는데 예전 노키아 이용시 그런문제가 가끔있었습니다.)
    또 USB 허브 이용시 전원이 약한 문제가 있을 수도 있으니 같은허브에 USB 기기들을 다 제거 하시고 하시거나 전원 어댑터를 연결할 수 있는 모델이면 외부 전원을 따로 연결하고 해보세요.

    4. 다시 순정 커널로 돌린 이후에 다시 ed08로 변경 해보고 시도해보시고 계속 그러신다면 다른 방법을 찾으셔야 할것 같습니다.

  7. 그후 첫번째 ROOT 버튼을 눌러 루팅을 진행합니다. 
    (저의 경우 약 10초 정도 진행된것으로 기억합니다.)
  8. 위 화면 과 같이 나오면 루팅이 완료된 것입니다.
  9. 마무리 작업
    이제 루팅이 완료 되었으므로 현재 무한 부팅 상태를 풀어줄 차례가 왔습니다.
    전원 키를 길게(약5초~10초 정도) 눌러 갤럭시 탭을 강제 종료해줍니다.
    그후 위에 방법 데로 다운로드 모드로 다시 진입합니다.
    위 방법과 똑같이 진행 하는데 커널을 ed08이 아닌 본래 상태인 tf23 을 선택 해서 진행합니다.
    그렇게 진행이 완료되면 정상적으로 부팅이 되고 어플 목록에서 Superuser 어플이 보이는것을 확인 할 수 있습니다.


이로서 갤럭시탭 7인치 wi-fi 버전(GalaxyTab 7 wi-fi / SHW-M180W)의 루팅 작업이 완료되었습니다.

루팅을 복구 하실려면 ed08 커널로 다시 바꾸신후 슈퍼원클릭 에서 Unroot 로 진행한뒤 다시 커널 복구 하는 순으로 진행하시면됩니다.
루팅을 복구 하실려면 위와 동일하게 하는 대신 슈퍼원클릭 부분에서 Root 이 아닌 Unroot 으로 진행 하시면 됩니다.



저작자 표시 비영리 동일 조건 변경 허락
Posted by DearMai
2011/12/07 00:27

이번 이야기는 Trac on Windows, Subclipse, Mylyn 의 후속편 입니다.

TOW 와 Mylyn 을 사용한 프로젝트의 관리는 장점들이 많지만, 아무래도 늘 상 서버를 켜놓아야 한다는 부담이 있기 때문에 선뜻 사용하기가 어렵습니다. 그리고, 이동성의 문제나 소스코드 공유나 배포의 문제점도 있죠.

   

그래서, 오늘은 특별한 개인 서버 없이 사용할 수 있는 Google Code Project Hosting 을 사용해서 프로젝트를 관리하고, 또 Mylyn 으로 내부적인 task 들을 관리하는 방법들을 이야기해 보겠습니다.

   

참고로 여기에 나오는 내용들은 기본적으로 eclipse 나 subclipse, svn, mylyn 이 뭔지 아는 분들을 대상으로 합니다.

   

Google Code Project 에 Project 만들기

http://code.google.com/hosting/ 에 들어가셔서 자신의 google 아이디로 로그인을 일단 합니다.

   

(아... 참고로 google code project hosting 은 오픈소스 프로젝트들을 지원할 목적으로 만들어진 녀석인지라 모든 소스코드가 공개되게 됩니다. 그게 싫다면 사용하지 않는게 좋습니다.)

   

하일라이트 된 "Create a new project" 를 누릅니다.

   

그럼 이런 화면이 나오게 되는데요. project name 은 domain 으로 사용되기 때문에 소문자로 써주도록 합니다. Summary 나 Description 역시 적절히 써주고, 이제 아래쪽에 license 를 선택해 줍니다.

   

오픈소스 라이센스들이 나옵니다. 라이센스에 대해서는 적절히 찾아서 써줍니다.

   

혹은 이렇게 CCL 로 사용해줄수도 있습니다. 뭐 오픈소스 라이브러리를 배포할 생각이 아니라면 딱히 자세하게 기록할 필요는 없지만요.

   

뭐 프로젝트를 만들었으면 상단의 Profile 을 누르면 위처럼 이동을 하게 됩니다. Project Ownership 은 자신이 운영하는 Project 의 리스트를 보여주는거구요.

   

그 옆의 tab 인 Settings 를 누르면 위와 같은 화면이 나오는데요. 저기 보이는 "Your googlecode.com password" 가 중요합니다. (개인비밀번호라서 가렸습니다) SVN 의 비밀번호가 되거든요. 구글코드의 비밀번호는 개인이 지정할 수 없고, 자동으로 생성되는 8자리 난수를 비밀번호로 사용하게 됩니다. 비밀번호를 교체해야 할때는 아래 보이는 Regenerate 를 눌러서 바꿔주면 됩니다.

   

프로젝트 사이트 접속하기

아까전 만든 project site 로 이동해보도록 하겠습니다. 아까전 만들었던 프로젝트의 project name 이 ssen-test-project 였었죠.

   

도메인은 http://code.google.com/p/ssen-test-project/ 가 됩니다. 하지만... 쓰잘데기 없는 쓰레기 프로젝트를 만들기 싫었는지라 최종적으로 프로젝트 생성 버튼은 안눌렀기 때문에 링크를 따라 들어가도 프로젝트는 없습니다.

   

예제를 개인 프로젝트로 보여드리죠. 최초 인덱스 페이지는 위처럼 나오게 됩니다.

   

Updates 를 누르면 위와 같은 화면이 나오게 되는데요. 이 화면에서는 wiki 나 svn 의 update 현황을 보여줍니다. 예를 들어 저 r2 라는 릴리즈 링크를 누르면

   

이렇게 릴리즈 별로 수정된 파일들의 리스트가 나오게 되고, 소스파일들의 경우 어떤 부분이 어떻게 수정되었는지의 분석이 나오게 됩니다.

   

Downloads 의 경우엔 배포할 파일을 등록하는건데, 아직 작업중인지라 등록한게 없네요. action script library 를 만들어서 배포할 생각이라면 swc 파일을 등록해주면 되겠죠. 그 옆에 wiki 가 있고 (wiki 가 뭔지는 다들 아시겠죠...;;;) Issues 의 경우엔 버그리포팅등을 받거나 할 수 있는건데... 딱히 사용할만하지는 않습니다.

   

이제 Source 에 가면 위와 같은 화면이 나오는데요. 여기서 Browse 는

   

이렇게 소스코드를 보여주고

   

Changes 는 이렇게 커밋 이력을 보여주게 됩니다.

   

그리고, 이 https 로 시작하는 url 이 이제 SVN 의 주소가 됩니다.

   

Subclipse 에서 SVN check out 받기

subclipse 에서 이렇게 새로 Repository Location 을 새로 등록해 줍니다.

   

등록해줄 주소는 아까전에 https 로 시작하는 주소를 입력해주면 됩니다. Finish 를 누르면 아이디/비밀번호를 물어보게 되는데 아이디는 자신의 구글 아이디를 입력하고, 비밀번호는 아까전에 봤던 자동으로 생성되는 비밀번호를 입력해줍니다.

   

뭐 그러면 SVN Repositories 에 위와 같이 나올텐데요. 여기서

   

trunk 에 오른클릭을 한 다음에 check out 을 받습니다.

   

check out 을 받다보면 이렇게 내려받을 소스들을 어떤 project 로 만들지를 결정하게 됩니다. 대충해서 내려받도록 합니다.

   

그러면 이렇게 Project Explorer 에 check out 받은 것들이 나오게 되는데요. 맨처음에 해줘야 할 일은

   

filters 를 선택해서

   

.* 의 filter 를 풀어주고

   

아무런 .* 에 해당하는 파일들 (.project 같은류의 이클립스 프로젝트 구성 파일들) 을 선택해서 오른클릭 한 다음

   

이렇게 Team > Add to svn:ignore 를 해주도록 합니다.

   

제외패턴에 .* 을 추가해주면 SVN 이 취급할 파일들에 쓰잘데기 없는 이클립스 설정파일들은 제외되게 됩니다. 이걸 해주지 않으면 쓸데없는 파일들까지 커밋이 되어서 매우 지저분한 svn 저장소가 되겠죠.

   

그리고, 위에 보이는 build.ant 처럼 노출되어선 안되는 파일, 폴더 들의 경우 역시 제외패턴에 등록해줘야 합니다. 특히 ant 에 ftp upload build 등을 만들어뒀다면 정보유출 가능성도 있기 때문에 조심해야겠죠. (google code search 로 검색하다보면 ftp 비밀번호 확 드러난 애들 꽤 있거든요...;;;)

   

여기까지 작업이 되었다면 이제 평범하게 SVN 을 사용하듯 해주면 됩니다.

   

Mylyn 을 사용해서 Local Repository Task 관리하기

mylyn 을 사용하면 기본적으로 이렇게 Local Task Repository 가 주어지게 됩니다. Trac 이나 Bugzilla, JIRA 와 같은 외부 서버를 사용하는 Task Repository 가 아닌, Eclipse 내부적으로 사용하는 것이지요. 당연히 Trac 이나 Bugzilla 와 같이 고급화된 기능은 제공해주지 못하지만 혼자서 작업하는 경우엔 그럭저럭 쓸만한 편입니다. 무엇보다 서버없이 Trac 과 같은 Task 관리를 사용할 수 있다는게 장점이지요.

   

mylyn 의 local repository 는 trac 처럼 로드맵, 버전같은 분류를 지원해주지 않습니다. 그래서 이렇게 분류가 필요한 task 들을 묶을 category 를 만들어서 관리해주는 것이 좋습니다. 저기 보이는 ssen library 0.1 이란 버전 카테고리를 만들어서 사용하는 것처럼요.

   

그리고, 새로운 task 를 만들때는 위에 보이는 new task 버튼을 눌러서 만들어줍니다.

   

task 를 새로 만들어서 이렇게 써줍니다. 일단 기본적으로 제목과 작업우선순위 (Priority) 를 지정해줍니다. Status 는 Incomplete (작업 미완료) 와 Complete (작업 완료) 를 지정해주게 됩니다. 그 아랫쪽으로 작업에 대한 스케쥴 계획을 지정할 수 있는데요. 필요하다면 Due date 등을 지정해주면 좋습니다.

   

그렇게 이것저것 task 들을 만들어주면 이렇게 리스트가 보여지게 되는데요. 앞쪽의 아이콘 표시를 보면 알겠다시피 Priority 와 Complete 에 대한 상황을 표시해주게 됩니다. 완료 목록의 경우 strike 처리가 되어서 보이게 되죠.

   

Mylyn 의 Task Activation 사용해서 작업하기

마지막으로 Mylyn 의 task activation 을 살펴보도록 하죠.

   

task 리스트의 앞쪽을 보면 저렇게 동그라미 표시들이 있는데요. 위에 채워져서 보이는 동그라미 (폰트가 bold 처리된 녀석) 은 현재 작업 활성화가 되어있다는 뜻입니다.

   

일단 간단한 시나리오를 보여드리자면

   

이렇게 Activation 을 클릭해서 바꿔주게 되면

   

Eclipse 의 작업창들이 모두 닫혀지게 됩니다. 이것은 새로운 task 의 작업이 시작되었다는 것을 의미하죠.

   

그리고 이렇게 소스코드 몇개를 열어놓은 다음에

   

Activation 을 해제해 주면

   

다시 작업창들이 닫히게 됩니다.

   

그리고, 다시 Activation 을 활성화 해주면

   

이렇게 닫혔던 작업창들이 다시 열리게 됩니다.

   

즉, task 의 activation 단위로 최종 작업환경을 기억해주기 때문에 task 의 흐름대로 체계적인 작업관리를 해줄 수 있습니다. 보통 tab 을 스스로 열고, 닫고 하면서 작업하시는 분들의 경우 맨 처음엔 익숙지 않아서 당황할 수 있으나, 익숙해지면 매우 편리해지게 됩니다.

   

그리고, 이렇게 task 가 활성화된 상태에서 svn 커밋을 시도하면

   

커밋시에 이렇게 자동으로 안내 메세지가 입력되게 됩니다.

   

프로젝트를 오랫동안 진행하다보면 커밋 로그를 분석하는 것도 상당히 피곤한 일이 되는데, 이렇게 task 단위로 작업하고, task 단위로 커밋을 하다보면 자신이 어떻게 작업을 했었는지에 대해서 쉽게 쉽게 파악을 할 수 있습니다.

저작자 표시 비영리 동일 조건 변경 허락
Posted by DearMai
2011/12/07 00:25

이번 이야기는 Google Code Project, Subclipse, Mylyn 의 후속편 입니다.

Mylyn 의 connector 중에서 web template 를 라는 connector 가 있더군요. 당연히 자주 사용되어지는 Google code project 역시 사용할 수 있습니다.

   

오늘은 Mylyn 의 web template 를 사용해서 google code project hosting 의 Task 들을 eclipse 의 TaskList 로 가져오는 작업을 해보도록 하겠습니다.

   

이 내용은 당연히 SVN, Eclipse, Subclipse, Mylyn, Google code Project Hosting 에 대해 알고 계시는 분들을 대상으로 합니다.

   

Mylyn Incubator > web templates 업데이트 하기

Eclipse 의 Software Updates... 를 선택해서 업데이트 창을 띄웁니다.

   

Add Site... 를 눌러서 http://download.eclipse.org/tools/mylyn/update/incubator 를 추가해줍니다. 제 경우에는 이미 설치가 되어 있겠죠.

   

우리가 설치해야하는 web templates connector 는 위와 같습니다. 하지만, 이것만 딸랑 인스톨 하려고 하면 에러가 뜨는데요. 그럴땐 Mylyn for Eclipse 3.4 와 Mylyn Extras 들을 같이 체크해서 인스톨 받도록 합니다.

   

설치가 되면 Eclipse 를 재시작 하라는 메세지가 나옵니다. 재시작 하면 지금까지 설정해놓은 Perspective 들이 모두 초기화 되어버리는 상황이 벌어지는데요. 업데이트의 영향이니 좀 불편하더라도 다시 설정을 하시면 됩니다.

   

Google Project Hosting 의 Issue Data 들 가져오기

우선 새로운 Task Ropository 를 만듭니다.

   

위와 같이 Web Template 가 추가되어있는걸 확인할 수 있습니다. Next 를 눌러서 진행합니다.

   

보면 위와 같이 Google Code 가 있습니다. 선택하고 자신의 프로젝트에 맞게 수정을 해줍니다.

   

제 경우에는 프로젝트 아이디가 (ssen-library) 라서 위와 같이 설정을 해주었습니다. (상단의 에러표시는 같은 URL 의 저장소가 이미 존재하기 때문입니다. 신경 안써도 됩니다.)

   

저장소를 만들었으면, 이제 저장소의 내용을 가져올 새로운 쿼리를 만듭니다.

   

맨처음 쿼리를 만들면 Query URL 과 Query Pattern 이 위와 같이 되어있는데요. 그것을 아래와 같이 수정합니다.

   

Query URL : ${serverUrl}/csv

Query Pattern : "({Id}[0-9]+?)","({Type}.+?)","({Status}.+?)","({Priority}.+?)","({Milestone}.+?)","({Owner}.+?)","({Description}.+?)"\n

   

쿼리 URL 은 위에 보이는 CSV 링크의 url 이 됩니다. 해당 url 을 다운받아서 메모장으로 열어보면 아래와 같이 CSV 포맷으로 보이는데요.

   

   

Query Pattern 은 이 CSV 패턴을 해석하는 역활을 하게 됩니다. 제 경우에는 Component 를 추가적으로 오기 때문에

   

"({Id}[0-9]+?)","({Type}.+?)","({Status}.+?)","({Priority}.+?)","({Milestone}.+?)","({Component}.+?)","({Owner}.+?)","({Description}.+?)"\n

   

이렇게 설정되어있습니다.

   

뭐 하지만 유감스럽게도 web template 이 가져오는 정보는 ID, Status, Owner, Summary 뿐이기 때문에 Priority 나 Type, Milestone 같은 중요한 데이터들을 대부분 연동해서 볼 수가 없습니다. 뭐 인큐베이팅 중인 확장이라서 아직 부족한 부분이 있는게 아닐까 싶네요.

   

Google Code Project 의 Issue 관리하기

Issue 를 좀 더 편하게 사용하기 위해서는 Admin 에서 어느정도 셋팅을 해주는게 좋습니다. 뭐 별로 어려운 부분은 아니니 자세한 설명은 생략하고 그냥 스크린샷만 보여드리도록 하겠습니다.

   

   

설정한 Issue 라벨들의 경우엔 실제 이슈 생성시에

   

이렇게 작동을 하게 됩니다.

   

   

   

개인적으로 템플릿은 프로젝트 멤버 (개발자) 가 사용할 새 작업사항과 유저가 리포팅을 할 오류보고만 만들어놓았습니다. 입맛에 맞게 더 추가하면 됩니다.

   

그리고, 아랫쪽의 Default columns shown in list view 는 Label Type-XXX 의 Type 과 연동이 됩니다. 만일 여러분이 Label 에

   

Module-Core

Module-Extension

   

이라고 추가를 해놓고, 위의 리스트에 Module 을 추가시켜 놓으면

   

이 리스트 상에 Module 이 추가되어 나오는 거죠.

저작자 표시 비영리 동일 조건 변경 허락
Posted by DearMai
2011/12/07 00:06

출처 : http://unlimitedfocus.springnote.com/pages/7982220


Eclipse + Subversion Plugin

  1. Download Eclipse

    1. Download

      1. Screen_shot_2011-07-01_at_오전_12.40.43(1).pngScreen_shot_2011-07-01_at_오전_12.41.06(1).png
    2. Unzip & Execute & Select Workspace

      1. Screen_shot_2011-07-01_at_오전_12.47.51.png
    3. [Menu] -> [Help] -> [Install New Software]

      1. Screen_shot_2011-07-01_at_오전_12.53.58.png
    4. [Work with: All Available Sites]

      1. Screen_shot_2011-07-01_at_오전_12.55.13.png
    5. Select [Collaboration] -> Subversion * plugins

      1. Screen_shot_2011-07-01_at_오전_12.58.37.png
    6. Finish

      1. Screen_shot_2011-07-01_at_오전_12.59.14.png
    7. Installing & Restart

      1. Screen_shot_2011-07-01_at_오전_1.01.44.png Screen_shot_2011-07-01_at_오전_1.02.37.png
    8. Install Subversion Connector: SVN

      1. Screen_shot_2011-07-01_at_오전_1.08.37.png
    9. Next, Finish, OK

      1. Screen_shot_2011-07-01_at_오전_1.08.56.pngScreen_shot_2011-07-01_at_오전_1.09.32.png Screen_shot_2011-07-01_at_오전_1.11.57.png
  2. Running Subversion Perspective

    1. Close welcome

      1. Screen_shot_2011-07-01_at_오전_1.04.06.png
    2. Open Subversion Perspective

      1. Screen_shot_2011-07-01_at_오전_1.05.28.pngScreen_shot_2011-07-01_at_오전_1.05.44.png
    3. Setting Subversion Information

      1. URL: https://architect1.googlecode.com/svn/trunk/
      2. User: Your Google Account (xxx@gmail.com)
      3. Password: Google Project Hosting Password (Link)
      4. FinishScreen_shot_2011-07-01_at_오전_1.12.44.png
    4. Check out Project:  [ROOT] -> [trunk] -> [HTDP]

      1. Screen_shot_2011-07-01_at_오전_1.14.08.png
    5. Change Perpective: Resource

      1. Screen_shot_2011-07-01_at_오전_1.15.17.pngScreen_shot_2011-07-01_at_오전_1.36.18.png

저작자 표시 비영리 동일 조건 변경 허락
Posted by DearMai