반응형

자바는 썬 마이크로시스템즈의 제임스 고슬링(James Gosling)과 다른 연구원들이 개발한 객체 지향적 프로그래밍 언어이다.

처음에는 가전제품 내에 탑재해 동작하는 프로그램을 위해 개발했지만 현재 웹 애플리케이션 개발에 가장 많이 사용하는 언어 가운데 하나이고, 모바일 기기용 소프트웨어 개발에도 널리 사용하고 있다. 현재 버전 14까지 출시했다.(2020년 05월 기준)

출처 위키백과

이 언어는 원래 제임스 고슬링의 사무실 밖에 있던 오크 나무를 따다

오크(Oak), 혹은 그린(Green) 이라고도 불렀으나,  오크(Oak) → 자바(Java)로 개명 후 출시

 

객체지향 언어 (Object-Oriented Programming, OOP)

프로그래밍은 두 가지 방식이 있습니다.

1. 절차 지향

2. 객체지향

 

여기서 소개하는 Java는 객체지향 언어입니다.

 

일단 Java에 대해 설명하라는 질문을 받으면 무조건 나와야 하는 게 객체지향 언어라는 것입니다.

객체지향은 Smalltalk라는 언어에서 처음 개념이 탄생했는데,

 

객체 지향의 장점

 

1. 캡슐화

필요한 속성(Attribute)과 행위(Method)를 하나로 묶고

그중 일부를 외부에서 사용하지 못하도록 은닉한다

관련된 코드와 데이터가 묶여있고 오류가 없어 사용이 편리합니다. 데이터를 감추고 외부 세계와의 상호작용은 메서드를 통하는 방법인데, 라이브러리로 만들어 업그레이드하면 쉽게 바꿀 수 있습니다.

 

2. 상속 (extends)

이미 작성된 클래스를 이어받아서 새로운 클래스를 생성하는 기법으로 위에서 말한 기존 코드를 재활용해서 사용하는 것을 의미합니다. 객체지향 방법의 큰 장점 중 하나입니다.

 

3. 다형성 (Overloading, Override)

하나의 이름(방법)으로 많은 상황에 대처하는 기법입니다. 개념적으로 동일한 작업을 하는 함수들에 똑같은 이름을 부여할 수 있으므로 코드가 더 간단해지는 효과가 있습니다.

 

객체 지향의 단점

 

1. 개발 설계의 복잡함

2. 느려지는 런타임 속도

 

자바 가상 머신( Java Virtual Machine, JVM)

  1. 자바는 ‘바이트코드(Bytecode)’를 생성한다. 바이트코드는 하드웨어에 종속적이지 않은 중간 파일로, 가상 머신을 거쳐 해석·실행하는 구조이다.
  2. 가상 머신으로 자바는 스마트폰, 컴퓨터, Mac, 리눅스 등 서로 다른 기기나 운영체제에서 동일한 프로그램을 개발하고 실행할 수 있다.

자바 플랫폼

  1. 자바 플랫폼은 자바 프로그램이 실행되는 특정 환경을 말한다.
  2. 여러 제약(화면, 입출력 장치, 성능 등) 때문에 모든 하드웨어나 적용 분야에서 동일한 자바를 사용하는 것은 불가능하다. 각 영역에 특화된 자바 플랫폼이 있다.

  • 중요 세 가지
  • JDK(Java Development Kit): 자바 프로그램 개발에 필요한 구성 요소
  • JRE(Java Runtime Environment): 자바 프로그램 실행에 필요한 구성 요소
  • API(Application Programming Interface): 자바 응용 프로그램 개발에 사용하는 라이브러리

자바의 장점

  1. 간결하면서도 강력한 객체지향 언어이다.
  2. 개방형 구조로 여러 기술과 융합이 가능하다.
  3. 플랫폼에 독립적이므로, 여러 운영체제나 하드웨어에서도 동일하게 실행한다.
  4. 많은 오픈소스 프레임워크로 생산성을 증가하고 유지보수 비용을 절감할 수 있다.

자바의 단점

  1. 처리 속도가 중요한 애플리케이션에는 적합하지 않다.
  2. GUI 요소가 많은 MS 윈도 응용 프로그램 개발에는 적합하지 않다.
  3. 하드웨어에 연결하여 제어할 수 없기 때문에(가상 머신 이용) 직접 하드웨어를 정밀하게 조정해야 하는 프로그램 개발에는 적합하지 않다.

자바 프로그램 개발 절차

  1. 자바 프로그램 개발은 자바 소스 코드(. java) 작성 → 자바 컴파일러 → 자바 바이트코드(. class, 컴파일) → 자바 가상 머신(JVM) → 운영체제, 하드웨어 → 실행의 단계로 진행한다.
  2. 바이트코드는 운영체제에 상관없이 가상 머신에서 실행하는 중간 코드이다.

정리

1. 자바(Java) 첫 공개 1995년이고, 제임스 고슬링이라는 선생님(아저씨)이 만들었다. 

2. 하드웨어에 종속적이지 않은 중간 파일로, 가상 머신을 거쳐 해석·실행하는 구조

    (운영체제, 하드웨어 특성을 타지 않는다는 말입니다.)

3. 개발할 땐 무조건 JDK를 받고, 자바로 만들어진 프로그램만 사용 시 JRE를 받자 (귀찮으니까 무조건 JDK)

4. 객체 지향 언어 (Object-Oriented Programming, OOP)

반응형

'java' 카테고리의 다른 글

[Java] 추상 클래스  (0) 2019.10.26
[Java] 예약어 정리  (2) 2019.10.23
[Java] 지역변수와 전역변수  (1) 2019.10.23
[Java] 기본 자료형 9가지 문법 총 정리 (Feat.String,int)  (0) 2019.10.22
[Java] 컬렉션(Collection)이란?  (0) 2019.09.16

+ Recent posts