풀스택 웹🌐 개발자 지망생 🧑🏽💻
➕ 인공지능 관심 🤖
Categories
-
┣
▶ COMPUTER_SCIENCE
📂: 7 -
┣
▶ WEB
📂: 3 -
┣
▶ ETC
📂: 3-
┃
┣
ETCS
📄: 10 -
┃
┣
SUBBRAIN 개발기
📄: 5 -
┃
┗
YOS 개발기
📄: 1
-
┃
┣
-
┗
▶ AI
📂: 9-
┣
AITOOLS
📄: 3 -
┣
CV
📄: 2 -
┣
DEEP_LEARNING
📄: 1 -
┣
DATA_VIS
📄: 2 -
┣
GRAPH
📄: 1 -
┣
LIGHTWEIGHT
📄: 1 -
┣
MATH
📄: 1 -
┣
NLP
📄: 3 -
┗
STRUCTURED_DATA
📄: 2
-
┣
JAVA 기본-자바 개요 및 환경 구축
자바 개요 및 환경 구축
자바 개요
자바 언어의 탄생 배경
- 1991년
- Green Project에서 가정용 전자기기에서 사용되는 작고 견고하며, 특정 디바이스에 종속되지 않는 언어 설계
- Virtual Machine에서 동작하는 중간에 바이트 코드를 생성, 이식성이 높은 언어를 디자인
- 1992년
- C++ 언어를 기반으로 개발,
Oak
라는 언어가 자바로 바뀜
- C++ 언어를 기반으로 개발,
- 1994년
- 자바 기능인 Applet을 보여주기 위해 중간코드(bytecode)를 해석하는 자바 기반 웹 브라우저 Hotjava
- 1996년
- Netscape 2.0 등 많은 업체에서 자바 지원, 자바 2 플랫폼 탄생
자바 언어 특징
- 단순성
- C, C++의 어려운 기능들 (C++의 전위처리, 포인터, 다중 상속, 구조체, goto, 연산자 중복 등) 제외, 가비지 컬렉터 기능 추가
- 객체지향 언어
- 높은 재사용성, 관련 API 제공
- 분산 처리 언어
- 인터넷 등의 분산환경에서 TCP/IP등의 프로토콜을 통해 효율적으로 실행할 수 있도록 설계
- HTTP,FTP등과 같은 프로토콜을 쉽게 사용할 수 있도록 라이브러리 제공
- 원격 메서드 호출과 관련된 RMI 기능의 라이브러리 제공
- 인터프리터 언어
.java
소드 코드 -컴파일->.class
(중간코드, Byte code) -인터프리팅-> 기계어 실행- 엄밀히 말하면 컴파일 + 인터프리터 언어
- 동적 언어 특징으로 프로그램에 영향 없이 라이브러리에 새로운 메서드나 속성을 실행 시간에 추가
- 높은 신뢰성
- 에러의 요소들을 제거 혹은 자동 해결
- 포인터 사용 안함
- 자동 가비지 컬렉션
- 엄격한 데이터 타입의 검사
- 실행시간 발생 에러 처리
- 클래스로더가 코드 분리 -> 바이트 코드 검증기에서 검증 -> 인터프리터에서 실행
- 플랫폼 독립적
- 자바 가상 머신에 의해 기계어로 번역되어 실행됨
- 사용하는 운영체제나 CPU등의 하드웨어 사양에 관계없이 실행 가능
- 높은 성능
- 가비지 컬렉션 기능: 자동으로 메모리 관리
- 객체 상태 추적 더 이상 참조 되지 않으면 자동으로 할당된 메모리 해제
- 멀티스레드
- 수행속도 빠르게 가능
자바 플랫폼
플랫폼은 프로그램이 실행될 수 있는 하드웨어 및 소프트웨어 환경
일반적인 플랫폼의 구조는 특정 OS를 지원하는 여러 프로그램을 만들고, 이를 통해 다양한 하드웨어 플랫폼을 지원.
자바 플랫폼의 경우, 자바 프로그램 하나가 JVM(Java Virtual Machine)을 통해 다양한 하드웨어 플랫폼을 지원.
자바의 경우 플랫폼이 소프트웨어만으로 구성되어 JDK(Java Development kit)로 설치되며 다음과 같은 종류가 존재.
1) Java SE : 기본 에디션, 자바 언어 대부분의 패키지가 포함
2) Java EE : JDBC, JNDI, JTA 등의 현업용 API 포함
3) Java ME : 모바일 기기 등을 위한 API 포함, 자체 API의 발전으로 사장
➕
JVM(자바 가상 머신)이란?
- 원래는 같은 기능의 프로그램을 특정 OS를 지원하도록 여러개 만들어야하는 비효율을 해결하기 위해 자바 가상머신(JVM) 도입
- 자바 프로그램과 운영체제 중간에서 운영체제의 영향을 받지않는 환경 제공
- 단, JVM은 운영체제와 직접적으로 통신하므로, 운영체제에 맞는 JVM 설치해야 함.
➕
자바 API란?
- 자주 사용되는 기본적인 클래스들을 기본 제공, 표준 클래스라고도 함
- 자바 자체는 작고 단순한 구조이며, 많은 기능들을 API로 제공
패키지 이름 | 설명 |
---|---|
java.applet |
애프릿 작성에 필요한 기능을 모아놓은 패키지 |
java.awt |
GUI 작성과 관련된 패키지, javax, swing 패키지와 함께 자바 GUI 애플리케이션 작성 시 필수적으로 사용함, 버튼, 텍스트필드, 메뉴 등 관련 컴포넌트와 이벤트 기능을 제공함 |
java.io |
자바 입출력 기능과 관련된 패키지, 파일이나 버퍼 등의 입출력 기능을 제공함 |
java.lang |
자바 언어의 기초적인 사항을 정의한 클래스와 관련된 패키지, Object 클래스, 문자열 관련, 시스템 관련, 멀티스레드 관련 기본적인 기능을 포함함 |
java.net |
자바의 네트워크에 관련된 패키지, 이 패키지 내에는 소켓과 관련된 기능을 제공함 |
javax.swing |
java.awt 패키지와 더불어 자바 GUI 애플리케이션 기능과 관련된 패키지, java.awt 포함 내용보다 다양하고, 융통성 있는 컴포넌트를 제공함 |
java.util |
유틸리티성 기능과 관련된 패키지, 날짜 표현이나 여러 자료형을 하나로 취급하는 컬렉션과 관련된 기능 |
자바 환경 구축
JDK란?
- JDK(Java Development kit)은 자바 프로그램 개발 및 실행에 필요한 컴파일러와 도구 등이 포함된 프로그램
- SDK(Software Development Kit)라고도 부름.
➕
실행만을 위한 도구는 JRE(자바 실행 환경, Java Runtime Environemt)라고 부른다.
- 오라클 웹 사이트에서 설치 가능
1. JDK 설치
✍
자바 설치 폴더의 구조
폴더명 | 설명 |
---|---|
bin |
자바 개발 관련 각종 명령을 포함, 자바 컴파일러와 인터프리터 명령도 포함 |
include |
플랫폼 별 중요 JDK의 각종 헤더 파일 포함 |
jre |
자바 실행 환경 관련 명령어와 라이브러리를 포함 |
lib |
자바 개발시 사용 라이브러리 포함 |
✍
bin
폴더내 주요 자바 명령어
Javac
: 자바 컴파일러javac [옵션] 자바 소스 파일명.java
로 사용- 자바 소스를 자바 바이트 코드로 번역
java
: 자바 어플리케이션 인터프리터java [옵션] 자바 클래스 파일명 [매개변수 리스트]
- 자바 애플리케이션 클래스를 해석하여 실행 결과를 보여줌
appletviewer
: 자바 애플릿 뷰어appletviewer [옵션] url을 포함하는 html 파일명.html
- 자바 애플릿을 실행하는 일종의 작은 웹 브라우저
jdb
: 자바 디버거jdb [자바 클래스 파일명]
- 프로그램 버그를 해결하기 위한 디버거
javadoc
: 자바 문서 생성기javadoc [옵션] [자바 소스 파일명.java]
- 소스 파일, 클래스, 인터페이스, 생성자, 메서드, 클래스 계층을 설명하는 html 파일 자동 생성
javap
: 자바 역컴파일러javap [옵션] [자바 클래스 파일명]
- 컴파일 후 생성된 자바 클래스 파일을 역컴파일해 클래스 내의 정보를 추적
jar
: 자바 파일 압축기jar [옵션] [.jar파일명] [압축할 자바 파일 리스트]
- 다수의 자바 클래스 파일을 하나의 .jar로 압축하여 네트워크를 통한 전송 효율화
특히 javac
명령과 java 명령은
자바 어플리케이션을 실행하는 데 필수적
2. 환경변수 설정
- 현재 명령어들은
bin
폴더 외부에서 사용하기 위해 시스템 환경변수의PATH
변수에 명령어들이 있는 폴더를 경로 추가하는 과정 - 자바의 컴파일, 인터프리트 등에 필요한 명령들을 운영체제에 등록해서 모든 경로에서 그 파일들을 인식할 수 있게 함
제어판 - 시스템 정보 - 고급 -환경변수 - 시스템 변수
영역 탐색PATH
변수 고른 후 편집- 자바의
bin
폴더를 변수 값 삽입 - 명령프롬프트(터미널) 에서
javac
명령어로 성공 확인
➕
JDK document
- 기본적인 기능을 자바 클래스로 구현해 제공하는 클래스 라이브러리
- 바이트 코드로 제공, HTML 파일로 문서화하여 홈페이지에서 제공 중
자바 통합 개발 툴 설치
- 실시간 문법체크, 디버깅, 소스 자동 생성 기능 등을 제공하는 IDE
이클립스 (Eclipse) - 사용 용이 인터페이스, 문법체크, 디버깅, 소스 자동생성 기능 무료로 제공
- 이클립스 공식 홈페이지에서 설치
- 폰트, 워크스페이스, 라인 표시 등 환경설정에서 변경 가능
_articles/computer_science/PL/JAVA/JAVA 기본/자바 개요/JAVA 기본-자바 개요 및 환경 구축.md