Notice
Recent Posts
Recent Comments
Link
«   2026/02   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
Tags
more
Archives
Today
Total
관리 메뉴

자바의 정석 기초편 1-1~3 본문

JAVA

자바의 정석 기초편 1-1~3

Daryl 2022. 12. 14. 20:56

Chapter 1 자바를 시작하기 전에

 

1-1 자바(java)란?

객체지향 프로그래밍 언어object-oriented programming language.

썬 마이크로시스템즈(현재 오라클에서 인수)에서 1996년 발표. 

컴퓨터 프로그램(애플리케이션)을 만드는데 사용.

실행환경(JRE) + 개발도구(JDK) + 라이브러리(API) 제공.

쉽고 빠르게 애플리케이션 개발 가능.

 

자바의 이용:

PC 애플리케이션 Ex. 인텔리제이, 이클립스

웹 애플리케이션(웹사이트) → 스프링부트

모바일 애플리케이션(안드로이드)

빅 데이터 Ex. hadoop

게임(마인 크래프트), 과학, 소형기기 등

 

왜 자바인가?

다양한 분야에서 활발히 사용

20년 동안 프로그래밍 언어 1,2위

배우기 쉽고 풍부한 학습 자료

모던 프로그래밍 언어(객체지향+함수형)

취업에 유리(실무에서 사용 多)

 

1-2 자바의 역사

 

1991년 썬의 엔지니어들이 고안한 언어 오크Oak가 기원.

제임스 고슬링, 아서 밴 호프 등은 가전제품에 탑재될 소프트웨어를 만들기 위해

C++을 확장해서 이용하려고 했음. 그러다 C++로는 부족함을 느껴 새로운 언어를 개발하게 됨.

장점을 도입하고 단점을 보완한 Oak는 처음에는 소형기기에 쓰려고 개발됐지만,

여러 종류의 운영체제(OS)를 사용하는 컴퓨터들이 통신하는 인터넷이 등장함.

운영체제에 독립적인 Oak가 이에 적합하다 판단, 개발 방향과 이름을 바꿈.

1995년 자바로 개발한 핫 자바Hot java를 발표하고, 1996년 자바 정식 버전을 발표함. 

J2SE(자바2스탠다드에디션), J2ME(자바2마이크로에디션), J2EE(자바2엔터프라이즈에디션)

Java SE 8 부터 6개월에 한번씩 업그레이드 되고 있다.

수업은 Java SE 8 (2014) 버전으로 진행. 구 버전이긴 하나 많이 쓰임. 기초를 배우기에 문제가 없다.

 

 

1-3 자바의 특징

객체 지향 언어:

기존 프로그래밍 언어 + 객체 지향 개념 Ex. C++, java, python, js, ...

객체지향개념의 특징인 상속, 캡슐화, 다형성이 잘 적용됨.

 

배우기 쉬움:

자바의 연산자와 기본 구문은 C++에서, 객체지향관련 구문은 스몰톡small talk에서 가져옴.

장점은 가져오고 단점은 보완해서, 간결하고 이해하기 쉬운 코드를 작성할 수 있음.

 

자동 메모리 관리Garbage Collection:

가비지 컬렉터garbage collector가 자동적으로 메모리를 체크 및 반환하면서 관리해줌.

(물론 가비지 컬렉터가 없을 때의 장점도 있긴 함)

 

멀티 쓰레드multi-thread(여러 활동을 동시에 할 수 있음) 지원:

여러 쓰레드에 대한 스케줄링scheduling을 자바 인터프리터가 담당하게 됨.

 

풍부한 라이브러리로 쉽게 개발 가능:

관련된 라이브러리(Java API)가 아주 많이 제공되므로 구현이 쉬움.

그래서 비교적 짧은 시간에 네트워크와 분산처리 개발이 가능하도록 지원함.

 

운영체제에 독립적: 

자바의 프로그램은 OS 관련 없이 구현가능함. 에뮬레이터인 자바 가상 머신(JVM) 덕분.

자바 응용 프로그램은 운영체제나 하드웨어가 아닌 JVM하고만 통신함.

그럼 JVM은 자바 응용 프로그램에게 전달 받은 명령을 해당 OS가 이해하게 변환해 전달함.

즉 JVM은 운영체제에 종속적임. 그래서 썬에서는 JVM을 여러 버전으로 제공함.

JVM만 다운받으면 되고 코드는 전혀 수정할 필요가 없음.

한번 작성하면, 어디서든 실행된다. → Write once, run anywhere

 

동적 로딩Dynamic Loading 지원:

자바로 작성한 프로그램은 여러 클래스로 구성됨. 

동적 로딩을 지원하기 때문에 모든 클래스가 로딩되지 않고, 필요 시에만 클래스가 로딩됨.

일부 클래스가 변경되어도 전체 앱을 다시 컴파일하지 않아도 됨.

애플리케이션의 변경 사항이 발생해도 비교적 적은 작업으로 처리 가능함.

 

 

 

 

'JAVA' 카테고리의 다른 글

자바의 정석 기초편 1-17~19  (0) 2023.02.09
자바의 정석 기초편 1-13~16  (0) 2022.12.19
자바의 정석 기초편 1-10~12  (0) 2022.12.19
자바의 정석 기초편 1-8~9  (0) 2022.12.15
자바의 정석 기초편 1-4~7  (0) 2022.12.15
Comments