희렌버핏
1장 자바 시작하기 본문
1.1 프로그래밍 언어란
컴파일러 : 소스를 기계어로 번역해주는 소프트웨어
1.2 자바란
1.2.1 자바 소개
- 1995 Sun Microsystems에서 발표한 프로그래밍 언어
- 처음에는 가전 제품에서 사용할 목적인 오우크(Oak) 언어에서부터 시작
- 인터넷 프로그래밍 언어로 발전하면서 자바라는 이름으로 변경, 전 세계적으로 사용
- 2010 Oracle에서 Sun 인수하여 Java 개발, 관리, 배포 주관
1.2.2 자바 특징
① 이식성이 높음
- 여러 운영체제를 옮겨다니며 실행할 수 있는 성질 (class 파일)
② 객체 지향 언어
- OOP (Object Oriented Programming) : 부품 객체들을 먼저 만들어 조합해 전체 프로그램을 완성하는 기법
- 캡슐화, 상속, 다형성 기능 완벽하게 지원
* 'VC++', 'C++' : 자바와 비슷하나 java가 더 객체지향 언어, 처음에는 main이라는 함수를 기반으로 시작하기 때문에 함수지향 언어의 특징을 가지고 있다.
* 'Java', 'C#' : 처음 실행할때부터 class라는 파일을 만들어서 실행하게 되어 있기 때문에 완전한 객체 지향 언어
③ 함수적 스타일 코딩을 지원
- 단순한 함수를 호출해서 사용하는 코딩 방식
- 대용량 데이터를 지원할 때, 일부분을 함수적 스타일로 코딩하는 것이 더 효율적
- 람다식을 지원 (간결한 코드, 컬렉션 요소를 필터링/매핑/그룹핑/집계 처리시 주로 사용
④ 메모리를 자동으로 관리
- 가비지 콜렉터 소프트웨어가 자동으로 실행하면서 사용하지 않는 객체를 제거해준다.
⑤ 다양한 애플리케이션 개발 가능
- 명령창이 있는 콘솔프로그램, UI 애플리케이션 (데스크탑 윈도우 프로그램), 서버 애플리케이션, 모바일 앱 (안드로이드) 등을 개발
- 다양한 애플리케이션을 개발하기 위해 개발도구와 API를 제공해야 한다.
- Java SE(Standard Edition) : 기본 에디션
- 자바 프로그램을 실행하기 위한 최소한의 실행환경(JVM)을 정의
- 자바 프로그램들이 공통으로 사용하는 개발 도구와 API를 정의
- 구현체 : JDK (Java Development Kit)
- Java EE(Enterprise Edition) : 서버 애플리케이션 개발 에디션
- 구현체 : WAS(Web Application Server) - Tomcat, WebLogic, Jeus, Jboss,...
- Java ME(Micro Edition) : 임베디드 or 모바일 장비를 위한 개발 도구와 API 정의
⑥ 멀티 스레드를 쉽게 구현할 수 있다.
- 동시 여러 작업, 대용량 작업 빠르게 처리 => 병렬 처리 필요 => 멀티 스레드 필요(클래스 형태로 제공하고 있음)
- 운영체제 별로 멀티스레드를 이용하는 API가 다름 -> Java API로 일관된 생성 및 관리
⑦ 동적 로딩(프로그램 실행 도중에 클래스들을 메모리로 로딩해서 사용하는 것) 지원
- 미리 객체를 만들어 놓지 않고 필요한 시점에 동적으로 로딩해서 객체를 생성할 수 있다.
- 유지보수시 특정 객체만 쉽게 수정 및 교체 가능.
⑧ 막강한 오픈소스 라이브러리가 풍부
- 자바는 오픈 소스 언어이므로 자바로 개발된 라이브러리도 오픈 소스가 많다.
- 노력과 시간 비용을 줄이고(직접 코딩), 유지 보수의 편리성을 위해 사용할 수 있다.
1.2.3 자바 가상 기계(JVM)
- 자바 프로그램(바이트 코드)을 해석하고 실행할 수 있는 운영체제
- 실 운영체제를 대신해서 자바 프로그램을 실행하는 가상이 운영체제
- 운영체제별로 프로그램 실행/관리 방법 다르기때문에, 운영체제와 자바 프로그램을 중계하는 JVM을 두어 동일한 실행 결과가 나오도록 설계
- JVM은 운영체제에 종속적이므로 운영체제에 맞게 설치 필요
- 한번의 실행으로 어디서나 실행가능하다는 장점이 있지만, JVM에 의해 번역되고 실행되기 때문에 'C', 'C++' 보다는 느리다는 단점이 있다.
1.3 자바 개발 환경 구축
1.3.1 자바 개발 도구(JDK) 설치
- Java SE 구현체의 종류
- JDK(Java Development Kit, JRE + 개발도구) : 개발하고 실행하기 위해 반드시 설치,
- JRE(Java Runtime Environment, JVM(자바 프로그램을 실행하는 가상의 운영체제) + 표준 클래스 라이브러리) : 실행만 할 경우 설치
- JDK(Java Development Kit) 설치
- 설치 파일 다운로드 사이트 : http://www.oracle.com
- 운영체제별, CPU 종류별로 설치 파일이 다름
- 환경 변수 생성 및 수정 (콘솔에서 컴파일 실행을 위해 jdk의 경로를 지정해줌)
- "JAVA_HOME"(직접 사용자가 만들어야됨) 생성 : JDK 설치 디렉토리로 지정
(콘솔이 JDK의 경로를 찾기 위해 "JAVA_HOME"이라는 것을 통해 찾아갈 수 있게 해줌, 서버가 구동될 때 JDK의 설치 위치를 알기위해 사용)
- "PATH"(운영체제 설치하면서 이미 만들어져 있는 환경변수) 수정 : %JAVA_HOME%\bin; 추가 (%JDK 환경변수 이름%하위폴더)
(임의의 디렉토리에서 자바 명령어(javac.exe, java.exe)를 실행시키기 위해 설정)
----------------------------------------------------------------------------------------------------
제어판 -> 시스템 속성 -> 고급
-> 환경 변수(운영체제가 실행하면서 프로그램한테 문자 정보를 제공할 목적으로 문자 정보를 저장해 놓은 저장소)
-> (上) 사용자 변수 : 현재 로그인한 사람한테만 적용되는 환경 변수 / (下) 시스템 변수 : 이 pc를 사용하는 모든 사용자한테 적용되는 환경 변수 => JAVA_HOME과 PATH를 수정
-> 시스템 변수에서 새로만들기
->
1. JAVA_HOME 설정
변수 이름 : JAVA_HOME
변수 값 : C:\Program Files\Java\jdk1.8.0_201(JDK 설치 디렉토리)
=> 주로 서버가 구동 될 때 JDK의 설치 위치를 알기 위해 사용됨
2. PATH 설정
변수 값 편집 : "PATH" 수정 - %JAVA_HOME%\bin; 추가
=> 임의의 디렉토리에서 자바 명령어(javac.exe, java.exe)를 실행시키기 위해 설정
-----------------------------------------------------------------------------------------------------
1.3.2 API 도큐먼트
- JDK에서 제공하는 표준 클래스 라이브러리를 설명해 놓은 HTML 페이지들 (JAVA 프로그램 사용할 때 여러가지 라이브러리를 사용하는데, 라이브러리의 종류가 뭐가 있고, 어떻게 사용하는지의 것들을 설명해 놓은 것)
- http://docs.oracle.com/javase/버전/docs/api/
=> 즐겨찾기에 추가해서 항상 볼 수 있도록 한다
1.4 자바 프로그램 개발 순서
1.4.1 소스 작성에서부터 실행까지
.java 소스 파일 작성 -> 컴파일러(javac.exe)로 바이트 코드 파일(.class) 생성 -> JVM 구동 명령어(java.exe)로 기계어 생성 -> 실행
1.5 주석과 실행문
1.5.1 주석 사용하기
- 실행과 상관없는 코드의 설명
- // : //부터 라인 끝까지 주석으로 처리 (행 주석)
- /* ~ */ : 사이에 있는 모든 범위를 주석으로 처리 (범위 주석)
1.6 이클립스 설치
1.6.1 이클립스 소개
- 2003년도에 IBM에서 개발
- 자바 통합 개발 환경(IDE:Intergrated Development Environments) 제공
- 자바 소스 편집 가능 에디터
- 디버깅 기능 제공 (에러 찾기)
- 자동 코드 완성 기능
- Eclipase Foundation에서 버전업과 배포 중
- 다양한 개발 환경을 구축할 수 있도록 플러그인 설치 가능 (안드로이드, 스프링, C/C++ 개발 환경)
1.6.2 이클립스 다운로드
- 이클립스는 자바 언어로 개발된 툴, JDK 필요
- 다운로드 사이트 : http://www.eclipse.org
- Workspace : 생성한 프로젝트가 기본적으로 저장되는 디렉토리
- Perspective : 유용하게 사용하는 뷰들을 묶어놓은 것
- 이클립스에서 저장을 누르면 자동으로 '.java' 파일을 '.class' 파일로 컴파일 해준다. bin 폴더에 저장된다.