목차
1. 프로그래밍의 속 여러 정의
2. 자바 언어의 특징
3. JVM이란?
4. 자바의 설치
5. 이클립스의 설치
6. 자바 프로그래밍의 순서
1. 프로그래밍의 속 여러 정의
(1) 프로그래밍
- 프로그래밍이란? 프로그램을 작성하는 것. 우선 프로그램이란, 컴퓨터가 인식할 수 있는 명령어들을 순차적으로 나열 해두었다는 개념이다. 이런 프로그램을 작성하는 과정을 의미한다. 다른말로 '코딩(coding)' 이라고 한다.
* programmer 와 coder의 차이는? 뉘앙스의 차이가 있다.
programmer : 좀더 구조적인 부분을 생각을 해서 작성을 하는 사람
coder : 주어진 상황안에서 코드를 작성하기만 하는 사람
개발자가 궁극적으로 지향하는 바는 프로그래머(programmer)가 되어야 한다.
(2) 프로그래밍 언어
- 프로그래밍 언어란? 프로그램을 작성하기위한 언어체계이다. 사람이 컴퓨터와 소통하게 하는 요소이며 프로그래밍 언어는 한가지에 국한되지않는다.
- 2019년 기준 tiobe 사이트 기준 C 언어와 자바가 나란히 1,2위를 차지하고있다. 자바와 파이썬의 간격도 조금씩 좁혀지고 있다.
- 각 언어의 등장 배경이 다르다. 하나의 언어를 보완하기 위해 다른 언어가 나타나기도 한다.
- 그렇다면 다른 언어가 1위인데 왜 자바를 배워야 할까?
1. 이미 자바로 만들어져있는 프로그램이 너무 많기 때문에 여전히 자바에대한 필요성을 인식할 필요가 있다.
2. 자바가 초심자가 접근하기에 편하고 이해하기 쉽다. 자바를 기반으로 하여 다른 프로그래밍 언어로의 접근이 용이.
3. 자바를 통해 객체지향 프로그래밍에 대한 이해에 용이
2. 자바 언어의 특징
(1) 자바는 운영체제에 독립적이어서 이식성이 우수하다.
EX: 영어를 모르는 한국인이 영어를 사용하려면 파파고라는 번역기를 사용하는 것처럼
인간의 언어를 모르는 컴퓨터에게 명령을 전달하려면 Compile 이라는 과정이 필요하다.
C 언어라면 윈도우나 리눅스에서는 별도의 번역기 같은 존재가 필요하지만
JAVA 라면 그러한 존재는 필요없이 각 운영체제 위에 존재하는 JVM이 있다.
어떤 운영체제이든 JVM(Java Virtual Machine)이 각각의 운영체제에 맞게 동작하게 해주는 역할을 한다.
즉 운영체제에 맞춰 별도의 번역기가 필요하지 않다. JVM에 있어선 운영체제를 신경쓸 필요가 없다.
이것이 자바 언자가 운영체제에 독립적이라는 의미이다.
(2) C언어에선 메모리를 할당하고 메모리를 회수하는 과정이 필요하지만 JAVA에서는 프로그래머의 영역이 아니다.
프로그래머가 신경써야할 부분이 줄어 편의를 제공한다.
(3) 풍부한 오픈소스가 제공되며 멀티쓰레드 환경을 제공한다.
3. JVM(Java Virtual Machine) 이란?
- 자바를 실행하기 위한 가상 기계
- 플랫폼에 의존적
- byte code(class파일)를 해석하고 실행하는 interpreter
- 운영체제에 맞게끔 동작하게 때문에 어떤 운영체제에서든 작동할 수 있다.
- JVM이 이해할 수 있는 파일 : Java Byte Code
윈도우나 리눅스 어떤 운영체제든 JVM이 맞춰서 동작한다.
자바코드로 언어 입력 ---- 컴파일 ---- JAVA BITE CODE (JVM) --------------리눅스, 윈도우 등의 운영체제
(우리가 이해) (번역기) ( 컴퓨터가 이해할 수 있음)
4. 자바의 설치
(1) 자바 개발 환경
사용자/개발자 입장에 따라 설치하는 범위가 달라짐
JVM이 동작하기위해선 추가적인 기능들이 필요하다. 추가적인 라이브러리 기능, 이런걸 포함하는 환경은 JRE 이다.
실행에 국한되지않고 개발로 나아갈 수 있어야한다. JDK 의 필요성.
(2) 자바의 범위 (아래로 갈수록 큰 규모)
JAVA SE : Java Standard Edition, 기본적으로 데스크탑에서 동작
JAVA EE : Java Enterprise Edition, 웹 개발을 위한 기능들이 포함
JAVA ME : Java Micro Edition, micro 의 의미로 보아 작은 기계등에 부착 가능, 작은 기기들에 맞게 프로그래밍 되어있는것
우리는 웹개발을 해야하므로 궁극적으론 EE를 사용할 수 있게 된다.
JDK는 어떤 범위일까? 이것이 포함하는 것은 결국 Compiler의 영역. 개발한 코드를 동작하게 하려면 컴파일의 역할이 필요하다.
- JDK
오라클 소유의 자바 프로그래밍 언어와 플랫폼 자체는 오픈으로 누구나 무료로 사용할 수 있다.
하지만 자바란 개발언어를 쉽게 활용하기 위해서는 개발환경인 JDK(Java Development Kit) 필요
- JDK는 Oracle JDK와 Open JDK가 존재
Oralce JDK는 비상업적인 용도에 한해서는 무료이지만 상업적 용도는 유료 구독형 라이선스로 구매 (Oracle JDK 8은 2019년 1월 이후 업데이트부터 라이선스 구독을 요구함)
Open JDK는 오라클이 오픈소스 커뮤니티에 제공한 소스기반으로 오픈소스로 개발되고 있으며 무료
(개인적인 용도로 사용하는 것은 문제가 되지 않지만 버그 패치나 보안 문제에 대한 서비스 지원은 되지 않음)
실제 기업에서도 Open JDK나 Azul Systems의 Zulu같은 대안 JDK를 고민 함 JDK자체는 특정 라이브러리를 제외하면 큰 차이가 없으므로 수업은 Open JDK를 설치
오픈 소스는 사용에 있어 문제가 없으나 오라클 JDK는 서비스에 있어서는 유료 필요
(4) 자바다운로드
- 무조건 최신 버전으로 받지는 않음, 왜냐면 안정성에 관한 문제가 있기 때문
윈도우 환경인 경우 msi
https://github.com/ojdkbuild/ojdkbuild)
(5) 자바 개발 환경
- Compile Test 컴파일은 번역기와같은 역할이라고 했음
1. workspace 만들기 => C:\workspace 폴더 생성
2. HelloWorld.java 파일 생성 => C:\workspace\HelloWorld.java 파일 생성
3. cmd창 열기 => 시작 > 실행 > cmd 입력(윈도우 키 + R)
4. workdspace 경로 찾아가기 => C:\ > cd workspace
5. Compile 하기 => C:\workspace > javac HelloWorld.java
6. 실행하기 => C:\workspace > java HelloWorld
(6)
cmd 명령어
- cd : change directory
- .. : cd.. 로 입력하면 한 폴더 위로 이동
- dir : directory의 약어
- javac : 프로그래밍 언어로 작성된 파일을 class파일로 compile 해줌
- java : class 화 된 파일을 JVM이 이해할 수 있도록 작성됨. 실행하라는 명령
5. 이클립스의 설치
통합개발 환경의 일종
(1) Eclipse 환경
- Encoding 설정
Window > preferences 선택
General > Workspace 선택
Encoding type을 UTF-8 로 설정
(2) 이클립스 설치 후 유용한 단축키
- ctrl + Shift + 플러스 부호 : 화면 폰트 크기 확대
- ctrl + s : 파일 저장
- ctrl + shift + +/- : 폰트사이즈 변경
(3) 기억할 것
- 파일명을 입력할때 프로젝트명은 주로 소문자로 작성, 띄어쓰기는 - 를 이용
- 되도록 한글 경로명은 작성하지 말 것
(4) Class 의 작성순서
[1] 패키지(pachage) 선언
[2] 임포트(import) 선언
[3] 클래스(class) 작성부
(4)-1 Class란?
자바에서 모든 코드는 반드시 클래스 안에 존재
서로 관련된 코드들을 그룹으로 나누어 별도의 클래스 구성
클래스들이 모여 하나의 Java 애플리케이션 구성
(5) main
‘public static void main(String[] args)’는 main 메소드의 고정 된 선언부
프로그램 실행 시 java.exe에 의해 호출 됨
모든 클래스가 main메소드를 가지고 있어야 하는 것은 아니지만 하나의 Java애플리케이션에는
하나의 main메소드를 포함한 클래스가 반드시 하나는 있어야 함