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://namu.wiki/w/Java?from=JAVA
'IT > JAVA' 카테고리의 다른 글
2021-09-29_Java 정리 (0) | 2021.09.29 |
---|---|
변수와 데이터형 (0) | 2017.06.07 |