CS공부/학점은행_자바프로그래밍

1주 2차 Java의 역사와 특징

inji_ 2023. 6. 26. 22:08

1. 자바의 탄생 배경

① 인터넷

모든 연산을 서버에게 맡기면서 인터넷에 왔다갔다 하는 시간도 오래걸리니까 

클라이언트에서 어느정도 연산이 가능하면 어떨까?

-> 자바의 탄생 

 

인터넷이 느렸던 시절

자바 탄생 시: - 서버의 프로그램과 서버가 클라이언트에 보낸 프로그램이 서로 협업할 수 있게 만듦.

                      - 에플릿을 통해 클라이언트가 컴퓨팅하는 것은 서버의 프로그램과 소통하는데, 

                         내 컴퓨터의 데이터 들여다 볼 수 있는 가능성을 줌.

                      - 에플릿은 허락 받고 들어갔지만 클라이언트의 데이터, 정보 가져가지 않겠다는

                         약속해야함 -> 보안

② JVM 

 

    - 서버에서 클라이언트에게 기계어 코드를 보내는데 운영체제도 다르고 CPU도 다를 수 있다 (= 기계어가 다르다)

그러면 서버에서 어떤 기계어를 보내야 하는가?

상대방 운영체제 확인하고 그것에 맞추어 보내기 -> 비효율적

 

운영체제가 다른데 서버에서 보내주는 코드는 동일하게 하고 싶었음 

서버에서 클라이언트 종류 상관없이 동일한 기계열 보냄

>  미들 웨어가 어플리케이션 프로그램의 기계어 번역해 운영체제와 하드웨어에 맞는 기계어로 번역  

 

미들 웨어 = JVM 

 

코드 시큐리티  ->소스 코드 작성시 제한 둠 -> 소스코드가 악의적으로 개발될 수 없게 제한함.

파일 시스템 접근 제한

악의적 코드가 클라이언트 파일을 마음대로 사용하지 못하게 함.

네트웨크 접근 제한

 

->메모리 접근 제한 

->데이터 변환 제한

 

Garbage Collection

(메모리 관리를 잘못해서 문제를 해결해줌)

-> 개발자 편익제공

 

③ 객체 지향형

Is a 관계 (포함관계)

 

 

2. 자바의 발전과정

 

자바 : 서버에서 클라이언트로 넘어와서 동작하는 애플릿으로 시작

JAVA EE : 서버 개발 시 최적화되게 패키지 만듦

                 개발 편리, 유연성 포함, 클라우드 서버

                 서버에서 서비스해줌

                  실수가 있어도 안정적임 > 서버용 에디션으로 각광받음

 

3. 자바의 활용

 

- 자바 클래스 : 서버에서 자바 애플릿 같은 실행 파일이 넘어감

                        안드로이드는 서버에서 클라이언트로 프로그램 보냄.

                        안드로이드 = JVM (하드웨어이자 운영체제임)

                        운영체제로서 자바가 있다 > 그 위에서 동작할 수 있는 프로그램 보내겠다

                         >앱스토어에서 사용자가 능동적으로 다운 받아서(안드로이드)

- 자바 스크립트 : 서버에서 코드를 넘김, 웹에서 많이 사용됨.

 

자바 -> 네트워크 서버(J2EE), 안드로이드 이렇게 두가지에 사용

 

처음에는 실행 코드가 인터넷을 통해 이동하고, 실행될 수 있도록 설계되었습니다.

그로 인한 Java의 기본적인 특성은 다음과 같습니다.

 

실행 코드의 이동성: 실행 코드는 하드웨어와 운영체제에 무관하게 동작할 수 있어야 합니다. 이를 위해 JVM이 탄생했습니다.

 

실행 코드의 보안성 : 외부에서 유입된 실행 파일이기 때문에 안전성에 대한 검증이 필요합니다. 가장 큰 특징으로는 메모리에 대한 접근 관리에 대한 제한이 있습니다. 그러면서 Garbage Collection 기능을 탑재하여 메모리 관리의 편의성도 제공합니다.

 

여기에, 객체 지향 개념의 발전 시기에 맞춰, 완벽한 객체 지향성을 갖춘 언어로 설계됩니다.
또한, 멀티 스레딩 기법을 객체 지향성에 맞춰 포함하고 있습니다.

 

1. Java 언어의 탄생 배경

  • 인터넷의 발전: 인터넷상에서 이동성을 갖추려는 시도 ▶ 보안성이 필요하게 됨
  • 객체 지향: 데이터 중심 설계의 필요성에 맞춰서 개발됨
  • 다중 처리: 멀티 태스킹을 응용 프로그램에서 관리할 수 있도록 설계됨

2. JVM의 특징

  • Portability 확보
  • 네트워크 보안성 확보
  • 운영체제 위에 존재하는 운영체제의 역할 수행
  • 다수의 업체들이 동일한 표준으로 구현

'CS공부 > 학점은행_자바프로그래밍' 카테고리의 다른 글

5 배열  (0) 2023.07.19
2주 1차 변수와 기본 연산자  (0) 2023.06.26
1주 1차 프로그래밍 언어 개론  (1) 2023.06.09