안드로이드 개발 환경 구축하기 - 자바 jdk 설치하고 환경변수 설정

컴퓨터/Android 2012. 11. 7. 22:32

안드로이드 개발 환경 구축하기 - 자바 jdk 와 환경변수 설정

안녕하세요. 요즘 안드로이드 개발 시장에 뛰어드시는분들이 많습니다.

이제는 아이디어만 있으면 바로 어플리케이션을 개발 할 수 있을만큼 개발이 쉬워졌는데요. 그중 안드로이드의 기반언어인 자바 jdk를 설치하고 개발툴인 eclipse를 이용해 윈도우나 리눅스에서 모두 개발할 수 있지만 이번에는 윈도우에서 설치해보겠습니다.


자바 jdk 설치하기

http://www.oracle.com/technetwork/java/javase/downloads/index.html

자신에게 맞는 운영체제를 선택하여 설치합니다. 


* x64는 64비트이고 x86은 32비트입니다. 자신이 무엇을 쓰고있는지 모른다면 

내컴퓨터 -> 오른쪽마우스 -> 속성 -> 시스템 종류를 보시면 32비트인지 64비트인지 나와있습니다.


자바 설치 확인하고 환경변수 설정하기

cmd로 들어가서 java를 입력합니다.


자바가 정상적으로 설치되었다면 java를 입력했을때 저렇게 나타나야합니다.

이번엔 javac를 입력합니다. 내부 또는 외부 명령이 아니라고 뜨시나요? 

그렇다면 환경변수 설정을 해야합니다.


내컴퓨터 -> 속성 -> 고급 -> 환경변수 로 들어갑니다.


시스템 변수에서 새로만들기를 클릭합니다.


변수이름에는 JAVA_HOME 이라고 입력하고 변수 값에는 자신이 jdk를 설치한 경로를 입력하시면 됩니다.

예) C:\Program Files\Java\jdk1.7.0_04


이제 시스템변수에서 Path를 찾아서 편집을 클릭합니다.


변수 값 맨 뒤에 ;%JAVA_HOME%\bin; 를 추가합니다.


다 되셨다면 확인을 누르시고 다시 cmd에서 javac를 입력합니다.

제대로 적용이 되셨다면 javac를 입력하시면 이런 화면이 나옵니다.


수고하셨습니다.

다음 게시물에서는 개발툴인 eclipse를 설치해보겠습니다.

설정

트랙백

댓글

자바 Vector 와 ArrayList , LinkedList의 차이점

컴퓨터/Java 2012. 11. 4. 01:23

자바에서 리스트 인터페이스를 구현한 클래스는 ArrayList와 LinkedList

Stack 과 Vector등이 있습니다. 그 중  Vector와 ArrayList , LinkedList의 차이를 알아볼까요?

Stack은 말 그대로 자료구조중 하나인 Stack이고요.

Vector클래스와 List클래스들의 다른점은 동기화(synchronize)처리에 있습니다.

동기화란 한 스레드에서 공유자원에 작업을 마치기 전 까지는 다른 스레드에서 공유자원에 접근 하지 못하

게 약속하는것인데요. 안전성은 정말 좋은 일이지만 만약 하나의 스레드에서 작업을 한다고 하면 오히려 

성능의 저하를 가져오게 됩니다. Vector의 경우 무조건 동기화를 하기 때문에 단일 스레드 처리에서는 

ArrayList나 LinkedList보다 성능이 떨어집니다. Vector는 그래서 자바1.2 이후로는 거의 쓰이지 않는 비운

의 자료구조형이 되어버렸죠... ㅜㅜ

동기화가 필요할때는 Collection.synchronizedCollection(Collection c)를 이용하는것이 성능상 바람직 하겠습니다.

그럼 이제 ArrayList 와 LinkedList의 차이에 대해 알아볼까요? 

LinkedList에는 여러가지가 있지만 자바에서는 환형 더블 링크드리스트를 구현하였습니다. 링크드리스트에 대한 소개는 자료구조에서 따로 하겠습니다.


ArrayList는 배열로 구조가 간단하며 데이터를 읽어오는데 걸리는 시간이 가장 빠릅니다. 하지만 크기를 변경할 수 없고 비순차적인 데이터의 추가 또는 삭제에 시간이 많이 걸립니다.


반면 LinkedList는 중간 데이터를 추가/삭제하는 경우 ArrayList보다 빠릅니다. 그러나 순차적으로 데이터를 추가/삭제 하는 경우에는 ArrayList가 LinkedList가 더 빠릅니다.

그러므로 ArrayList에는 순차적으로 데이터를 추가/삭제하거나 읽어오는 작업이 많을 때 사용하고

LinkedList는 비순차적으로 랜덤하게 데이터의 추가 또는 삭제가 필요할 때 사용해야합니다. 

때에 맞는 자료구조의 사용으로 인한 성능 향상은 조그마한 차이지만 매우 큰 결과를 나타냅니다.


이야기를 정리하자면,

Vector - 구버전 호환용으로 잘 사용되지 않고 동기화 처리가 내부적으로 일어나서 다른 객체들 보다 무겁다. 고로 왠만하면 다른 List클래스를 사용하는것이 좋습니다.

ArrayList - 배열의 복사에 의한 데이터 저장처리를 내부적으로 행하며, 각 데이터에 대한 인덱스를 가지고 있기 때문에 검색이 매우 빠르지만 많은 데이터의 추가 / 삭제시에는 배열의 복사가 빈번하게 일어나 성능이 떨어지는 단점이있습니다.

LinkedList - 다음 자료의 위치정보를 가지며, 내부적인 인덱스 가지고 있지않다. 데이터의 추가 / 삭제는 위치정보의 수정만으로 가능하기 때문에 많은 정보의 추가 / 삭제처리가 필요할때 유용하지만 데이터가 많은 경우의 검색시 처음 자료부터 순차적으로 찾아 나가야 하기 때문에 느려지는 단점이 있습니다.



'컴퓨터 > Java' 카테고리의 다른 글

제네릭스(Generics)와 와일드 카드  (0) 2012.11.08
나의 첫 자바프로그램 단어암기장  (0) 2012.11.08

설정

트랙백

댓글

재귀함수의 묘미 - 하노이의 탑

하노이의 탑 이란?

퍼즐의 일종으로 세 개의 기둥과 이 기둥에 꽂을 수 있는 크기가 다양한 원판이 있고, 퍼즐을 시작하기 전에는 한 기둥에 원판들이 작은 것이 위에 있도록 순서대로 쌓여 있다.

게임의 목적은 다음 두 가지 조건을 만족시키면서, 한 기둥에 꽂힌 원판들을 그 순서대로 그대로 다른 기둥으로 옮겨서 다시 쌓는 것이다.

1. 한번에 하나의 원판만 옮길 수 있다.

2. 큰 원판이 작은 원판 위에 있어서는 안된다.


일반적으로 원판이 n개 일 때, 2n -1번의 이동으로 원판을 모두 옮길 수 있다.

C언어로 소스를 구성해 보면

#include<stdio.h>
void hanoi(int n,char a,char b,char c){
 if(n>1){
  hanoi(n-1,a,c,b);
  printf("원반 %d : %c => %c\n",n,a,c);
  hanoi(n-1,b,a,c);
 }
}
void main(void){
 hanoi(6,'a','b','c');
}

'컴퓨터 > 자료구조 / 알고리즘' 카테고리의 다른 글

Quick Sort - PPT 자료  (0) 2012.11.07

설정

트랙백

댓글

UTP 와 STP의 카테고리

컴퓨터/Network 2012. 11. 3. 22:18


그럼 이제 네트워킹 방식말고 케이블에 대해 알아볼까요?

케이블은 어디에 들어갈까요? 장비와 장비의 연결에는 언제나 케이블이 들어갑니다. 즉 PC에서 허브나 스위치까지의 연결, 스위치와 스위치의 연결등 네트워크 장비와 네트워크 장비를 연결하기 위해서는 어떤 종류의 케이블이든 반드시 케이블 들어가게 됩니다. 이렇게 들어가는 케이블은 광케이블, UTP케이블, 동축케이블 등 종류도 가지가지입니다. 아 또 UTP는 뭐고 동축케이블은 뭔지.... 하나하나 천천히 알아봅시다.

UTP 케이블은 우리가 가장 많이 사용하는, 거의 모든 사무실과 게임방에서 사용하고 있습니다. 

UTP 란 Unshielded Twisted-pair 이라는 줄임말로 Unshielded 즉 감싸지 않은 Twisted-pair 서로 꼬여있는 케이블을 말합니다. 그럼 감싸져있는 케이블은 뭘까요? Shielded 즉 STP케이블입니다. STP케이블은 케이블 주위에 어떤 절연체로 감싸서 만든것으로 좀 더 비싸고 성능도 좋다고 합니다. 암튼 그래도 기존에 UTP로 구성된 네트워크가 많았기때문에 UTP가 중심을 이루고 STP는 토큰링쪽에서 많이 쓰이고 있습니다. 


(STP와 UTP케이블)

그럼 보통 우리가 말하는 카테고리 5, 카테고리 3 이런것들은 무엇을 의미할까요?   말이나온김에 카테고리 별로 알아봅시다.

(카테고리 별 사용 용도)


그럼 이번엔 UTP 케이블을 만들어 볼까요??

UTP케이블은 학교 실습시간에도 만들만큼 간단하게 만들어 볼 수 있는데요.


일단 이러한 준비물이 필요하고요....(저는 학교에서 제공해주는것으로 만들었습니다 !)



   여기서 실수하면 안에 선까지 잘라버릴수있으니 주의하세요 ㅜ








색깔은 저대로 1번 화이트 오렌지 2번 오렌지 3번 화이트 그린

4번 블루 5번 화이트 블루 6번 그린 7번 화이트 브라운 8번 브라운 식으로 맞춰주시면 됩니다.


더 안들어 갈 때까지 계속 밀어주세여 


 


손잡이를 누르시면 딸깍 소리가 납니다. 

이제 랜선 완성 ! 이제 테스트를 해볼까요?



양쪽끝에 케이블을 꽂으시면 순서대로 불이들어올겁니다.

잘들어오면 잘 만드신거구 안들어온다면 ㅜ 다시만들어보세요 ㅜㅜ

이번에도 3줄요약 하자면 

1. 케이블에는 UTP 와 STP가 있으며 STP가 더 비싸고 성능이 좋다.

2. 카테고리 1 , 카테고리 3 등을 통해 용도가 나뉜다.

3.    1번 화이트 오렌지     2번 오렌지     3번 화이트 그린

4번 블루     5번 화이트 블루     6번 그린     7번 화이트 브라운     8번 브라운


사진출처 : http://www.intersuper.net/front/productdetail.php?productcode=053004000000000020&sort=

설정

트랙백

댓글

LAN과 WAN 그리고 이더넷의 CSMA/CD와 토큰링

컴퓨터/Network 2012. 11. 3. 22:03

여러분 게임하면서 LAN이란 말 들어봤을겁니다. 그렇다면 LAN이 대체 뭘까요?

LAN은 'Local Area Network'의 약자로 Local, 즉 어느 한정된 공간에서 네트워크를 구상한다는 것 입니다.

예를 들어보자면 학교 컴퓨터실에 컴퓨터가 30대 있는데 이것들로 네트워크를 구성한다면 이런 경우 컴퓨터실에 LAN을 구축한다고 한다고 하죠.

 LAN 과 비교되는말로는 WAN이 있는데요 WAN은 'Wide Area Network'의 약자로 멀리 떨어진 지역을 서로 연결하는 경우에 사용합니다. 요즘은 모두 인터넷을 쓰는 세상이니 인터넷에 접속하는 거는 WAN이라고 봐야 할 겁니다. 아무튼 LAN은 한정된곳에서만 사용하는 네트워크 구축이고 WAN은 서로 멀리 떨어진 곳을 네트워크로 연결하는 것이라고 할수 있습니다.

그럼 이더넷은 들어 보셨나요?? 이더넷은 LAN을 위해 개발된 네트워킹의 한 방식으로 이더넷 방식중의 가장 큰 특징은 CSMA/CD라는 프로토콜을 사용해서 통신을 한다는 것입니다. 이더넷은 지금 우리나라에서 사용되고 있는 네트워킹 방식의 90%를 차지할 정도로 널리 사용되고 있는 네트워킹 방식입니다. 네트워킹 방식은 토큰링이나 FDDI나 ATM방식이 있으며 네트워킹 방식에 따라서 랜카드부터 모든 네트워크 장비들을 다르게 구입해야 합니다. 즉 자신의 네트워킹 방식을 모르면 랜카드한장 함부로 살 수 없습니다. 그럼 어떻게 해야할까요? 이러한 네트워킹 방식에 대해 모두 알고 사면 됩니다 ! ㅎㅎ 그럼 일단 이더넷의 CSMA/CD에 대해 알아볼까요?

CSMA/CD는 한마디로 쉽게 얘기하자면 대충 알아서 눈치껏 통신하자 입니다. 이게 무슨 말이냐고요? 이더넷 환경에서 통신을 하고 싶은 PC나 서버는 먼저 지금 네트워크 상에 통신이 일어나고 있는지를 확인합니다. 그리고 통신이 일어나고 있다면 기다렸다가 네트워크의 통신이 끝난다면 자기가 보낼 데이터를 네트워크에 실어서 보냅니다. 그러다가 동시에 두 PC나 서버가 네트워크상에 데이터를 실어 보내면 충돌이 발생하며 랜덤한 시간후에 데이터를 다시보냅니다. 그러다가 15번 이상 충돌이 나면 통신을 포기합니다.



(CSMA/CD의 충돌)

그렇다면 토큰링은 뭘까요? 토큰링 역시 네트워크의 데이터 전송방식으로 자기 맘대로 보내고 싶을때 남들이 전송을 하지 않으면 데이터를 막 보내는것이 아니라 그 네트워크에서 토큰이라는것이 돌고돕니다. PC는 그 토큰을 가지고 있을때만 데이터를 전송할 수 있으며 전송할 데이터가 없다면 옆의 PC로 토큰을 전달합니다. 당연히 충돌도 안나고 네트워크의 성능을 예측하기도 쉽겠죠? 하지만 단점도 있습니다.

지금 내가 당장 보내야할 데이터가 있고 다른 PC들은 보내야할 데이터가 하나도 없다 하더라도 차례가 올 때까지 계속 기다려야합니다. 한때는 토큰링이 안정적이다는 말도 있었지만 이더넷의 발전으로 이제 대부분이 이더넷을 사용하고 있습니다.



(토큰링 방식)

이번 게시물도 가볍게 3줄로 요약 !

1. LAN은 한정된 공간에서 네트워크를 구성하는것이고 WAN은 서로 멀리 떨어진 네트워크를 연결하는것입니다.

2. 이더넷은 네트워킹의 한 방식으로 CSMA/CD를 사용합니다.

3. CSMA/CD는 눈치껏 대충 통신하는것이고  토큰링은 토큰을 돌려 통신순서를 정하는것 !

'컴퓨터 > Network' 카테고리의 다른 글

UTP 와 STP의 카테고리  (0) 2012.11.03
인터넷 / 인트라넷 / 엑스트라넷  (0) 2012.11.03

설정

트랙백

댓글

인터넷 / 인트라넷 / 엑스트라넷

컴퓨터/Network 2012. 11. 3. 21:10

요즘 네트워킹이라는 말을 여기저기서 자주 듣는데요.

이제는 집에서 컴퓨터만 키면 북쪽에 있는 Eric Kim씨와도 이야기를 나눌 수 있는 시대가 왔습니다.

네트워킹은 서로 연결해서 대화를 할 수 있게 해주는것 ! 이라고 생각하시면 될 것 같습니다.

그럼 이 네트워크에 접속하려면 ? 인터넷이라는 가상의 공간에 연결이 되어야합니다.

인터넷은 여러 개의 네트워크를 묶는다는 의미를 가지고 있고 실제로도 그런 역활을 해줍니다.

제가 이 블로그에 글을 쓰고있고 여러분은 이 글을 읽고있는것 모두 네트워킹의 결과겠죠?

인터넷은 몇가지의 특징을 가지고 있는데 첫번째 특징은 하나의 프로토콜만 사용한다는 겁니다.

프로토콜이 뭐냐? 하시면 프로토콜은 대화의 규칙이라고 생각하시면 됩니다. 일상 생활에서도 한국인이 한국말을 쓰는데 상대방이 한국말을 전혀 모르고 영어로만 이야기 한다면 두 사람은 서로의 프로토콜이 다르다고 할 수 있습니다. 즉 이렇게 서로 다른 프로토콜을 사용하게 된다면 통신이 불가능하게 됩니다. 따라서 인터넷에서는 하나의 언어, 즉 하나의 프로토콜만을 사용하는데 이것이 바로 TCP/IP라는 놈이죠. TCP/IP에 대해서는 나중에 배우고 일단은 인터넷에서 사용하는 프로토콜이라고만 알아두시면 될 것같습니다.

인터넷의 또다른 특징은 익스플로러나 크롬 , 파이어폭스 같은 웹 브라우저를 이용해서 인터넷에 접속한다는 것 인데요. 굉장히 편리하고 열기만 하면 이제 우리도 전 세계를 누빌 수 있는겁니다.

인터넷의 마지막 특징은 정보의 바다 ! 없는정보가 없죠. 오늘 저녁반찬인 계란말이 레시피라던지 오늘의 날씨 또는 오늘의 주식까지 오히려 정보가 너무 많아 찾기 힘들정도로 정보가 넘치고 넘치는곳이 인터넷입니다. 그럼 인트라넷이나 엑스트라넷은 무엇일까요?

인트라넷은 편리한 웹브라우저를 사내업무에서도 사용하기 위해 만든것으로 이것 역시 TCP/IP를 프로토콜로 사용하고있습니다. 인트라넷을 통해 업무보고를 한다든지 휴가신청같이 업무를 처리할 수 있게 된것이죠. 요즘 거의 모든 회사들은 사내 메일 시스템같은것들은 인트라넷을 이용해 개발하고 있답니다.

그렇다면 엑스트라넷은 ?? 별로 다를것이 없는데 인트라넷에서 회사원 외에 협력회사나 고객에게도 사용할 수 있도록 한것이 엑스트라넷입니다.


가볍게 세줄 요약하고 끝내자면 

1.인터넷은 네트워크를 여러 개 묶어놓은 네트워크의 집합체이며 이것들은 모두 TCP/IP라는 프로토콜(통신규칙)을 사용하고 있습니다.

2.인트라넷은 회사내에서 사용하는 내부의 네트워크로 업무처리를 합니다.

3.엑스트라넷은 회사내에서 회사원 뿐만 아니라 고객이나 협력업체에게도 제공하는 네트워크입니다.

'컴퓨터 > Network' 카테고리의 다른 글

UTP 와 STP의 카테고리  (0) 2012.11.03
LAN과 WAN 그리고 이더넷의 CSMA/CD와 토큰링  (0) 2012.11.03

설정

트랙백

댓글