오늘은 이클립스에 subclipse를 설치하여 팀 프로젝트를 효율적으로 하는 방법을 배워보겠다.

팀 작업을 효율적으로 하기 위해서는 svn이라는 버전 관리 시스템이 사용된다. 이를 사용하면 업데이트한 시간별로 프로젝트를 관리할 수 있고, 동시 작업을 할 때 각자 맡은 부분을 작성한 다음 merge기능을 이용해 합쳐줄 수도 있다.
그러면 먼저 svn을 다운받아보자.

http://subversion.tigris.org/가 svn을 제공해주는 공식 홈페이지이다.
여기에서 svn을 다운받을 수 있는데 우리는 이클립스에서 작업을 진행할 것이므로 eclipse버전의 svn을 다운받아야 한다.
홈페이지의 아래쪽으로 내려보면 아래 그림과 같은 메뉴를 볼 수 있을 것이다.



위의 메뉴를 발견했으면 Eclipse를 누르자. 그러면 Subclipse라는 페이지로 넘어가게 되는데 여기에서 Download and Install을 클릭하자.




이제 다운로드 페이지에서 최신 버전의 Eclipse update site URL을 복사해야한다. 현재 최신 버전은 1.6.x이므로 이 주소를 복사하자. (여기에서 zip파일을 다운받는 것이 아니라 이클립스의 URL을 이용한 업데이트를 할 것이므로 site URL을 복사하는 것이다.)



Eclipse update site URL : http://subclipse.tigris.org/update_1.6.x
이 주소를 복사했으면 이클립스를 켜고  Help - Install New Software... 을 클릭하자.
Add버튼을 누르고 Name과 Location란에 복사한 링크를 붙여넣자.
그러고 나면 Install목록에 아래 그림과 같이 3개가 생길 것이다. 모두 체크하고 Next버튼을 눌러서 설치하자.




소프트웨어 인스톨이 다 끝나고 나면 이클립스를 재시작하고 이클립스의 오른쪽 상단을 보자.



>>버튼을 눌러서 SVN Repository Exploring을 누르자. (만약 >>버튼을 눌러서 나오지 않는다면
버튼을 눌러서 나오는 메뉴 중에 SVN Repository Exploring이 있는지 보자. 있으면 클릭하고 없으면 Other...을 클릭해서 보면 SVN Repository Exploring이 있을 것이다. Other...을 눌러서도 없다면 svn설치가 제대로 되지 않은 것이다.)

위의 과정을 잘 따라왔다면 아래 그림과 같이 왼쪽편에 SVN Repositories창이 생긴다.



SVN Repositories창 안에서 오른 클릭하여 New - Repository Location... 을 누르자.
그러면 아래 그림과 같이 저장소의 위치를 입력하는 창이 뜬다. 여기에서 자신이 사용할 저장소의 주소를 넣으면 되는 것이다.


여기에서는 구글 프로젝트에서 제공해주는 저장소를 사용하고 있다. 하지만 개인적으로 다른 곳에 svn서버가 있어서 그것을 이용하는 것도 괜찮다.

다음 포스팅에서는 구글 프로젝트에서 어떻게 저장소를 만들고 사용하는지는 알아보도록 하자.
반응형
Posted by 컴투
프로그래밍/Java2010. 4. 6. 10:09

Static

자바에서 static으로 선언하면 해당 메서드나 변수는 정적이된다. 만약 클래스의 변수를 static으로 선언하게 되면 그 변수는 객체의 변수가 되는 것이 아니라 클래스의 변수가 된다. 클래스의 변수이기 때문에 어떤 객체라도 동일한 주소의 변수를 참조하게 된다.

static의 특징

  • 객체를 생성해도 static 변수는 메모리에 하나만 생성된다.
  • 다른 JVM에서는 선언을 하면 다른 주소나 다른 값을 참조하지만 같은 JVM이나 WAS 인스턴스에서는 같은 주소와 같은 값을 참조한다.
  • CG의 대상도 되지 않는다.
  • 지역변수에 static을 사용할 수 없다. (매서드 안에서 사용 불가능)

만약에 properties파일을 많이 사용한다면 차라리 static으로 읽어서 관리하는 것도 좋다. 왜냐하면 매번 클래스의 객체가 만들어질 때 properties를 불러오려면 부하가 많이 걸리기 때문이다.

조심해야할 것
위에 말했듯이 static은 CG 대상이 아니다. 그렇기 때문에 잘못하면 Memory Leak 현상이 발생하게 된다. 이는 시스템의 메모리를 마구 먹어서 결국은 OutofMemoryError을 발생시킬 수 있다. (Collection을 Static으로 잡고 안에 아무 데이터나 마구 넣은다음 돌려보길 바란다. 그럼 바로 GG..)

final

final은 한번 final로 지정한 값은 변하지 않는다. 변수 앞에 final이 붙으면 상수를 의미한다.

반응형
Posted by 컴투
아침에 출근해서 집에서 수정해서 가지고 온 프로젝트를 그대로 엎어서(?) 실행을 했더니
갑자기 아래의 글과 함께 에뮬이 실행되지 않는다.

Re-installation failed due to different application signatures.
You must perform a full uninstall of the application. WARNING: This will remove the application data!
Please execute 'adb uninstall com.example.uimain' in a shell.
Launch canceled!

위와 관련글을 찾아보니 사람들이 상세히 설명해 놓았다.
 에뮬레이터에 프로그램을 컴파일하고 인스톨이 되는데, 프로그램 소스의 변화가 심할경우 (예를 들어 AndroidManifest.xml을 건드리거나 맵뷰의 apikey 설정)을 건드릴 경우, 에뮬상의 프로그램하고  시그너쳐 (그러니까 프로그램을 식별할 수 있는 값)가 달라져서 에러가 발생한다는 것이다 .해결방법은 이렇다.

1.   c:\Documents and Settings\<사용자디렉토리>\Local Settings\Application Data\Android\SDK-1.1 이 디렉토리 밑에 userdata-qemu.img  파일을 삭

2. Please execute 'adb uninstall com.example.uimain' in a shell. 라는 메세지 대로 쉘에서 'adb uninstall com.example.uimain' 라고 친다

3. 실행된 에뮬레이터에서 Settings -> Applications -> Manageapplications -> 해당 App 을 직접 Uninstall 시킨다.

3가지중 한가지를 선택해서 실행하면 된다..
반응형
Posted by 컴투
프로그래밍/XML2010. 4. 5. 22:08

웹에 홈페이지를 만들고 쉽다면 HTML 문법을 공부해야 하는 것 처럼 해당 컨텐츠를 RSS를 통하여 배포하고 싶다면 당연히 RSS 구문을 익히셔야 합니다. 다행인 것은 RSS 구문은 HTML 문법만큼 간단하여 쉽게 익힐 수 있습니다.

그러나 RSS를 사용함에 있어 알고 있어야 하는 것이 있습니다. RSS는 크게 두가지의 버전이 공존합니다. 간단함을 지향하는 RSS 0.9x,RSS 2.0좀 더 확장성이 강한 RSS 1.0 입니다. 두가지 버전 모두 동일한 기본 구조와 XML을 기반으로 하고 있습니다.

1. RSS의 내력 및 버전별 비교
RSS 0.9는 Netscape 사의 포털 서비스를 위한 다소 복잡한 형식으로 제작 되었고, 그 후에 웹블로그 제품과 기타 다른 제품에 사용을 위하여 UserLand Software에서 좀 더 간단한 RSS 0.91 발표하였습니다.

그 비슷한 시기에 RSS-DEV Working Group은 RDF(Resource Description Framework) 기반으로 한 RSS 1.0를 제작하였고, RSS 1.0 역시 RSS 0.9를 기본으로 하고 있습니다. 그 후에 UserLand 는 0.92,0.93.0.94 그리고 2.0을 발표하였습니다.

버전 제작 내용 사용
0.9 Netscape - 미사용
0.91 UserLand 간단함 공식버전 2.0 이나 많은 곳에서 사용되고 있슴
0.92,0.93,0.94 UserLand 0.91 보다 풍부한 metadata 제공 RSS 2.0 사용
1.0 RSS-DEV Working Group RDF를 기반으로 모듈을 통한 확장성 RDF 기반의 Application를 사용하거나 RDF 모듈이 필요할 경우
2.0 UserLand 모듈을 통한 확정성이 있고 0.9x 버전에서 쉽게 이전 가능 일반적인 자료 배포
2. RSS 2.0
RSS 2.0 이 RSS 0.9x 버전를 모두 포함하고 있기에 RSS 0.9x 버전에 대한 설명은 생략하도록 하겠습니다. 이전 버전에 대하여 관심이 있는 분들은 관련정보를 참고해 주십시요.

<?xml version="1.0" encoding="euc-kr" ?>
<rss version="2.0">
<channel>
<title>아이헬퍼스</title>
<link>http://www.ihelpers.co.kr</link>
<description>아이헬퍼스</description>
<language>ko</language>
<lastBuildDate>Nov, 15 2004 08:13:29 GMT</lastBuildDate>
<webMaster>smson@ihelpers.co.kr</webMaster>
<item>
<title>RSS에 대하여</title>
<link>http://www.ihelpers.co.kr/programming/lec.php?CMD=view&TYPE=1&IDX=245</link>
<author>손상모</author>
<pubDate>Nov, 15 2004 08:13:29 GMT</pubDate>
<category>강좌</category>
</item>
<item>
<title>게시판의 조회수를 정확하게 측정하자</title>
<link>http://www.ihelpers.co.kr/programming/tipntech.php?CMD=view&TYPE=0&IDX=458</link>
<author>손상모</author>
<pubDate>Nov, 13 2004 01:33:48 GMT</pubDate>
<category>Tip&Tech</category>
</item>
<item>
<title>글자와 이미지에 Blink 효과주기</title>
<link>http://www.ihelpers.co.kr/programming/tipntech.php?CMD=view&TYPE=0&IDX=457</link>
<author>손상모</author>
<pubDate>Nov, 12 2004 19:36:07 GMT</pubDate>
<category>Tip&Tech</category>
</item>
</channel>
</rss>
[ RSS 2.0 샘플 ]

Required channel elements

Element Description Example
title 채널명 ( 사이트명 또는 사이트의 메뉴명 ) 아이헬퍼스 - 새소식
link 웹사이트 URL 정보 또는 채널에 해당하는 웹사이트 URL 정보 http://www.ihelpers.co.kr
description 채널 설명 ( HTML 사용은 하지 않는 것이 좋다 ) 아이헬퍼스의 최식 소식

Optional channel elements

Element Description Example
language 채널에 사용한 언어 - 사용가능 언어 ko
copyright 채널정보에 대한 권한 Copyright ⓒ 2000-2004 iHelpers.
manageingEditor 채널 수정 담당자 이메일 주소 smson@ihelpers.co.kr (홍길동)
webMaster 채널 관련 문의 담당자 이메일 주소 webmaster@ihelpers.co.kr (홍길동)
pubDate 발행일자( RFC 822 형식 ) Nov, 15 2004 08:13:29 GMT
lastBuildDate 최종변경시간 Nov, 15 2004 08:13:29 GMT
category 채널이 속해 있는 카테고리 정보( 한개 이상 가능 ) 공지사항
generator 채널 생성 프로그램 EditPlus
docs RSS 형식에 대한 문서 URL http://blogs.law.harvard.edu/tech/rss
cloud <cloud domain="" port="" path="" registerProcedure="" protocol="" /> <cloud domain="rpc.sys.com" port="80" path="/RPC2" registerProcedure="myCloud.rssPleaseNotify" protocol="xml-rpc" />
ttl 채널정보 갱신 주기( 단위 : 분) <ttl>60</ttl>
image 이미지 정보( GIF,JPEG 또는 PNG )  
url 이미지 URL 정보  
title 이미지 설명,HTML의 IMG 태그의 ALT 구문과 동일  
width , height 넓이, 높이 ( 단위 : pixel ) width,height ( 최대, 기본 ) - 144/88,400/31
rating PICS Rating  
textInput CGI Script와 연계할 수 있는 Text Input 박스와 Submit Button 기능  
title Submit Button의 Label  
description Input 박스설명  
name Input 박스의 name  
link CGI Script URL  
skipHours Reader(Aggregator)가 채널정보를 읽지 않기 원하는 시간 0 ~ 23
skipDays Reader(Aggregator)가 채널정보를 읽지 않기 원하는 날짜 Monday,Tuesday,WednesDay...

Item Element

RSS 0.92까지는 아이템의 수가 제한 되어 있었으나 RSS2.0에 오면서 숫자에 제한이 없어 졌습니다. 아이템에 해당하는 모든 Element는 선택사항입니다.

Element Description Example
title 아이템 제목 스파이더 쫓아 버리기
link 아이템 URL 정보 http://www.ihelpers.co.kr/programming/tipntech.php?CMD=view&TYPE=0&IDX=452
description 아이템에 대한 간략 설명( entity-encoded HTML ) robots.txt을 이용하여 Spider 사용 제한하기
author 작성자 이메일 주소 smson@ihelpers.co.kr
category 아이템 해당 카테고리(메뉴) 강좌
comments 아이템과 관련있는 URL 정보  
enclosure 아이템에 추가할 media 정보 <enclosure url="http://www.scripting.com/mp3s/weatherReportSuite.mp3" length="12216320" type="audio/mpeg" />
guid 유일한 식별문자 http://www.ihelpers.co.kr/programming/tipntech.php?CMD=view&TYPE=0&IDX=452
pubDate 발행일자 Nov, 05 2004 22:53:27 GMT
source 출처 http://www.robotstxt.org/wc/robots.html
3. RSS 1.0
RSS 1.0에서 RSS는 "RDF Site Summary"를 의미합니다. RSS 1.0은 RDF를 사용하고 XML-Namespaces( RSS Modules )을 이용하여 큰 마찰 없이 확장을 가능하게 해 줍니다. 모듈로써는 Dublin Core Module이 가장 잘 알려져 있습니다. RSS 1.0은 아래의 샘플 코드에서 보는 것 처럼 RSS 0.9x 와 거의 비슷하나 몇가지 다른 요소를 가지고 있습니다.
  • <rdf:RDF>...<rdf:RDF> Element를 사용한다.
  • RSS 1.0는 'http://purl.org/rss/1.0' ( Default Namespace ), 'http://purl.org/dc/elements/1.1/' ( Dublin Core )과 같이 Namespace를 사용한다.
  • Item Element가 Channel Element 밖에서 사용된다. ( RSS 0.9x 의 경우는 Channel Element 내부에 있슴 )
<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns="http://purl.org/rss/1.0/"
  xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel rdf:about="http://www.xml.com/cs/xml/query/q/19">
    <title>XML.com</title>
    <link>http://www.xml.com/</link>
    <description>
	XML.com features a rich mix of information and services for the XML community.
	</description>
    <language>en-us</language>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://www.xml.com/pub/a/2002/12/04/normalizing.html"/>
        <rdf:li rdf:resource="http://www.xml.com/pub/a/2002/12/04/som.html"/>
        <rdf:li rdf:resource="http://www.xml.com/pub/a/2002/12/04/svg.html"/>
      </rdf:Seq>
    </items>
  </channel>
  <item rdf:about="http://www.xml.com/pub/a/2002/12/04/normalizing.html">
    <title>Normalizing XML, Part 2</title>
    <link>http://www.xml.com/pub/a/2002/12/04/normalizing.html</link>
    <description>
	In this second and final look at applying relational normalization techniques 
	to W3C XML Schema data modeling,Will Provost discusses when not to normalize, 
	the scope of uniqueness and the fourth and fifth normal forms.
	</description>
    <dc:creator>Will Provost</dc:creator>
    <dc:date>2002-12-04</dc:date>    
  </item>
  <item rdf:about="http://www.xml.com/pub/a/2002/12/04/som.html">
    <title>The .NET Schema Object Model</title>
    <link>http://www.xml.com/pub/a/2002/12/04/som.html</link>
    <description>
	Priya Lakshminarayanan describes in detail the use of the .NET Schema Object Model 
	for programmatic manipulation of W3C XML Schemas.
	</description>
    <dc:creator>Priya Lakshminarayanan</dc:creator>
    <dc:date>2002-12-04</dc:date>    
  </item>
</rdf:RDF>
[ RSS 1.0 샘플 ]

앞에서 이야기 한 것 처럼 두 버전 모두 장단점을 가지고 있습니다. 그러나 본인은 RSS를 "Really Simple Syndication" 에 무게를 더 두고 싶고, RSS 1.0은 부족하지만 여기서 마치도록 하겠습니다. 자세한 것은 관련정보의 자료를 참고하여 주십시요.

4. 관련정보
출처
[기타] 인터넷 : http://www.ihelpers.co.kr">http://www.ihelpers.co.kr>
반응형
Posted by 컴투

안드로이드 개발을 하게 되면서...
웹과의 통신을 하거나.. 스트리밍을 하게 될 때 처음에 이런 에러를 접하게 될 경우가 있습니다.
머 그냥 간단하게 permission 설정을 해주지 않아서 생긴 에러입니다. 이것을 해결 하게 위해서는
manifest파일에 android.permission.INTERNET을 추가해 주면 됩니다.

에러 화면은 이렇습니다. LogCat에 나와 있는 상태가

이런 모습으로 보일 것이고... permission 설정은


현재 진행중인 프로젝트에서 AndroidManifest.xml파일을 열어줍니다.
그리고 나서는


Permissions 탭을 선택하고 나서


Add버튼을 투르게 되면 다이얼로그 창이 하나 나타나게 됩니다.


Uses Permission을 선택하고 OK를 누르고 나갑니다.


마지막으로 Name의 콤보박승에서 android.permission.INTERNET을 선택하고 저장하게 되면 됩니다.
xml파일의 내용을 확인하게 되면

이런식으로 추가된 내용을 확인할 수 있습니다.

이렇게 되면 문제 없이 원하는 대로 실행이 될 것입니다.

출처 : http://drcarter.tistory.com/
반응형
Posted by 컴투