[Java] 자바 시작하기
프로그래밍 언어가 필요한 이유
기계어 (machine language)
컴퓨터가 명령을 처리할 때 사용하는 언어이며, 0과 1로 구성되어 있다.
사람이 0과 1로만 작성된 코드를 읽고 이해하기란 어렵다.
그러므로 사람과 기계어의 중간에서 다리 역할을 하는 프로그래밍 언어가 필요하다.
소스 파일
프로그래밍 언어로 작성한 파일을 의미한다.
문자로 구성되어 있어 사람이 쉽게 작성할 수 있다.
컴파일 (compile)
사람이 작성한 소스 파일은 기계가 이해하기 어렵다.
소스 파일을 기계가 이해할 수 있는 기계어로 번역하는 걸 의미한다.
컴파일러
컴파일을 수행하는 소프트웨어이다.
소스 파일을 기계어로 번역하는 역할을 수행한다.
자바?
썬 마이크로시스템즈(Sun Microsystems)사의 제임스 고슬링(James Gosling) 팀에 의해 개발된 언어이다.
자바의 역사
◾️ 1991년 : 오크(Oak)라는 이름으로 가전제품 내에서 동작하는 임베디드 프로그램을 위한 언어로 사용했다.
◾️ 1996년 : 자바(Java)라는 이름을 사용하게 되었다. (1.0.2)
◾️ 1998년 : 웹에서도 자바를 돌릴 수 있게 해 주는 자바 애플릿(Java Applet)이 추가되었다. (J2SE 1.2)
◾️ 2009년 : 썬 마이크로시스템즈사가 오라클과 인수 합병됨에 따라 소유권이 오라클에게 넘어가게 되었다.
특징
웹사이트 및 다양한 어플리케이션 개발의 핵심 언어로 사용하고 있다.
자바 가상 머신(JVM, Java Virtual Machine)을 사용하여, 수정을 거치지 않고 다양한 운영체제 환경에서 실행할 수 있다.
객체 지향 프로그래밍 언어이다. (OOP : Object Oriented Programming)
컴퓨터의 메모리를 자동으로 정리한다.
단점
실행을 위해 자바 가상 머신을 거쳐야 하므로, 다른 언어에 비해 실행 속도가 느리다.
다른 언어에 비해 작성해야 하는 코드의 길이가 긴 편이다.
자바 개발 도구 (JDK: Java Development Kit)
자바로 프로그램을 개발하기 위해서는 자바 개발 도구를 설치해야 한다.
JDK는 자바 언어로 프로그램을 개발할 때 필요한 환경과 도구를 제공한다.
종류
OpenJDK
https://openjdk.java.net
개발, 학습용, 상업용 모두 무료로 사용할 수 있다.
버전에 따라 버그 및 기술지원을 제공하지 않는다.
Oracle
https://www.oracle.com
개발, 학습용은 무료로 사용할 수 있다.
상업용 목적으로 사용할 경우 년간 사용료를 지불해야 한다.
장기 기술지원(LTS: Long Term Support) 및 업데이트를 제공한다.
명칭의 변화
◾️ JDK(Java Development Kit) : 초기 버전(1.0/1.1)에서 사용한 명칭이다.
◾️ J2SE(Java2 Standard Edition) : JDK 1.2를 발표하면서 J2SE로 명칭이 바뀌었다.
◾️ Java SE(Java Standard Edition) : JDK 1.6부터 Java SE로 명칭이 바뀌었다.
버전 체계
Java SE 11.0.2 (LTS)
SE
: 자바 표준 에디션
11
: 주 버전
0
: 개선 버전 (주 버전 내부에서 변경사항이 발생하면 수치가 증가)
2
: 업데이트 횟수 (높을 수록 안정적)
LTS
: 장기 지원 서비스 (장기간 기술지원을 제공하는 버전)
NetBeans
JDK 파일과 함께 NetBeans라는 에디터가 포함된 버전이다.
NetBeans보다는 주로 이클립스 또는 IntelliJ 툴을 사용한다.
설치
인스톨러 버전 (exe)
인스톨러가 JDK를 자동으로 설치한다.
ZIP 파일
자바 개발 환경을 구축할 때 원하는 폴더에 가져다 놓고 개발할 때 사용한다.
8버전과 11버전
11 버전부터는 32비트(x86) 운영체제를 지원하지 않는다.
8 버전은 JDK를 설치하면 JRE가 함께 설치된다.
JDK : 개발할 때 쓰는 환경과 도구
JRE : 개발이 완료 된 자바 프로그램을 실행
환경 변수
운영체제가 프로그램을 실행하는 데 필요한 정보를 제공해주는 변수이다.
자바 프로그램이 JDK를 찾을 때 위치 정보를 환경 변수를 통해 알게된다.
JDK의 버전과, 경로가 바뀔 수도 있기 때문에 환경 변수를 만들어 사용하면 편리하다.
%JAVA_HOME%
맥OS는 설치 시 자동으로 설정된다.
시스템 속성
윈도우 운영체제는 시스템 속성에 환경 변수를 만들고 JDK의 경로 정보를 입력해야 한다.
컴파일러가 환경 변수안에 두 개이상 존재할 경우 상위에 있는 컴파일로 실행된다.
JDK 경로를 상단에 올려두어야 해당 컴파일러가 작동된다.
- 윈도우 7 : 시작 → 제어판 → 시스템 및 보안 → 시스템 → 고급 시스템 설정
- 윈도우 8 : 화면 오른쪽 아래 (마우스 포인터) → 설정 → 제어판 → 동일
- 윈도우 10 : 검색 → 제어판 → 동일
이때 입력부분이 두 분류로 나뉘어진다.
- 사용자 변수 : 로그인 한 사람만 사용할 수 있는 정보
- 시스템 변수 : 컴퓨터를 사용하는 누구든지 사용할 수 있는 정보
명령 프롬프트 명령어
명령 프롬프트 명령어로 소스파일을 컴파일하고 실행할 수 있다.
자바 개발 도구(JDK)는 컴파일러를 제공한다.
javac.exe
소스 파일을 컴파일하는 컴파일러
명령 프롬프트에서 이 파일로 소스 파일을 컴파일 할 수 있다.
컴파일
자바 8 이전 버전
컴파일
javac -d [바이트 코드 파일 경로]/*.java
javac -d bin src/sec03/exam01/*.java
실행
java -cp(classpath) [바이트 코드 파일 경로]
java -cp bin sec03.exam01.Hello
자바 11 이후 버전
컴파일
javac -d [모듈 파일 경로][바이트 코드 파일 경로]/*java
javac -d bin src/module-info.java src/sec03/exam01/*.java
실행
java -p [바이트 코드 파일 저장 위치] -m 모듈/패키지이름 - 클래스이름
java -p bin -m chap01/sec03.exam01.Hello
폴더에서 바로 명령 프롬프트(powerShell)를 여는 방법
Shift + 마우스 오른쪽
현재 폴더의 구조를 확인하는 명령어
tree /f
이클립스
무료 오픈 소스 통합 개발 환경(IDE : Integrated Development Environment)이다.
프로젝트의 생성, 자동 코드 완성, 디버깅 등과 같이 개발에 필요한 여러 가지 기능을 통합적으로 제공해주는 툴이다.
플러그인을 설치하면 다양한 개발 환경을 구축할 수 있다.
이클립스 외에도 intelliJ를 많이 사용하는데, 이는 무료 버전과 유료 버전이 있다.
2019-03 버전
2019-03 버전 이후부터는 32비트(x86) 운영체제를 지원하지 않는다.
워크 스페이스 (workspace)
이클립스 실행과 관련된 메타 데이터(.metadata)와 프로젝트 폴더(소스 코드)가 저장되는 폴더이다.
퍼스펙티브 (perspective)
프로젝트를 개발할 때 유용하게 사용할 수 있는 화면들을 미리 묶어 이름을 붙여놓은 걸 의미한다.
이클립스에서 파일 탐색기를 여는 방법
폴더 (마우스 오른쪽) → Show In → System Explorer
프로젝트 생성
패키지
파일 시스템, 폴더의 용도와 비슷하다.
프로젝트가 다른 프로젝트의 모듈로 재사용할 수 있다.
파일 저장
파일을 작성 후 저장하면 자동으로 컴파일이 되어 바이트 코드(.class) 파일이 생성된다.
이클립스가 내부적으로 javac.exe
를 사용하여 컴파일 작업을 수행한다.
기본적으로 소스 파일은 src 폴더에, 바이트 코드 파일은 bin 폴더에 저장된다.
파일 실행
Run
→ Java Application
컴파일 된 바이트 코드 파일을 실행한다.
프로젝트 실행
TCPSCHOOL 자료와 혼공자 강의를 기반으로 작성하였습니다. 🙏
◾️ TCPSCHOOL : 자바 기초, 자바 프로그램
◾️ 혼공자 : 2강 3강 4강 5강 6강
Author And Source
이 문제에 관하여([Java] 자바 시작하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@soheeoott/Java-자바-시작하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)