Ubuntu 10.04 리눅스에서의 개발 환경 설정(JDK 6, Eclipse Galileo)

|
링크 : http://websubway.tistory.com/578



[02-D1] Ubuntu 10.04 리눅스에서의 개발 환경 설정(JDK 6, Eclipse Galileo)

[01] VMWare 6.5 ~ 7
     - 안드로이드 오픈소스 프로젝트 팀에서는 UBUNTU 리눅스 사용을 권장함.
     - Samsung S3c6410의 경우 설치 가능 버전: 6.06 ~ 9.04에 최적화 되어 있음.
     - VMWare 사용시 최소 RAM 2GB이상 되어야 하며, 가상 머쉰은 1GB이상의
       메모리 할당과 20GB ~ 30GB 이상의 하드를 할당해야 한다.
     - CPU는 Pentium D 2.8 Ghz또는 Core2DUO 이상을 권장함.

★ VMWare 7.1이상 버전에서 Ubuntu 10.04를 지원함.


1. VMWare의 설치
  

 

2. http://www.ubuntu.com Ubuntu download
   - mirror: https://launchpad.net/ubuntu/+cdmirrors
   - http://ftp.daum.net/ubuntu-releases/
   - http://ftp.daum.net/ubuntu-releases/10.04/
     ubuntu-10.04-desktop-i386.iso

   - http://mirror.khlug.org/ubuntu-releases/10.04/

 


3. VMWare7.1에서의 Ubuntu 10.04 설치
   1) New Virtual Machine
   2) Install disc image file(iso): ubuntu-10.04-desktop-i386.iso
   3) Full name: UbuntuSOA5
      User name: dev   <-- Ubuntu 로그인시 사용
      Password: 1234abcd
   4) VMWare 설치 폴더: F:/UbuntuSOA5/Ubuntu1004
   5) Customize Hardware: RAM 1024로 변경
  

 


[02] Ubuntu 10.04 설정

[참고] 인터넷이 안되는 경우의 설정

1) 화면 상단위 패널에서 ! 아이콘을 클릭하고 [VPN 연결 -->VPN 구성 --> 유선]에서 추가
    입력 정보는 윈도우의 네크워크 설정정보를 입력하되 IP는 다르게 지정.
    IP: 172.16.3.230
    Subnet Mask: 255.255.0.0
    Gateway: 172.16.0.1
    DNS: 168.126.63.1
 
2) 설정 후 'Auto eth0'선택하면 연결됨.


1. VMWare
   - View --> Autofit Guest
   - Full Screen

 


2. FireFox 한글 깨짐 설정
   - 브러우저 -- 보기 -- 문자 인코딩 -- EUC-KR로 변경

 


3. 한글 입출력을 위한 한글 언어팩 등록
   - Ubuntu -- System -- Administration -- Language Support -- Language Install/Remove 버튼 클릭
      , 언어 목록중에 '한국어' 선택후 '변경 사항 적용 버튼' 클릭
   - 재부팅하면 한글이 작동함.
   - 한글 변환: 좌측 Ctrl + Space Key

 


4. Ubuntu -- 시스템 -- 기본 설정 -- 모니터
     - 해상도 조절

 

5. Ubuntu -- 시스템 -- 기본 설정 -- 모양/ 화면 보호기

 


6. 바탕 화면 바꾸기.

 


7. 시간 변경
    시스템 -- 관리 -- 시간과 날짜 -- Asia/Seoul로 지정

 


8. 터미널
   - Ubuntu -- Applications -- Accessories -- Terminal
     (Ubuntu -- 프로그램 -- 보조 프로그램 -- 터미널)
   - 확대: Ctrl + Shift + +
   - 축소: Ctrl + -
 

 


[03] Ubuntu Linux 기본 명령어

1. 기본 콘솔 명령어
   1) pwd: 현재 폴더
   2) mkdir: 폴더 생성
   3) rmdir: 폴더 삭제
   4) cd   : 폴더 이동
   5) cd ..: 상위 폴더 이동, cd 명령뒤 공백 주의.
   6) ls   : 목록 간단히 출력
   7) ls -l: 목록 자세히 출력
   8) tar -xvf: 패키지를 열고 압축을 해제함.
   9) mv   : 파일 이동, mv [원본] [대상 경로]
  10) rm  : 파일 삭제
       rm -r : 디렉토리 삭제
       rm -rf : 디렉토리 내용을 포함한 전체 삭제
  11) cp -r [원본 파일 또는 대상 디렉토리] [대상 디렉토리]: 폴더의 모든 내용 복사
  12) shutdown -h now, halt: 시스템 종료

 


2.  root 패스 변경: 최초 설치시 패스워드 설정이 안되어 있음.
      sudo passwd root
      [sudo] password for dev: 일반 사용자 계정 비밀번호 입력
      Enter new UNIX password: 루트 비밀번호 입력
      Retype new UNIX password: 루트 비밀번호 재입력
      passwd: password updated successfully    

 


3. 심볼릭 링크 명령어
   1) /home/dev에서 실행되도록 파일 링크 등록.
    sudo -s
    root@ubuntu:~# ln -s /home/dev/201006_android_202/FileZilla3/bin/filezilla filezilla
    ./filezilla


   2) 링크 삭제
    rm filezilla

 


4. 권한(permission)의 변경

    1) ls -l, ls al로 권한 목록의 출력


    2)  소유자(사용자, user), 그룹(group), 다른 사용자(방문자, everyone)
         drwx------  2 dev  dev     4096 2010-06-09 17:57 Desktop  : 폴더
         lrwxrwxrwx  1 root root      25 2010-06-10 17:30 ecp -> /home/dev/eclipse/eclipse: 링크
         -rwxr-xr-x 1 dev dev    5 2010-06-15 15:38 per.txt              : 파일
        

    3) Octal mode로 지정
         r  w  x
         4 2 1

         rwxr-xr-x의 지정: # chmod 755 ./per.txt


    4) 그룹과 유저의 변경
         $ sudo -s
         - 하나의 파일 변경
         root@ubuntu:~/temp# chown dev.dev per.txt

         -R은 하위 폴더의 모든 파일을 권한 변경
         # chown -R root.root ./temp
         # chown -R dev.dev ./temp

 

 

[04] JAVA 설치

[다운로드 폴더 설정]
  dev@ubuntu:~$ pwd
  /home/dev
  dev@ubuntu:~$ mkdir setup
  dev@ubuntu:~$ cd setup
  dev@ubuntu:~/setup$ ls -l


1. http://java.sun.com에서 ' jdk-6u21-linux-i586.bin' 파일을 다운.

 


2. 실행 권한 지정
   dev@ubuntu:~/setup$ sudo chmod 755  jdk-6u21-linux-i586.bin

   - 파일명이 실행 할 수 있는 초록색으로 변경됨(permission 변경).

 


3. 설치
./jdk-6u21-linux-i586.bin

 


4. root 권한 획득
   sudo -s

 


5. path 설정
   - 경로 구분자: ":"
   - 변수명은 $으로 시작
   - 현재 경로 확인
   root@ubuntu:~# pwd
   /home/dev

   root@ubuntu:~# ls -al
   root@ubuntu:~# gedit .bashrc

   - 기존 경로의 확인
     echo $PATH

   - 아래의 내용을 파일 맨 아래에 추가할것.
--------------------------------------------------------------------------------------
# java JRE
JRE_HOME=/home/dev/setup/jdk1.6.0_21/jre
export PATH=$PATH:$JRE_HOME/bin

# java Compiler
JAVA_HOME=/home/dev/setup/jdk1.6.0_21
export PATH=$PATH:$JAVA_HOME/bin

CLASSPATH=.:$JAVA_HOME/jre/lib/*:$JAVA_HOME/lib/tools.jar
--------------------------------------------------------------------------------------

   - 변경된 소스 적용
   source .bashrc
 

 

6. 새로운 터미널을 열어 확인 합니다.

   java -version
   javac

 

 

 

[05] Eclipse install
     - http://www.eclipse.org

1. Eclipse galileo 설치
   1) Linux Eclipse download to install_backup
      - eclipse-jee-galileo-SR2-linux-gtk.tar.gz

   2) 압출 풀기
       cd  setup
       tar -xvf eclipse-jee-galileo-SR2-linux-gtk.tar.gz

   3) Eclipse 이동
      dev@ubuntu:~/setup$ mv eclipse /home/dev

   4) 작업 폴더 생성
      dev@ubuntu:~$ mkdir workspace_android

   5) 실행
      dev@ubuntu:~$ cd eclipse
      dev@ubuntu:~/eclipse$ ./eclipse

   6) /home/dev에서 실행되도록 파일 링크 등록.
      root@ubuntu:~# ln -s /home/dev/eclipse/eclipse ecp
      root@ubuntu:~$ ./ecp
  
   ★ eclipse 는 dev 계정 권한으로 설치가되어 있음으로 root에서 실행시 AVD같은 툴에서 에러가
       발생 할 수 있음으로 dev계정으로 나와서 Eclipse를 실행해야 합니다.

 

 

2. 실행 아이콘의 생성
   - 바탕화면에 실행 아이콘을 만들고 eclipse 폴더로 JRE를 복사 할 것.

dev@ubuntu:~$ pwd
/home/dev
dev@ubuntu:~$ cp -r jdk1.6.0_20/jre eclipse

 

 


[06] Google 크롬 브러우저 설치
       - http://www.google.co.kr ---> deb 파일 다운로드
       sudo dpkg -i google-chrome-stable_current_i386.deb

'개발/활용정보 > Java' 카테고리의 다른 글

Java 리플렉션에 대한 재고(reflection)  (0) 2012.07.10
이클립스에서 Java Heap Size 설정하기  (0) 2012.02.15
Eclipse Memory Analyzer  (0) 2011.11.28
재귀형 퀵소트..소스..자바..  (0) 2011.05.11
ant 사용법  (0) 2011.04.19
And

UML 기본편

|

UML - 기본편 ( 기본 표기 형식 및 관계 표현법 )


Class 및 Class instance 의 기본 표기 형식


Class 표기형식

UML Diagram 중에서 가장 기본적인 표현 단위인 클래스의 표기형식을 알아보자.


Class 표기형식

+  :  public
-  :  private
#  :  protected


*  variables, methods 는 생략이 가능하나 class 이름은 반드시 명시해주어야 한다.

위의 class 를 소스코드로 표현하면 아래와 같다.

Person Class


Class instance 객체의 표기형식


Class instance 객체의 표기형식



Relationships( 관계 표현 )

서로 의미있는 클래스들의 관계에는 크게 4가지 종류가 있다.

일반적인 의미의 연결 관계인 연관( association ) 관계, 전체와 부분을 나타내는

집합( aggregation )  관계, 다른 클래스의 재산을 물려받는 상속( inheritance ) 관계,

그리고 한 클래스가 다른 클래스에 영향을 미치는 의존( dependency ) 관계가 있다.


이 중에서도 association  과 aggregation, composition 이 세가지 관계가 가장 헷갈릴 수

있는데 간략하게 정리를 해보자면 아래의 그림과 같다. 회색 부분이 각각의 관계를 구분짓는

기준이 된다고 볼 수 있다.


사용자 삽입 이미지

association 과 dependency 를 구분짓는 가장 큰 기준은 ' 참조하는 클래스 인스턴스의

레퍼런스를 계속 유지하고 있느냐, 아니냐 ' 이다. 아래의 소스 코드들을 보면서 이해해보자.


[ 소스 코드 1 ] dependency


사용자 삽입 이미지


[ UML ] dependency ( A ----> B )


사용자 삽입 이미지



[ 소스 코드 2 ] association

사용자 삽입 이미지

[ UML ] association ( A - > B )


사용자 삽입 이미지



◆ dependency( 의존 관계 )

클래스가 연관, 상속, 집합 관계로 엮여 있는 것은 아니지만, 한 곳이 변경되면 그것을 사용하는
 
다른 곳도 같이 변경해줘야 하는 관계를 표현할 때 주로 사용한다. 단, 주의해야 할 점은

association 과 달리 dependency 의 경우에는 클래스 인스턴스의 레퍼런스를 유지하고

있지 않다는 점이다. 레퍼런스를 계속적으로 유지하게 되면 이는 association 으로 표현해야

한다.

주로 다음과 같은 세 가지 경우에 의존 관계로 표현한다.

1. 한 클래스의 메소드가 다른 클래스의 객체를 인자로 받아 그 메소드를 사용한다.
  ( 가장 일반적 )

2. 한 클래새의 메소드가 또 다른 클래스의 객체를 반환한다.

3. 다른 클래스의 메소드가 또 다른 클래스의 객체를 반환한다. 이때 이 메소드를 호출하여
   반환되는 객체의 메소드를 사용한다.




association( 연관 관계 )


한 객체가 다른 객체와 연결되어 있음을 나타낼 때 그들을 연관관계로 지칭한다. 이러한

연관관계에서 중요하게 볼 점은 ' 연관 관계의 방향( navigability ) 과 멀티플리시티

( multiplicity ) 이다.

사용자 삽입 이미지


양방향 연관 관계 : 연결된 클래스들이 서로의 존재를 알고 있다는 의미이다.

위의 UML 을 해석하자면 House 와 Person 클래스는 서로의 존재를 알고 있으며, 반드시

한 사람 이상이 House에 속해야 한다는 것을 뜻한다.

사용자 삽입 이미지

단방향 연관 관계 : House 클래스는 Person 클래스의 존재를 알고 있지만, Person 은

House 클래스의 존재를 모르고 있다고 이해하면 된다. 이와 같은 경우는 House 클래스만

Person 클래스에 대한 참조값을 가지고 있고, Person 은 House 에 대한 어떠한 참조값도

가지고 있지 않는다. 


관계 표현을 나타낸 그림에서 보면 일반 연관과 특수 연관이라고 나뉘어 지는데,

특수 연관이라는 것은 임의로 만든 단어이다.  일반 연관이란 앞에서 살펴본 association 을

나타내며,  association 중에서도 ' 부분과 전체 ' 로 나눌 수 있는 관계를 aggregation 과

composition 으로 묶어서 분류한 것이다.

aggregation 과 composition 은 모두 association 의 한 특별한 형태로 각각을 구분하는

기준은  ' life cycle 이 같느냐, 같지 않느냐 ' 이다. life cycle 이란 클래스 인스턴스의

생명 주기를 말하는 것으로 생성에서 소멸까지의 과정을 말한다. 즉, life cycle 이 같다는 것은
 
관계된 클래스 혹은 그 인스턴스의 생성과 소멸이 동시에 이루어진다는 것을 뜻한다.

쉽게 예를 들어 표현하자면 모자와 안경을 쓴 사람을 놓고 보자. 현재 이 사람을 구성하고 있는

요소에는 눈, 팔, 다리와 같이 사람이 죽으면 같이 없어지는 요소들이 있고, 안경 모자와 같이

바꿔 사용할 수 있는 요소들이 있다. 즉, 눈, 팔, 다리는 사람과 life cycle 이 같은
 
composition 관계 이고, 안경이나 모자는 aggregation 관계인 것이다. 이러면 이해가 좀 쉽게

갈라나? ^-^


[ 소스 코드 1 ] aggregation

사용자 삽입 이미지

[ UML ] aggregation

사용자 삽입 이미지


[ 소스 코드 2 ] composition

사용자 삽입 이미지

[ UML ] composition

사용자 삽입 이미지


상속 관계 ( inheritance )

[ 소스 코드 ]

사용자 삽입 이미지

[ UML ] inheritance

사용자 삽입 이미지


interface

[ 소스 코드 ]
사용자 삽입 이미지
[ UML ]
사용자 삽입 이미지



'개발/활용정보' 카테고리의 다른 글

delegate  (0) 2017.07.07
Oauth  (0) 2013.07.18
ClearCase  (0) 2011.08.11
blotware, crapware  (0) 2011.05.27
구글맵 api 를 이용한 map service  (0) 2011.05.20
And

Eclipse Memory Analyzer

|
And