본문 바로가기

JAVA/자바 웹 개발 완벽 가이드 책 정리

[ 1부/ 1장-1 ] 자바 플랫폼 엔터프라이즈 에디션 소개

JAVA 언제 나왔는지?

이 글을 읽는 사람들에게 물어볼게요. C, Python, Java 어떤 순서대로 세상에 나왔는지 아시나요?

Python이 Java보다 먼저 나왔다는 사실 알고 계셨나요?

 

이번 장에서는 많이 들어봤지만 생소한 단어인 JDK, JRE, J2SE, J2EE 등에 대해 알아보고 각 아키텍쳐들의 발전 과정을 알아보겠습니다.

또한 핵심만 이 블로그에서 다룰 예정이니 끝까지 완독해 봅시다!! ( 저한테 하는 말이기도 합니다 ;)

 

자바 버전 1.2

자바 버전 1.2는 다음과 같은 컴포넌트로 이뤄져 있습니다.

 

- 자바

- 자바 2 플랫폼 스탠더드 에디션 ( J2SE ) : "java.lang, java.io 등에 관한 패키지에 포함된 클래스를 포함하는 플랫폼

- JVM : 컴파일 된 자바 코드를 실행하는 가상 머신 [ 중요한 내용이지만 이 책에서는 안다루네용 ㅋ]

- JDK : 자바 개발 키트 , 자바 앱을 개발하는데 필요한 핵심 구성 요소

- JRE : 자바 런타임 환경 , 자바 앱을 실행하기 위해 다운로드 해야하는 요소

 

"JDK는 개발자가 쓰는 것이고 JRE는 사용자가 실행할 때 쓰는 거구나"

=> 라고 받아들였는데 개발할 때 실행도 하니깐 개발자는 둘다 쓰는 것으로 볼 수 있겠죠?

=> 그렇다는말은 JDK에는 JRE가 포함되어 있다는 얘기입니다

 

이러한 컴포넌트들을 여러가지 기업들에서 구현을 개발했다고 합니다. [ 오픈소스란 개념은 언제 들어도 신기하단 점 ~ ]

 

엔터프라이즈 자바의 탄생

그 쪽도 J2SE랑 J2EE에 대해 아세요?

J2SE는 자바 2 Platform Standard Edition입니다.

J2EE는 자바 2 Platform Enterprise Edition이고요.

 

[ 저는 J2EE를 이번에 케이뱅크 지원할 때 쓴다고 들었습니다 ㅎㅎ.. ]

 

위에 잠깐 자바 1.2를 보시면 구성 컴포넌트에 J2SE가 있네요?

이로써 J2SE가 초반에 개발이 된 녀석임을 알 수 있습니다.

 

뭐 자잘한 얘기는 쳐내고 자바를 개발하는 썬 이라는 회사에서 JPE ( 자바 프로페셔널 에디션 )을 개발했습니다.

[ 근데 사람들이 안써서 망했대요 ]

=> 결국 JPE는 서블릿과 합쳐져서 J2EE가 탄생했습니다.

 

그렇다면 자바 6버전, 8버전 이렇게 불리는 것은 SE일까요 EE일까요?

 

이름이 바뀌는 시기

자바가 발전해나가면서 J2SE 5.0에는

- 제네릭

- 어노테이션

- 열거형

이렇게 3개가 추가되면서 명칭이 정리가 되었습니다.

J2SE 5.0는 버전 5라고 간단하게 부르기 시작했습니다.

동시에 J2SE는 SE라는 이름을 사용하게 되었습니다.

 

즉, 자바 SE6는 내부적으로 1.6인 셈이죠

JavaEE도 마찬가지로 이름을 통일해서 사용하고 있다고 합니다.

 

위에 질문을 답하자면 SE에 포함된다고 할 수 있습니다.

 

하지만 자바는 SE6버전과 EE5버전에서 침체기에 맞이했는데요, 개발자들의 분노와 실망을 안겨줬습니다.

 

오라클이 썬을 인수하고 자바 SE 7 및 8과 EE 7이 개발되면서 중요한 변화를 통해 생기를 불어넣었다고 평가받고 있습니다.

 

자바 SE 7

- 제네릭 인스턴스화를 위한 다이아몬드 지시자 < >

Map<String , Map <String, Map <Integer , List<MyBean>>>>  map = new Hashtable<String,  Map <String, Map <Integer , List<MyBean>>>> ()

 

이랬던 코드는

Map<String , Map <String, Map <Integer , List<MyBean>>>>  map = new Hashtable<> ()

 

이렇게 줄어들 수 있었습니다.

 

또한 try - with - resource 구조를 활용해 중복 코드 제거를 할 수 있게 되었습니다. 

 

자바 EE 7

이 책에서 다룰 내용이라고 지금은 안알려준다네요

 

앞으로 같이 정리해 나가면서 알아보도록 하죠 :)

 

자바 SE 8

중요한 기능이 많이 포함된 버전입니다. 앞으로 많이 쓸 예정이라고 하네요

 

- 람다식

Thread thread = new Thread(new Runnable() {
	
    @Override
    public void run(){
    // 작업 수행
    }
});

 

단일 메서드 인터페이스를 익명으로 구현하는데 특히 유용합니다.

Thread thread = new Thread (() -> {
	// 작업 수행
});

 

Javascript를 하면 => 이런 화살표를 쓰는데 여기선 -> 이런 화살표를 사용하네요

 

람다식은 인자, 반환형 및 제네릭을 가질 수 있고 원하는 경우 메서드 참조를 이용해 인터페이스가 일치하는 메서드로 참조를 전달할 수 있다고 합니다. [ 지금은 뭔 소리인지 모르겠지만 이 책을 다 돌아보고 다시 이 글을 복습할 때 알기 쉽게 정리해 놓을게요 ]

 

- 날짜 API

JSR 310을 추가해서 문제를 해결했다고 합니다.

 

책의 1부에서 배울 내용

아마 이 블로그를 보시는 분들도 SE에 대해서는 잘 알고 계실텐데 EE는 전혀 사용해보지 않았을 것입니다.

앞으로 배울 내용을 짧게 알려드리겠습니다.

 

- 애플리케이션 서버와 웹 컨테이너 (2장)

- 서블릿 (3장)

- JSP (4,6,7,8 장)

- HTTP (5장)

- 필터 (9장)

- 웹소켓 (10장)

 

그렇다면 글이 길어질 것 같아서 다음 내용인 

기본적인 웹 어플리케이션의 구조 이해에서 보도록 하죠 ;)

https://codekunst.tistory.com/165

 

[1부 / 1장 - 2 ] 기본적인 웹 애플리케이션의 구조 이해

자바 EE 웹 어플리케이션의 구성 요소- 개발자가 작성하는 코드- 이 코드에서 사용하는 타사 라이브러리- 배포 설명자 : 배포 및 시작하는데 필요한 명령어를 포함하는 컴포넌트- Class Loader : 동일

codekunst.tistory.com