달력

4

« 2024/4 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

1. Server  설정



1.1 General 탭 설정



1.2 Server Configuration 탭 설정



1.3 Server Configuration 탭/Server Options... 설정



2. Client 설정



2.1 General 탭 설정



2.2 Client Configuration 탭 설정

 
:
Posted by codetemplate
2011. 4. 3. 19:13

13" MacBook Air에서 iTunes 실행시 어는 현상 2011. 4. 3. 19:13

13" MacBook Air를 가지고 몇일 동안 너무 잘 사용했다. 그런데 가끔 iphone 동기화를 하려면 노트북이 어는 현상이 발생했다. 근데 이게 나만의 문제는 아니었다.
그리고 이렇게 되서 파워 스위치를 눌러서 끄고, 다시 켜는 작업을 수행하다 보면 디스크 검사시 복구할 수 없다는 오류 메시지가 나오곤 한다.

해결책은
1. Mac OS X v10.6.7 Supplemental Update for 13" MacBook Air (Late 2010) 설치
- http://support.apple.com/kb/DL1370

2. 다 설치하고 리부팅시 cmd+s를 눌러서 싱글 유저 모드로 부팅
- fsck, mount 등 수행
- restart

3. 권한 검사, 권한복구, 디스크 검사 수행
- 권한 검사/복구시 java 관련해서 권한이 잘 못 되었다는 메시지가 나오는데, 이는 무시하면됨.

이상의 작업을 수행했으니, 이제 더 이상 얼지 않기만을 기다림... 
 
:
Posted by codetemplate
2009. 7. 21. 11:14

Eclipse 3.5 Hidden Treasures 2009. 7. 21. 11:14

http://eclipse.dzone.com/articles/eclipse-35-hidden-treasures

1. Mac Cocoa Support
3.4까지는 Carbon만 지원했는데, 3.5부터는 carbon, cocoa, cocoa 64bit를 지원한다.

2. Block Selection
"Alt + Shift + A"나 "Option + Command + A"
toolbar 버튼으로도 사용 가능하다. 만일 아직 enable되지 않았다면 Customize Perspective 대화 상자를 열고, Editor Presentation라는 Command Group을 enable하면 된다.

3. Debug View as Breadcrumbs
주목할 만한 UI 변경이다.

- Debug Perspective에서 Debug View의 오른쪽 위의 작은 삼각형을 클릭
Layout -> Breadcrumb를 선택
:
Posted by codetemplate
2007. 1. 16. 13:07

vim 설정 옵션 2007. 1. 16. 13:07

backup file 생성하지 않기
set nobackup
set backupcopy=no

color scheme 설정하기
~/.vimrc 파일에 아래의 라인을 추가한다.

colors slate

매번 잊어 먹는 옵션^^^
:
Posted by codetemplate
2006. 11. 15. 17:02

statcvs 2006. 11. 15. 17:02

고재현님 블로그(http://cbiscuit.info)에서 좋은 정보를 하나 얻었다.
cvs에 있는 소스에 대한 통계를 웹 페이지로 만들어주는 statcvs(http://statcvs.sourceforge.net/)라는 것이다.

현재 수행하고 있는 프로젝트에 간단하게 적용해 보았다.
아래는 통계 정보 생성을 위한 2개의 스크립트이다.

1. cvs log 생성 스크립트
#!/bin/bash
cvs -d :pserver:msbaek@cvs_hostname:/repository_directory login
prjs="xxx yyy"
for prj in $prjs; do
  echo $prj
  cvs -d :pserver:msbaek@ cvs_hostname:/repository_directory checkout $prj
  cd $prj
  cvs log > logfile.log
  cd ..
done

2. statcvs 수행 스크립트
#!/bin/bash
prjs="xxx yyy" # cvsmodule name
for prj in $prjs; do
  echo $prj
  rm -rf $prjmkdir $prj
  cd $prj
  java -jar statcvs.jar project_dir/$prj/logfile.log html_root/$prj
  cd ..
done
:
Posted by codetemplate
2006. 11. 3. 10:29

code analysis plugin 2006. 11. 3. 10:29

:
Posted by codetemplate
2006. 11. 1. 09:14

멀티 탭을 지원하는 터미널 2006. 11. 1. 09:14

http://software.jessies.org/terminator/

mac, cygwin, linux에서 멀티 탭 터미널을 제공하는 오픈소스 툴...

cygwin에 벌써 깔았고, 이제 맥에 깔야쥐...
:
Posted by codetemplate
2006. 10. 30. 19:51

Eclipse에서 CVS 사용하기 2006. 10. 30. 19:51

Update

이 기능은 오랜 시간 다른 프로젝트를 수행했거나 휴가로 자리를 비워서 본인은 변경 사항을 가지고 있지 않지만 CVS Repository에 변경이 있을 가능성이 있을 때 수행하는 것이 적합하다.

이 기능을 수행하면 conflict이 없는 코드들에 대해서는 CVS가 자동으로 merge를 수행한다.

Synchronize with Repository

이 기능은 동일 소스 코드에서 2인 이상의 개발자 동시에 변경 commit을 수행하여 conflict이 발생하는 경우에 사용하는 기능이다.

간단한 예를 가지고 설명하도록 하자.

먼저 CVS에 초기에 아래와 같은 코드가 있었다고 가정하자.

   public class HelloWorld {
       public static void main(String[] args) {
           System.out.println("Hello, world!");
       }
   }

위의 코드를 개발자 A, B가 check out하였고, 개발자 B가 먼저 아래와 같이 변경한 후 commit(check in)을 했다고 가정하자.

   public class HelloWorld {
       private static final String HELLO = "Hello, world!";
   
       public static void main(String[] args) {
           System.out.println(HELLO);
       }
   }
   

마지막으로 개발자 A가 다음과 같이 변경하였다고 가정하자.

   public class HelloWorld {
       public static void main(String[] args) {
           say("Hello, world!");
       }
   
       public static void say(String msg) {
           System.out.println(msg);
       }
   }

개발자 A는 update, synchronize with repository 등을 수행하지 않고 바로 commit을 수행하려고 하면 아래 그림과 같이 충돌되는 요소로 인해 commit 오류가 발행했다는 윈도우를 만나게 된다.

Synchronize with Repository

충돌 요소를 해결하기 위해 project을 선택하고 오른쪽 마우스 버튼을 클릭하여 "Team / Synchronize with Repository ..."를 선택한다.

그러면 아래 그림과 같은 "Team Synchronizing" 윈도우가 나타난다.

Incoming changed from Repository 해결

Java Structure Compare에서 파란색 왼쪽 화살표(HELLO)는 repository에는 있지만 로컬 소스에 없는 부분을 나타낸다. 이러한 부분을 Incoming이라고 한다.
이러한 코드 블록은 단순히 repository에서 로컬로 복사만 하면 충돌을 제거할 수 있다.
아래 그림과 같이 Java Structure Compare에서 HELLO를 더블클릭한 후 파란색 사각형에 마우스를 가져가면

아래 그림과 같이 "<" 버튼이 나타난다. 이 버튼을 클릭하면 repository의 내용이 로컬 코드에 복사된다.

Conflicts 해결

빨간색 양쪽 화살표(main(String []))는 repository와 로컬 소스 간에 상충되는 부분이 있음을 나타낸다.
필요한 경우 이 화살표를 더블클릭한 후 로컬 소스에 수작업으로 수정을 가한다.

Outgoing changes to Repository 해결

검정색 오른쪽 화살표(say(String))는 로컬 소스에는 있지만 repository에는 없는 부분을 나타낸다.
이러한 로컬 소스가 repository에 추가되어야 하는 경우 로컬 소스를 수정 없이 나두면 된다.

Mark as Merged

마지막으로 충돌 문제가 해결되었으음을 설정하기 위해 아래와 같이 "Mark as Merged"를 실행한다.

Check In

아래 그림과 같이 commit을 수행하여 check in을 한다.

Creating and applying a patch

특정 사용자를 read-only로 설정할 수 있다. read-only 권한을 가진 사용자가 변경을 CVS에 적용하기 위해서 권한을 가진 사용자에게 변경 사항을 전송할 수 있도록 하기 위해 Eclipse는 patch(다수의 파일, 패키지에 대한 변경 사항을 담고 있는 파일)를 생성한다.

이러한 patch를 받은 사용자는 툴을 이용하여 patch를 review하고 변경을 적용한다.

project / Team / Create Patch를 통해 patch를 생성한다.

project / Team / Apply Patch를 통해 patch를 적용한다.

patch를 사용하는 것은 contributor가 CVS의 현재 코드 version을 가지고 작업을 했을 때 효과적이다. 만일 CVS의 version에 수정을 가한 파일에 patch를 적용하고자 한다면 CVS의 resolve하지 못하는 conflict을 만날 수도 있다. 이러한 경우 수작업으로 merge를 수행해야만 한다.

Versions and branches

CVS는 각 파일에 대한 revision history만을 저장할 수 있는 것은 아니다. CVS는 특정 시점의 Project에 대한 snapshot을 저장하기 위해 version을 제공한다. version을 생성했다면 후에 version 레이블을 이용하여 해당 시점의 project에 대한 snapshot을 얻어낼 수 있다.

CVS는 또한 각 파일에 대해 다수의 히스토리를 저장할 수 있다. 이러한 기능은 사용자가 project에 대한 branch를 생성하는 것을 허용한다. 이 말은 동시에 둘 이상의 개발 라인을 추가하는다는 것을 의미한다.

branch는 head branch에서 다음 version을 위한 개발이 진행 중일 때 이미 release된 version에 대한 유지보수(버그 수정 등)를 제공하기 위해 사용될 수 있다.

Adding a version label

project에 새로운 version 레이블을 추가하는 것은 각 파일들의 revision number를 하나의 프로젝트 레벨 레이블로 associate하는 것을 의미한다. \

개발에서 주요한 milestone(beta/official release, 대단한 변화를 가하기 전 등)이 있을 때 마다 project을 version 레이블로 태그해야 한다.

project에 version 레이블을 부여하기 위해 먼저 로컬 소스와 repository 간에 동기화가 이뤄졌는지 확인해야 한다. 또한 모든 변경이 commit되었는지 확인해야 한다.

아래와 같은 절차를 따라 version 레이블을 부여한다.

1. project을 오른쪽 마우스로 클릭 / Team / Tag as Version을 선택

2. 적합한 version 이름을 입력

Retrieving a version

아래와 같은 2가지 방법으로 version을 가져올 수 있다.

1. CVS Repository View에서 Project을 Check Out

2. Project이 이미 checked out되어 있다면 project의 context 메뉴에서 "Relace With / Another Branch or Version" 메뉴를 통해서

Creating and using a branch

branch는 version과 유사하다. 중요한 차이점은 개발자가 branch에 속한 파일들을 변경하고, 변경을 commit할 수 있다는 점이다. 물론 이러한 변경은 해당 branch를 바라보는 개발자들에게만 보여진다.

branch를 생성할 때 시작점은 워크스페이스의 현재 version이 된다. 이러한 version은 head도 될 수 있고, 이전에 태그된 version이 될 수도 있다.

아래와 같은 절차로 branch를 생성한다.

1. project context 메뉴에서 "Team / Branch"를 선택

2. branch 이름 입력(예. startList).

3. "Start working in the branch" 체크박스 선택 후 OK 클릭

Retrieving a branch

version을 가져오는 것과 동일한 방법으로 수행

:
Posted by codetemplate