본문 바로가기
코딩/JAVA

개발자 첫걸음 JAVA 알고가기

by joyfulmanual 2023. 2. 14.
반응형

자바는 (Java) - 객체 지향 프로그래밍 언어 입니다.

 

썬 마이크로시스템즈에서 1995년에 개발한 객체 지향 프로그래밍 언어이며. 창시자는 제임스 고슬링 입니다. 2010년에 오라클이 썬 마이크로시스템즈를 인수하면서 Java의 저작권을 소유하였고, 현재는 OpenJDK는 GPL2이나 오라클이 배포하는 Oracle JDK는 상업라이선스로 2019년 1월부터 유료화정책을 강화하고 있습니다. Java EE는 이클립스 재단의 소유하고 있고. Java 언어는 J2SE 1.4부터는 Java Community Process (JCP)에서 개발을 주도하고 있습니다.

 

Java 테크놀로지란 무엇이며 왜 필요한가?

Java는 1995년 Sun Microsystems에 의해 처음 출시된 프로그래밍 언어 및 컴퓨팅 플랫폼입니다. 많은 서비스와 애플리케이션이 구축되는 신뢰성 높은 플랫폼을 제공함으로써 초라한 시작에서 오늘날 디지털 세계의 많은 부분을 차지하게 되었습니다. 미래를 위해 설계된 새롭고 혁신적인 제품과 디지털 서비스도 계속해서 Java에 의존하고 있습니다. 대부분의 최신 Java 응용 프로그램은 Java 런타임과 응용 프로그램을 함께 결합하지만 데스크톱 Java를 설치하지 않으면 작동하지 않는 응용 프로그램 및 일부 웹 사이트도 있습니다.이 웹 사이트 Java.com은 데스크톱 애플리케이션, 특히 Java 8을 대상으로 하는 애플리케이션을 위해 Java를 필요로 하는 사용자를 대상으로 합니다.개발자나 자바 프로그래밍을 배우고 싶은 사용자는 dev.dev.dev.dev 웹사이트를 방문해야 하며 비즈니스 사용자는 oracle.com/java을 방문해야 합니다.

https://www.oracle.com/javadownload/에서 찾을 수 있습니다.

 

2023년 2월 14일 기준 프로그래밍 언어 순위 (www.tiobe.com)


분류

Java는 크게 다음과 같은 3가지 에디션으로 나뉩니다.
- Java SE(Java Standard Edition / J2SE)
  대부분의 사람들이 가장 많이 접하는 표준 에디션. Java의 핵심 API와 기능들을 제공한다. JDK 항목도 참고.
- Jakarta EE, 구 Java EE(Java Enterprise Edition / J2EE)
  기업에서 운영하는 서버 페이지에 특화된 에디션이다. JSP와 서블릿을 비롯한 웹 애플리케이션 서버에 관련된 기술들이 포함되어 있습니다.
- Java ME(Java Micro Edition / J2ME)
  피처폰, PDA, 셋톱박스, 센서 등의 임베디드 시스템 환경에 특화된 경량 에디션 입니다.


특징

단순하지만 강력하다, 객체 지향적이다, 분선처리를 지원한다, 견고하다, 안전하다, 컴퓨터 구조에 중립적이다, 이식성이 있다, 멀티스레딩 지원, 동적이다.

 

이중에서도 Java의 가장 큰 특징은 플랫폼에 독립적인 언어라는 점 입니다. 소스 코드를 기계어로 직접 컴파일하여 링크하는 C/C++의 컴파일러와 달리 자바 컴파일러는 바이트코드인 클래스 파일(.class)을 생성하고, 이 파일의 바이트코드를 읽은 뒤 기계어로 바꾸어 실행하는 것은 자바 가상 머신 입니다. 예를 들어 플랫폼에 종속된 경우 윈도우에서 빌드한 프로그램을 그대로 리눅스나 macOS에서 실행하려 하면 일반적으로 오류가 나지만 Java로 작성 된 프로그램은 플랫폼에 맞는 Java Runtime Environment만 설치되어 있다면 문제 없이 동작 합니다. 이는 Java 코드 자체가 플랫폼이 아닌 가상머신에 종속적이라는 점, 그리고 프로그램 실행의 주체가 운영 체제가 아닌 Java Runtime Environment이라는 점 때문이며 이러한 점을 통틀어 Java는 플랫폼 종속성이 낮은 언어라고 표현 합니다.Java Runtime Environment 기반의 프로젝트에서는 하나의 언어만을 고집하지 않는다. 함수형 언어가 유리(최근 유행하는 빅데이터 등)한 부분은 Scala로 작업하며, 견고한 인터페이스와 대규모 통합이 필요한 곳은 Java로 작업한 뒤 이들을 서로 합쳐서 운영하는 게 가능 합니다. (Java에서 만든 객체를 Scala에서 그대로 사용할 수 있다.) 안드로이드 쪽에서는 크리티컬하지 않은 부분부터 Kotlin으로 코드를 교체하는 경우도 많아지고 있습니다. 실제 현업에서는 Java를 비롯한 여러가지 인기 언어가 자주 사용되므로 장단점을 잘 알아두는게 좋습니다. 다른 언어에 대해 맹목적으로 찬양/비판하는 태도보다는 환경이나 주어진 작업의 특성에 따라 적합한 언어를 선택할 수 있는 노하우가 필요합니다.


자바로 만들 수 있는 것

자바 애플리케이션

자바 애플리케이션은 독립적으로 실행될 수 있는 일반 응용 프로그램이다. 일반 응용 프로그램도 자바를 사용하여 얼마든지 작성할 수 있다. 자바에는 다른 언어보다 상대적으로 풍부한 클래스 라이브러리가 존재한다. 따라서 일반 응용 프로그램을 작성하는 데도 장점이 될 수 있다. 문자 기반이나 그래픽 사용자 인터페이스 형태로 작성 할 수 있다. 가장 대표적인 예는 바로 우리가 사용하려고 하는 개발 도구인 이클립스이다. 이클립스와 같은 정교한 프로그램이 자바로 작성되었다. 

 

자바 애플릿

애플릿은 application과 let(작다)을 조합한 합성어라고 할 수 있다. 자바 애플릿은 단독으로 실행되지 않고 웹 브라우저 안에서 실행되는 작은 자바 프로그램이다. 일반적으로 애플릿은 크기가 작아서 월드와이드웹을 통하여 쉽게 배포할 수 있다.

 

자바 서블릿

서블릿은 웹서버에서 동작하는 서버 모듈로서 클라이언트의 요구를 받아서 그에 대한 처리를 한 후에, 실행 결과를 HTML 문서 형태로 클라이언트 컴퓨터로 전송한다. CGI와 유사한 역할을 하지만 CGI보다 효율적이다. 서블릿은 자바로 작성되기 때문에 자바가 제공하는 수많은 장점 및 기능을 제한없이 사용할 수 있다.

 

JSP

HTML안에 자바 코드를 넣으면 웹페이지를 사용자와 상호작용하도록 만들 수 있다. JSP는 서버에서 실행되고 결과는 HTML로 사용자에게 보내진다. JSP는 서블릿으로 변환되어서 실행된다.

 

자바 빈즈

자바로 작성된 컴포너트를 자바 빈즈라고 한다. 객체 지향 프로그래밍에서, 컴포넌트는 애플리케이션을 형성하기 위한 프로그램 빌딩 블록이다. 컴포넌트는 같은 컴퓨터 또는 분산 네트웍 내의 다른 컴퓨터 내에 있는 다른 컴포넌트들과 결합될 수 있고, 재사용이 가능하다. 컴포넌트를 조립하면 애플리케이션을 빠르게 만들 수 있다.

 

안드로이드 애플리케이션

안드로이드는 운영 체제로는 리눅스를 사용하지만, 운영체제를 제외한 안드로이드 SDK의 나머지 부분은 모두 자바로 작성되어 있다.

 

다음 포스팅에선 설치를 하면서 본격적으로 경험해 보겠습니다.

반응형

댓글