티거의 개발 공간



형 변환


형 변환은 서로 상속된 클래스들을 타입으로 사용한 변수일 경우 형 변환이 가능하다. 예시를 들자면 실수형인 double과 float를 예시로 들 수 있다.

형 변환은 아래와 같이 가능하다.


1
2
float f = 1.0f;
double d = (double) f;
cs


float값을 double로 변환하여 변수로 저장시킨 것인데 2번째 줄이 형 변환 코드이다.

형식은 아래와 같다.


1
type1 value2 = (type1) value1;
cs


연산자


연산자는 크게 산술, 부호, 문자열, 비교, 논리, 비트 논리, 비트 이동, 대입, 증감, 삼항 연산자로 나뉜다.


산술 연산자


산술 연산자는 -,+,*,/,% 으로 총 5개의 연산자이며, 기본적인 사칙연산을 수행한다.


-는 뺄셈 연산

+는 덧셈 연산

*는 곱셈 연산

/는 나눗셈 연산

%는 나눗셈 후 나머지 연산


1
int i = 10 / 5;
cs


위처럼 나눗셈 연산 후 i에 대입이 가능하다.


부호 연산자


부호 연산자는 -와 +로 총 2개의 연산자이며, 실수의 부호를 결정하는데 사용한다.


1
2
int i = 20;
int d = -i; //d = -20
cs


위처럼 i는 양수 20을 대입하고 d는 i에 - 연산자를 사용하여 -20을 대입한다.


문자열 연산자


문자열 연산자는 +로 단 한개 뿐이다. 이 문자열 연산자는 두 개의 문자열을 이어 붙이는데 사용한다.


1
String name = "Hello, " + "World!";
cs


위처럼 두 개의 문자열을 +로 이어 붙여 name에 대입할 수 있다.


비교 연산자


비교 연산자는 ==, !=, >, >=, <, <= 로 총 6개의 연산자이며, 두 개의 값을 비교할 때 사용된다.


==는 비교 대상 둘이 같으면 true, 다르면 false를 반환하고

!=는 비교 대상 둘이 다르면 true, 같으면 false를 반환한다.

> 는 연산자의 좌측에 있는 값이 우측의 값보다 더 크다면 true, 더 작다면 false를 반환,

>= 는 연산자의 좌측에 있는 값이 우측의 값보다 더 크거나 같다면 true, 더 작다면 false를 반환한다.

< 는 연산자의 우측에 있는 값이 좌측의 값보다 더 크다면 true, 더 작다면 false를 반환,

<= 는 연산자의 우측에 있는 값이 좌측의 값보다 더 크거나 같다면 true, 더 작다면 false를 반환한다.


여기서 주의해야할 점은 ==나 !=는 실수형이 아닌 다른 모든 값들을 비교할 수 있지만

부등호인 >, >=, <, <= 는 실수형에서만 사용이 가능한 대소 비교 연산자들이다.


1
2
3
int i = 10;
int d = 5;
boolean bool = i > d;
cs


위의 예시는 i가 10이고 d가 5인 상태에서 i > d 는 참이므로 true를 반환한다.

따라서 bool의 값은 true이다.


논리 연산자


논리 연산자는 &&, &, ||, |, ^, ! 로 총 6개의 연산자이며, 두 개의 논리형을 구별한다.


&&와 &은 좌측과 우측에 있는 피연산자들이 모두 true일 경우에만 true를 반환하고 두 연산자의 역할은 같다.

||와 |은 좌측과 우측에 있는 피연산자들중 하나 이상이 true일 경우에만 true를 반환하고 두 연산자의 역할은 같다.

^ 는 좌측과 우측에 있는 두 피연산자의 논리가 반대여야 true를 반환한다.

! 는 논리 부정으로 뒤에 오는 피연산자의 논리의 반대 논리를 반환한다.


1
2
3
int i = 10;
int d = 5;
boolean bool = (i > d) ^ (i < d);
cs


위의 예시는 i가 10이고 d는 5이다. 이때 i > d는 참이므로 true, i < d 는 거짓이므로 false이다.

이때 논리 연산자인 ^으로 좌측과 우측 두 피연산자의 논리가 반대이므로 bool 은 true가 된다.


대입 연산자


대입 연산자는 =, +=, -=, *=, /=, %=, &=, !=, ^=, <<=, >>=, >>>= 로 총 12개의 연산자이다.


=는 우측의 값을 좌측에 대입한다.

+=는 우측의 값을 좌측의 값에 더한 후 좌측에 대입한다.

-=는 우측의 값을 좌측의 값에 뺀 후 좌측에 대입한다.

*=는 우측의 값을 좌측의 값에 곱한 후 좌측에 대입한다.

/=는 우측의 값을 좌측의 값에 나눈 후 좌측에 대입한다.

%=는 우측의 값을 좌측의 값에 나눈 후 나머지를 좌측에 대입한다.


아래는 비트 논리나 비트 이동에 사용되는 연산자이다.

(해당 강좌에서는 주로 다루지 않음.)


&=는 우측의 값을 좌측의 값에 & 연산을 실행 후 결과를 좌측에 대입한다.

!=는 우측의 값을 좌측의 값에 ! 연산을 실행 후 결과를 좌측에 대입한다.

^=는 우측의 값을 좌측의 값에 = 연산을 실행 후 결과를 좌측에 대입한다.

<<= 는 우측의 값을 좌측의 값에 << 연산을 실행 후 결과를 좌측에 대입한다.

>>= 는 우측의 값을 좌측의 값에 >> 연산을 실행 후 결과를 좌측에 대입한다.

>>>= 는 우측의 값을 좌측의 값에 >>> 연산을 실행 후 결과를 좌측에 대입한다.


1
2
int i = 10;
+= 5;
cs


위의 예시는 i가 10이고, 2번째 줄에서 += 대입 연산자를 이용해 10에 5를 더한 후 i에 대입한다.

따라서 i의 값은 15이다.


증감 연산자


증감 연산자는 ++, --로 총 2개의 연산자이다.


++는 좌측의 값에 1을 더한 후 좌측에 대입한다.

--는 좌측의 값에 1을 뺀 후 좌측에 대입한다.


1
2
int i = 10;
++;
cs


위의 예시는 i가 10이고, 2번째 줄에서 ++ 증감 연산자를 이용해 10에 1을 더한 후 i에 대입한다.

따라서 i의 값은 11이다.


삼항 연산자


삼항 연산자는 [ 조건식 ? 값1 : 값2 ] 라는 형식으로 조건식에 따라 반환되는 값이 다른 연산자이다.


[ 조건식 ? 값1 : 값2 ] 는 조건식이 true면 값1을 반환하고 false면 값2를 반환한다.


1
2
3
int i = 10;
int d = 5;
int result = (i > d) ? i : d;
cs


위의 예시는 i가 10이고 d가 5이다. 이 때 삼항 연산자의 조건식인 i > d는 참이므로 true이고 그에 따라서 i의 값이 반환된다.

따라서 result는 i의 값인 10이 된다.


비트 논리 연산자, 비트 이동 연산자


비트 논리 나 비트 이동 연산자는 암호화 파트가 아니라면 거의 사용하지 않으므로 다음에 알아본다.




코딩 예시

우선 필자는 아래의 코딩 예시를 먼저 들어 설명을 시작하고자 한다.


1
2
3
4
5
public class Main{
    public static void main(String[] args){
        System.out.println("Hello, World!");
    }
}
cs


위의 예시는 프로그램을 실행했을 때 'Hello, World!' 라고 출력하는 가장 기초적인 프로그램이다.


코딩 방법


위의 예시를 계속 인용해 설명하겠다. 우선 코드는 블럭을 이해해야한다. 블럭이란, 중괄호 { 나 } 로 묶여있는 한 덩어리를 의미한다.


1
2
3
4
5
public class Main{ //첫번째 중괄호 시작
    public static void main(String[] args){ //두번째 중괄호 시작
        System.out.println("Hello, World!"); //세미콜론
    } //두번째 중괄호 
//첫번째 중괄호 끝
cs


이렇게 블럭은 시작과 끝이 정확히 존재해야하며 시작과 끝이 정확하지 않을 경우 오류가 발생한다.


그 다음으로 세미콜론( ; ) 이다. 세미콜론은 실행할 코드의 끝을 맺을 때 사용하는 문자다. 국어 문법에 비유하자면 마침표(.) 와 같다고 할 수 있다.

세미콜론을 찍지 않는다면 해당 코드의 끝은 정확해 지지 않아 오류가 발생한다.


첫번째 중괄호는 '클래스' 인 Main의 블럭이다.

Main 클래스 블럭 안에 무언가 생성된다면 그것들은 모두 Main에 소속된다.


두번째 중괄호는 '메서드' 인 main의 블럭이다.

이 메서드는 프로그램이 실행될 때 가장 먼저 실행되는 메서드이다. 메서드에 붙어있는

(String[] args) 는 메서드 호출에 필요한 '인자'이다. 이 부분은 아직 우리가 손대지 않을 것이므로 용어에 대해서

알아가기만 하자.


변수


변수는 프로그램이 실행되는 중 바뀔 수 있는 유동적인 값을 의미한다.

변수는 아래와 같이 선언할 수 있다.


1
int i = 0//선언 후 0으로 초기화
cs


1
2
int i; //선언
= 0//변수에 0 
cs


위처럼 두 가지 사용법이 있다. 기본적으로 int 는 해당 변수의 형(形)이다. int 는 정수형으로 정수만 대입될 수 있다.

그리고 i 는 변수의 이름이다. 선언 후 아래코드에서 i라는 이름으로 변수 사용이 가능하다.

= 는 이후 연산자 파트에서 언급하겠지만 '대입 연산자' 라는 연산자이다. 


1
2
3
4
5
6
public class Main{
    public static void main(String[] args){
        int i = 0;
        System.out.println(i);
    }
}
cs


위는 변수의 사용 예시이다. 메서드 안에 정수형 변수인 i가 선언되고 0으로 초기화됐다. 그리고 아래에서 변수 i를 출력하고 있다.

이 때 이 프로그램의 결과는 '0' 이라고 출력한다.


여기서 가장 중요한 것은 변수의 '명명(命名)규칙' 이다. 4개가 존재하니 아래 언급하는 4개의 내용은 모두 숙지하자.


1. 대, 소문자가 구분되며 길이에 제한이 없다.

2. 예약어를 사용해서는 안된다.

3. 숫자로 시작해서는 안된다.

4. 특수문자는 '_'와 '$' 만 허용된다.


1번은 변수의 이름이 Hello 와 hello가 있다고 한다면, 두 변수는 다른 변수로 인식된다는 것이다.

2번은 예약어가 무엇인지에 대해 알아야하는데 예약어는 위의 코드에서 자주 보이는 public, class, static, void 와 같이 보라색으로 하이라이팅되는 단어들이다.

이러한 단어들이 포함되는것은 가능하나, 한 예약어 자체가 변수 이름이 되어서는 안된다.

3번 'hello1' 과 같이 명명은 가능하지만 '1hello' 와 같이 명명은 불가능하다는 뜻이다.

4번은 변수 이름안에 'frame_hello' 와 같이 명명은 가능하지만, 'frame!hello' 와 같이 위에 언급된 두 특문이 아니라면 사용이 안된다.


형(形)


변수의 형은 크게 기본형과 참조형으로 나뉜다.


기본형은 다시 논리형, 문자형, 정수형, 실수형 으로 나뉜다.


 논리형

문자형 

정수형 

실수형 

 boolean

char 

byte 

float

 

 

short

double

 

 

int

 

 

 

long

 


아래 표는 변수의 형들이 받을 수 있는 값의 범위이다.


 형

 저장할 수 있는 값의 범위

 boolean

 false,true

 char

 \u0000 ~ \uffff

 byte

 -128 ~ 127

 short

 -32,768 ~ 32,767

 int

 -2147483648 ~ 2147483647

 long

 -9223372036854775808 ~ 9223372036854775807

 float

 1.4E-45 ~ 3.4028235E38

 double

 4.9E-324 ~ 1.7976931348623157E308


기본형들은 쓰다보면 외워지겠지만, 값의 범위는 외워지지도 않고 외우지 않아도 된다. 필자도 값의 범위는 책이나 인터넷을 참고한다.


참조형은 기본형을 제외한 나머지이기에 기본형을 모두 외우면 되지만, 참조형 중에서도 매우 잘 사용하는 형이 하나 있다.

'String' 이라는 문자열인데, 기본형인 문자 하나만 저장하는 char을 여러개로 배열하여 저장하는 참조형이다. 사용은 아래와 같이 가능하다.


1
String hello = "Hello, World!";
cs


 



1. 이클립스의 화면 구성

 

 

 

사용빈도가 높은 순서대로 (파일 수정 공간, 패키지 탐색기, 콘솔, 툴바, 클래스 파일 구성 확인) 인 것 같다.

이 사용 빈도는 개발자마다 다르겠지만, 필자는 이 순서대로 인듯 하다.

 

 

 

2. 프로젝트 (Project)

 

앞으로 새로운 프로그램을 만들 때 마다 프로젝트를 새로 만들게 될 것이다.

프로젝트 만드는 방법은 아래 순서를 따르면 된다.

 

 

왼쪽의 Package Explorer 창에 오른쪽 클릭 후

New - Java Project 를 클릭한다.

 

 

그러면 위와 같은 화면이 나타날 것이다.

상단의 빨간색 사각형 부분에는 프로젝트의 이름을 적는다.

(필자는 Example 이라고 적었다.)

그 후 Finish를 눌러 프로젝트를 생성을 마친다.

 

 

프로젝트 생성을 마치면 Package Explorer에 Example이라는 프로젝트가 나타난다.

빨간색 사격형으로 표시된 화살표를 누르면 사진과 같이 프로젝트의 내용이 보일 것이다.

 

3. 패키지(Package)

 

패키지는 간단히 '클래스 파일을 패키지라는 그룹으로 구분한다' 라고 생각해도 될 듯하다.

패키지 생성 방법은 아래와 같다.

 

 

프로젝트 파일 안에 src에 마우스 오른쪽 클릭 후

New - Package 를 클릭한다.

 

 

그럼 위와 같은 창이 나타나며

상단의 빨간색 사각형 안에 패키지 명을 쓴다.

대부분 메인 패키지명은 'com.닉네임.프로젝트명' 으로 적는다.

물론 아닌 경우도 있지만, 필자는 이렇게 적는다.

패키지명 작성 후 Finish를 눌러 패키지 생성을 마친다.

 

 

위는 패키지 생성이 완료된 모습이다.

안에 아무런 내용이 없고 빈 패키지이기 때문에 하얀 패키지 아이콘으로 나온다.

안타깝게도 아직은 코딩을 시작할 수 없다.

다음 단계인 클래스 파일을 만들어야만 코딩을 시작할 수 있다.

 

4. 클래스(Class)

 

 

클래스 파일은 생성하고 싶은 패키지에 커서를 대고

오른쪽 클릭 후 New - Class를 클릭한다.

 

 

그럼 위와 같은 창이 나타난다.

상단 빨간색 사각형 안에 클래스명을 적는다.


클래스명 적는 곳보다 위에 Package라는 항목이 있다. 저 항목은 지금 생성하는 클래스 파일이 어느 패키지에 생성될 것인지

적는 곳인데, 패키지 생성을 하지 않고 src에 직접 클래스 파일 생성을 시작하고저 Package에 패키지 명을 새로 적으면 없는 패키지를 생성하고 그 패키지에 바로 클래스 파일을 생성한다.

패키지 생성에 대한 얘기는 했지만, 이 방식대로 클래스를 생성한다면, 따로 패키지를 생성하는 작업은 건너뛰어도 된다.

실제로 필자는 패키지 생성부분은 건너뛰고 코딩한다.


중간에 public static void main(String[] args) 라는 체크 항목이 있는데

실행 가능한 프로그램을 만들기 위한 기본 메서드를 만들어주는 역할을 한다.

메서드는 이후 강좌에서 설명하기에 여기서 설명하지는 않겠다.

물론 실행 가능한 프로그램이 아닌 다른 목적으로 만들거나 직접 적어도 큰 상관은 없다.


필자는 사진에 나오지 않았지만 체크를 하고 마쳤다.

Finish를 눌러 생성을 마친다.

 

 


생성을 마치면 만들었던 Package가 하얀 아이콘에서 갈색 아이콘으로 변하고 그 안에 Main.java라는 파일이 생겼다.

그리고 중앙에 코딩하는 자리에는 생성한 Main 클래스 파일이 열려 코딩이 가능하게 되어있다.

여기까지가 클래스 파일의 생성과정이다.


다음 강좌는 본격적인 코딩으로 문자를 출력하고 변수를 다루어 볼 것이다.

 

 

1. JDK 설치

자바 프로그래밍을 시작하기 위해서는 Java Development Kit(이하 JDK)를 설치해야 한다.

이 JDK는 자바 개발사인 Oracle 사의 홈페이지에서 직접 받을 수 있다


>> 오라클 JDK 다운로드 페이지

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


위의 링크는 Oracle 사의 다운로드 페이지이다 위의 페이지에 접속 후 아래의 순서를 따르도록 하자

 

 

링크된 사이트의 첫페이지 화면은 위와 같다.
빨간색 사각형으로 표시가 된 저부분이 최신 JDK를 다운로드 한다는 건데
저곳을 클릭해보자 

 

 

 

그림 위와 같은 화면이 나오게 된다.
간색 사각형의 체크하는 부분(Accept License Agreement) 를 체크한다.
그래야 아래 JDK 설치 파일을 받을 수 있다.
체크 후 아래 파일들 중 자신의 운영체제에 맞는 JDK 설치파일을 다운로드한다.

다운로드 후 기본 설정대로 쭉 설치만 하면 문제 없이 원활이 설치가 될 것이다.

 

2. Eclipse 설치

 

JDK 설치를 완료했다면 Eclipse 를 설치해야 한다.
요즘 Eclipse를 .exe 파일로 설치 파일을 배포하기도 하지만,
필자는 .zip 파일로 배포되는 Eclipse 패키지를 받을 것이다.
어떤 것을 받든 간에 별문제는 발생하지 않는다.
다만 'Java EE Developers' 버전을 받아야 한다. 꼭!

>> 이클립스 다운로드 페이지

위 사이트는 공식 다운로드 사이트이다.

 

 

처음 접속하면 위와 같은 페이지가 나올 텐데, 대부분 빨간색 사각형이 표시된 곳을 보면
운영체제를 인식하여 다운로드 권장을 한다.
물론 자신의 운영체제 비트에 맞게 클릭하면 된다.

만약, 빨간색 사각형 쪽에 정상적으로 자신의 운영체제가 인식되지 않고 다른 운영체제 다운로드로 나온다면,
파란색 사각형이 표시된 곳을 클릭해보자.

 

 

파란색 사각형을 클릭해서 들어와 보면 오른쪽에 Download Links 라고 해서
여러 운영체제가 나열되어있다. 저곳에서 자신에게 맞는 운영체제를 클릭해도 상관없다.

 

 

마지막, 자신의 운영체제에 맞게 클릭을 하였다면 이런 페이지가 나타나는데
그냥 바로 DOWNLOAD 주황색 버튼을 클릭하면 다운로드가 시작된다.

 

 

다운로드 후 압축을 풀고 안에 파일을 보면 위와 같은 구조일 것이다.
위의 사진에서 선택해놓은 eclipse.exe 파일을 실행시켜보자.

 

 

실행하면 로딩 화면을 거쳐 위와 비슷한 팝업창이 나타날 것이다.
이후에 프로젝트 파일을 생성하고 저장하는데 쓰일 경로를 설정하는 건데,
필자는 이미 설정해놓았기에 초기 팝업과는 조금 다르다.

초기 팝업은 팝업창 아래에 'Use this as the default and do not ask again' 이라는 체크 항목이 있다.
이 항목은 위에 설정한 경로를 기본으로 사용하고 이후 실행할 때는 이런 경로 선택창을 띄우지 않는다라는 옵션인데,
켜질 때마다 물어보는 귀찮은 일이 생기기 싫은 사람이라면 체크하고 OK를 누르기 바란다.

 

 

 


OK 를 누르고 나면 위와 같은 화면이 나타난다. 딱히 볼 것도 없으니 오른쪽 상단의 Workbench를 눌러 작업환경으로 이동하자.

위까지가 개발 환경 구축 단계이다.
다음 강좌에서는 프로젝트, 클래스 파일에 대해 설명하고 변수까지 만들어보겠다.