본문 바로가기

IT/JAVA

Java 언어

1. 자바


  마이크로 시스템즈의 제임스 고슬링과 연구원들이 개합한 객체 지향적 프로그래밍 언어, 처음에는 가전제품 내에 탐재해 동작하는 프로그램을 위해 개발했지만 현제 애프리케이션 개발에 가장 많이 사용하는 언어 가운데 하나이고, 모바링 기기용 소프트웨어 개발에도 널리 사용하고 있다. 현재 버전 9까지 출시했다.


 

2. 기본 기술 용어


 

2.1. Java EE(Java Platform, Enterprise Edition)


 자바를 이용한 서버측 개발을 위한 플랫폼이다. Java EE 플랫폼은 PC에서 동작하는 표준 플랫폼인 Java SE 부가하여, 애플리케이션 서버에서 동작하는 장애복구 분산 멀티티어를 제공하는 자바 소프트웨어의 기능을 추가한 서버를 위한 플랫폼이다. 이전에는 J2EE 불리었으나 버전 5.0 이후로 Java EE 개칭되었다.


 

2.2. Java ME(Java Platform, Micro Edition)


 자바 ME(Java ME) 혹은 J2ME 등으로도 널리 알려져 있다. 제한된 자원을 가진 휴대 전화, PDA, 세트톱박스 등에서 Java 프로그래밍 언어를 지원하기 위해 만들어진 플랫폼 하나를 가리킨다.


 

2.3. Java SE(Java Platform, Standard Edition)


  데스크톱 서버, 최근의 고사양 임베디드 시스템을 위한 표준 자바 플랫폼으로 표준적인 컴퓨팅 환경을 지원하기 위한 자바 가상 머신 규격 API 집합을 포함한다. 따라서 자바 EE, 자바 ME 다른 플랫폼은 구체적인 목적에 따라 자바 SE 기반으로 API 추가하거나 자바 가상 머신 규격 API 일부를 택해서 정의된다.


 

2.4. Java Console Application


 자바를 이용하여 도스상에서 실행되는 프로그램


 

2.5. Applet


 

 Java 기반의 웹브라우저 플러그인 기술.

 

모질라 재단에서 2015 10  파이어폭스에서 NPAPI 플러그인 지원을 중단하겠다는 발표를 했고, 이어 오라클에서는 2016 1  Java 9 부터 애플릿을 위한 자바 플러그인 지원을 중단하겠다고 발표했다. 따라서 자바 애플릿은 Java 9 이후 역사속으로 사라질 예정이며, 이후 자바 애플릿이 했던 역할은 유사한 기술인 Java Web Start 대신하게 된다.


 

2.6. JDBC(Java Database Connectivity)


 

 데이터베이스에 접속할 있도록 하는 자바 API이다. JDBC 데이터베이스에서 자료를 쿼리하거나 업데이트하는 방법을 제공한다.


 

2.7. SWING


 

 자바에서 GUI(Graphic User Interface) 구현하기 위해 JDK에서 기본적으로 제공하는 개발 툴킷


 

2.8. Java Servlet


 

 자바를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램 혹은 사양. 자바 서블릿은 서버의 성능을 향상하기 위해 사용되는 자바 클래스의 일종이며서블릿은 JSP 비슷한 점이 있지만, JSP HTML 문서 안에 Java 코드를 포함하고 있는 반면, 서블릿은 자바 코드 안에 HTML 포함하고 있다는 차이점이 있다.


 

2.9. JSP(JavaServer Pages)


 

 HTML내에 자바 코드를 삽입하여 서버에서 동적으로 페이지를 생성하여 브라우저에 돌려주는 언어


2.10. EJB(Enterprise Java Beans)


 기업환경의 시스템을 구현하기 위한 서버측 컴포넌트 모델이다. , EJB 애플리케이션의 업무 로직을 가지고 있는 서버 애플리케이션이다. EJB 사양은 Java EE 자바 API 하나로, 주로 시스템에서 JSP 화면 로직을 처리하고, EJB 업무 로직을 처리하는 역할을 한다.


 

2.10. Java RMI(Java Remote Method Invocation, 자바 원격 함수 호출)


 기업환경의 시스템을 구현하기 위한 서버측 컴포넌트 모델이다. , EJB 애플리케이션의 업무 로직을 가지고 있는 서버 애플리케이션이다. EJB 사양은 Java EE 자바 API 하나로, 주로 시스템에서 JSP 화면 로직을 처리하고, EJB 업무 로직을 처리하는 역할을 한다.


 

3. Java 역사 추가기능

 

3.1. JDK 1.0


1996 1 23 발표.

 

발표 이전에 불렸던 이름은 Oak 였으며, 1.0.2 버젼에서 Java 이름이 바뀌었다.


 

3.2. JDK 1.1


 

1997 2 19 발표

 

이너 클래스, 자바빈즈, RMI, 리플렉션, 유니코드 지원, 국제화 등이 추가되었다.


 

3.3. J2SE 1.2


 

1998 12 8 발표. 2003 11월에 일반지원이 종료되었다.

 

새로운 GUI, JIT, CORBA 등의 굵직한 기능이 추가되면서 2 부터 약칭을 J2SE(Java 2 Standard Edition) 표기하기 시작했으며, 표기는 5 까지 사용된다.

 

strictfp, SWING GUI, JIT, 자바 애플릿을 구동하는 브라우저 플러그인, CORBA, Collections 등이 추가되었다.

 

1999년에 업데이트를 통해 HotSpot JVM 선을 보인다.


 

3.4. J2SE 1.3


 

2000 3 8 발표. 일반지원은 2006 11월에 종료되었다.

 

HotSpot JVM, JNDI, JPDA, JavaSound 등이 추가되었다. RMI CORBA 지원하도록 변경되었다.


 

3.5. J2SE 1.4


2002 2 6 발표. 일반지원은 2008 10, 유료지원은 2013 2월에 종료되었다.

 

assert, Regular Expression, IPv6, Non-Blocking IO, XML API, JCE, JSSE, JAAS, Java Web Start 등이 추가되었다.


 

3.6. J2SE 5


 

2004 9 30 발표. 일반지원은 2009 9, 유료지원은 2015 5월에 종료되었다. J2SE 5.0 까지 Windows 9x Windows NT 4.0 지원되었다.

 

때부터 버젼 앞의 1 빼버리고 표기하기 시작했다. 그러나 내부적으로는 여전히 1.5, 1.6, 1.7 등으로 데이터가 들어있다.

 

Generics, Annotation, Autoboxing/unboxing, Enumeration, 가변 길이 파라미터, Static Import, 새로운 Concurrency API 등이 추가되었다.

 

Java 표준 입력(stdin) 지원이 시원찮았는데, J2SE 5 들어서 java.util.Scanner 추가되면서 이전보다 편하게 표준 입력을 사용할 있게 되었다.


 

3.7. Java SE 6


 

2006 12 11 발표. 일반지원은 2013 2 종료되었으며, 유료지원은 2018 12월에 종료될 예정이다.

 

때부터 표기가 J2SE 에서 Java SE 바뀐다.

 

Scripting Language Support, JDBC 4.0, Java Compiler API, Pluggable Annotation 등이 추가되었다. 스크립팅 언어 지원과 함께 Rhino JavaScript 엔진이 기본으로 탑재되었다.


 

3.8. Java SE 7


 

2011 7 7 발표. 일반지원은 2015 4월에 종료되었으며, 유료지원은 2022 7월에 종료될 예정이다.

 

Dynamic Language 지원, switch 문에서 String 사용, try 에서 자동 자원 관리, Diamond Operator <>, 이진수 리터럴, 숫자 리터럴에 _ 지원, 새로운 Concurrency API, 새로운 File NIO 라이브러리, Elliptic Curve Cryptography, Java2D 위한 XRender, Upstream, Java Deployment Ruleset 등이 추가되었다.


 

3.9. Java SE 8


 

2014 3 18 발표. 일반지원은 2017 9, 유료지원은 2025 3월에 종료될 예정이다.

 

Lambda Expression, Rhino 대신 Nashorn JavaScript 엔진 탑재, Annotation on Java Types, Unsigned Integer 계산, Repeating Annotation, 새로운 날짜와 시간 API(사실상 JodaTime 이라고 보면 된다), Static Link JNI Library, PermGen 영역 삭제 등이 추가되었다.



3.10. Java SE 9


 

2017 7 27 발표 예정. 2017 1 현재도 스냅샷 빌드를 받을 있다.

 

Project Jigsaw 기반으로 런타임이 모듈화된 것이 가장 특징. 이에 따라 대부분의 콘솔 프로그램 개발에는 이상 AWT Swing 같은, 불필요한 라이브러리를 끌어쓸 필요도 없이, 최상위 모듈인 Base 사용해도 된다. 여기에 Java Java 컴파일하는 동적 컴파일러 기능이 시험 기능으로 추가되며, Java에서 바로 기계어로 번역하는 선행 컴파일(Ahead-of-time Compile) 기능 역시 추가된다. 또한 Deprecated 표시에는 해당 버전과 제거 예정 여부를 표시할 있게 된다. 외에도 구조적 불변 컬렉션 지원, 통합 로깅 지원, HTTP/2 지원, HTML5 Javadoc 등도 지원될 예정이다. 대신 애플릿 기능은 지원이 종료된다.

 

새로 적용된 버저닝 정책에 따라 버전 부터는 이상 1.x 버전으로 내놓지 않고, 대신 9.0으로 급속한 판올림이 일어난다. 또한 제거 예정인 Deprecated API 다음 버전인 Java SE 10부터 완전 삭제 예정이므로 해당 API 쓰는 프로그램은 이상 이후의 버전에서 컴파일 조차 불가능하게 된다.



자바를 공부하는데 필요하다고 생각한 것을 정리하였습니다.


※ 수정이 필요하거나 이외의 문제가 있을시 댓글남겨주시면 감사하겠습니다. 
 

참조

https://ko.wikipedia.org/

https://namu.wiki/w/Java?from=JAVA

 

 

 

 

반응형

'IT > JAVA' 카테고리의 다른 글

2021-09-29_Java 정리  (0) 2021.09.29
변수와 데이터형  (0) 2017.06.07