세리프 따라잡기

객체지향프로그래밍 1 본문

Java

객체지향프로그래밍 1

맑은 고딕 2021. 3. 8. 19:48

객체지향프로그래밍

1.

  • 소스:

프로그래밍 언어로 작성된 텍스트 파일

  • 컴파일:

소스 파일을 컴퓨터가 이해할 수 있는 기계어로 만드는 과정

  • 자바:

.java(소스코드) -> .class(바이트 코드: 운영체제가 달라도 해석할 수 있는 sw만 있으면 동작이 가능하다)

  • 자바의 시작:

선마이크로시스템즈의 제임스 고슬링에 의해 시작했고, 1995년에 자바를 발표했다.

  • 목적:
  1. 플랫폼 호환성 문제 해결: 기존 언어로 작성된 프로그램은 pc, 유닉스, 메인 프레임 등 플랫폼 간에 호환성이 없다. 그러나 소스를 다시 컴파일하거나 프로그램을 재 작성해야 하는 단점이 있다.
  2. 플랫폼 독립적인 언어 개발: 모든 플랫폼에서 호환성을 갖는 언어 필요. 네트워크, 특히 웹에 최적화된 언어의 필요성 대두
  3. 메모리 사용량이 적고 다양한 플랫폼을 가지는 가전 제품에 적용: 내장형 시스템 요구 충족
  • 초기 이름: 오크(OAK)

인터넷과 웹의 엄청난 발전에 힘입어 퍼졌고, 웹 브라우저 Netscape에서 실행

  • 2009년 오라클이 인수함

플랫폼: 하드웨어 플랫폼 + 운영체제 플랫폼

프로그램의 플랫폼 호환성이 없는 이유는

  1. 기계어가 CPU마다 다름
  2. OS마다 API가 다름
  3. OS마다 실행파일 형식이 다름
  • WORA(Write Once Run Anywhere):
  1. 한 번 작성된 코드는 모든 플랫폼에서 바로 실행되는 자바의 특징
  2. C/C++ 등 기존 언어가 가진 플랫폼 종속성 극복: OS, H/W에 상관없이 자바 프로그램이 동일하게 실행
  3. 네트워크에 연결된 어느 클라이언트에서나 실행: 웹 브라우저, 분산 환경 지원
  • WORA가 가능한 이유(특징)
  1. 바이트 코드(byte code): 자바 소스를 컴파일한 목적 코드. CPU에 종속적이지 않은 중립적인 코드이며 컴퓨터 CPU에서 직접 실행되지 않는다. JVM에 의해 해석되고 실행 가능한 바이너리 코드(.class)
  2. JVM(Java Virtual Machine): 자바 바이트 코드를 실행하는 자바 가상 기계(SW). 각기 다른 플랫폼에 설치되고 동일한 실행 환경을 제공한다. JVM 자체는 플랫폼에 종속적(각 플랫폼마다 각각 작성된다. ex- 리눅스에서 작동되는 JVM이 윈도우에선 작동X)이다.
  3. 자바의 실행: JVM에서 파일(.class)의 바이트 코드를 실행한다. main() 메소드를 가진 클래스에서 실행이 시작된다.
  • 자바 API(Application Programming Interface)란?

주요한 기능들을 미리 구현한 클래스 라이브러리의 집합. 쉽게 말해 미리 누군가가 만들어놓은 라이브러리.

  • 자바 패키지(package):

분류체계(하나의 디렉토리라고 생각하면 된다)

project - package - class/java

  • 자바 응용의 종류:

서블릿(servlet)= 웹 서버에서 실행되는 자바 프로그램(JSP) ↔ 웹 브라우저에서 실행되는 자바 프로그램(JS)

  • 자바의 특성:
  1. 플랫폼 독립성
  2. 객체지향
  3. 클래스로 캡슐화: 클래스 안에 원하는 기능들을 다 넣을 수 있고, 다른 곳에서도 사용하게 할 수 있다.
  4. 소스와 클래스 파일

'Java' 카테고리의 다른 글

객체지향프로그래밍 4  (0) 2021.03.29
객체지향프로그래밍 3  (0) 2021.03.29
객체지향프로그래밍 2  (0) 2021.03.29
Comments