세리프 따라잡기
객체지향프로그래밍 1 본문
객체지향프로그래밍
1.
- 소스:
프로그래밍 언어로 작성된 텍스트 파일
- 컴파일:
소스 파일을 컴퓨터가 이해할 수 있는 기계어로 만드는 과정
- 자바:
.java(소스코드) -> .class(바이트 코드: 운영체제가 달라도 해석할 수 있는 sw만 있으면 동작이 가능하다)
- 자바의 시작:
선마이크로시스템즈의 제임스 고슬링에 의해 시작했고, 1995년에 자바를 발표했다.
- 목적:
- 플랫폼 호환성 문제 해결: 기존 언어로 작성된 프로그램은 pc, 유닉스, 메인 프레임 등 플랫폼 간에 호환성이 없다. 그러나 소스를 다시 컴파일하거나 프로그램을 재 작성해야 하는 단점이 있다.
- 플랫폼 독립적인 언어 개발: 모든 플랫폼에서 호환성을 갖는 언어 필요. 네트워크, 특히 웹에 최적화된 언어의 필요성 대두
- 메모리 사용량이 적고 다양한 플랫폼을 가지는 가전 제품에 적용: 내장형 시스템 요구 충족
- 초기 이름: 오크(OAK)
인터넷과 웹의 엄청난 발전에 힘입어 퍼졌고, 웹 브라우저 Netscape에서 실행
- 2009년 오라클이 인수함
플랫폼: 하드웨어 플랫폼 + 운영체제 플랫폼
프로그램의 플랫폼 호환성이 없는 이유는
- 기계어가 CPU마다 다름
- OS마다 API가 다름
- OS마다 실행파일 형식이 다름
- WORA(Write Once Run Anywhere):
- 한 번 작성된 코드는 모든 플랫폼에서 바로 실행되는 자바의 특징
- C/C++ 등 기존 언어가 가진 플랫폼 종속성 극복: OS, H/W에 상관없이 자바 프로그램이 동일하게 실행
- 네트워크에 연결된 어느 클라이언트에서나 실행: 웹 브라우저, 분산 환경 지원
- WORA가 가능한 이유(특징)
- 바이트 코드(byte code): 자바 소스를 컴파일한 목적 코드. CPU에 종속적이지 않은 중립적인 코드이며 컴퓨터 CPU에서 직접 실행되지 않는다. JVM에 의해 해석되고 실행 가능한 바이너리 코드(.class)
- JVM(Java Virtual Machine): 자바 바이트 코드를 실행하는 자바 가상 기계(SW). 각기 다른 플랫폼에 설치되고 동일한 실행 환경을 제공한다. JVM 자체는 플랫폼에 종속적(각 플랫폼마다 각각 작성된다. ex- 리눅스에서 작동되는 JVM이 윈도우에선 작동X)이다.
- 자바의 실행: JVM에서 파일(.class)의 바이트 코드를 실행한다. main() 메소드를 가진 클래스에서 실행이 시작된다.
- 자바 API(Application Programming Interface)란?
주요한 기능들을 미리 구현한 클래스 라이브러리의 집합. 쉽게 말해 미리 누군가가 만들어놓은 라이브러리.
- 자바 패키지(package):
분류체계(하나의 디렉토리라고 생각하면 된다)
project - package - class/java
- 자바 응용의 종류:
서블릿(servlet)= 웹 서버에서 실행되는 자바 프로그램(JSP) ↔ 웹 브라우저에서 실행되는 자바 프로그램(JS)
- 자바의 특성:
- 플랫폼 독립성
- 객체지향
- 클래스로 캡슐화: 클래스 안에 원하는 기능들을 다 넣을 수 있고, 다른 곳에서도 사용하게 할 수 있다.
- 소스와 클래스 파일
'Java' 카테고리의 다른 글
객체지향프로그래밍 4 (0) | 2021.03.29 |
---|---|
객체지향프로그래밍 3 (0) | 2021.03.29 |
객체지향프로그래밍 2 (0) | 2021.03.29 |
Comments