안녕하세요! 기형쌤입니다. 오늘 제가 가져 온 이야기는
JAVA에 대한 것입니다.
일단 JAVA는 무엇일까요?
JAVA는 객체지향 프로그래밍 언어입니다.
말이 조금 어렵죠? 객체지향 프로그래밍 언어란 프로그램의
설계 방법론이자 개념의 일종입니다.
프로그램을 단순히 데이터와 처리 방법으로 나누는 것이 아니라,
프로그램을 수많은 '객체'라는 기본 단위로 나누고 이 객체들의 상호작용으로 서술하는 방식입니다.
객체란 하나의 역할을 수행하는 '메소드와 변수(데이터)'의 묶음으로 보시면 됩니다.
JAVA는 크게 4 종류로 나뉩니다.
1. Java SE
JAVA SE는 대부분의 사람들이 가장 많이 접하는 말하자면 표준 에디션입니다.
JAVA의 핵심적인 API와 기능들을 제공하고 있습니다.
2. Jakarta EE
이전에는 JAVA EE라고 불리웠고 기업등지에서 운영하는 서버 페이지에 특화되어 있습니다.
웹 애플리케이션 서버에 관련된 기술들이 포함되어 있습니다.
3. JAVA ME
PDA나 셋톱박스, 센서 등의 임베디드 시스템 환경에 특화되어있는 에디션입니다.
임베디드 시스템이란 세탁기나 냉장고 등 가전제품에 들어가는 단일목적 컴퓨터라고 생각하시면 좋습니다.
4. JAVA FX
데스크톱 애플리케이션 개발 및 배포를 위한 에디션입니다. 크로스플랫폼 이식과 GUI 라이브러리를 제공합니다.
C, C++과의 차이점?
C 언어는 포인터 등을 활용한 저수준 시스템 프로그래밍(리눅스 커널과 하드웨어 프로그래밍)에 강점을 가집니다.
C++은 C의 그러한 장점을 거의 그대로 가져오면서 객체 지향이나 일반화 프로그래밍과 같은 멀티 패러다임을 지원하고자 하는 시도(3D게임, 그래픽 프로그래밍)에서 만들어졌습니다.
이렇게 고수준과 저수준 개념 모두를 포함하려 하다보니 점차 복잡해졌고
게다가 최신 프로그래밍 환경을 지원하기 위해 지속적으로 개정되고 있는 모던 C++는 변화의 폭이 커서, 새로운 기능을 전부 제대로 다룰 줄 아는 프로그래머는 비교적 적다는 평이 널리 받아들여지고 있습니다.
그에 비해 JAVA는 C++의 방향성과는 다르게 안정성에 포인트를 맞춰 개발되어 왔습니다.
JAVA는 고수준의 객체지향 부분을 잘 구현하는 것에 집중하는 방향으로 언어가 복잡해지는 것을 방지하고 있습니다.
JAVA와 C,C++의 공통점은 같은 C계열 프로그래밍 언어이기 때문에 비슷한 문법 구조를 가지고 있다는 것에 있습니다.
하지만 그러면서도 JAVA가 C,C++보다 훨씬 널리쓰이는 분야가 많이 존재합니다.
대표적인 예: 안드로이드 앱이라던지 웹 애플리케이션
하지만 안정성을 중요시하는 언어이기 때문에 속도가 느릴 수 있습니다.
그렇게 속도가 중요한 부분들은 따로 떼어서 C,C++언어로 따로 개발하기도 합니다.
JAVA의 특징!
Java의 가장 큰 특징은 플랫폼에 독립적인 언어라는 점 입니다.
C나 C++같은 경우 소스 코드를 직접 컴파일하여 링크하는 것과는 다르게
Java는 .class 파일을 생성하고 이 파일의 바이트 코드를 읽은 뒤 기계어로 바꾸어 실행하는 것은 Java Virtual Machine
통칭 JVM입니다. 이 방식이 좋은 이유는 윈도우 환경에서 Java를 이용해 빌드한 프로그램을
리눅스나 맥OS에 적합한 JVM만 깔려있다면 바로 실행이 가능합니다.
JAVA의 다른 특징 중 하나는 범용성입니다.
JVM 기반의 프로젝트에서는 하나의 언어만을 고집하지 않습니다.
함수형 언어가 유리(최근 유행하는 빅데이터 등)한 부분은 Scala로 작업하며, 견고한 인터페이스와 대규모 통합이 필요한 곳은 Java로 작업한 뒤 이들을 서로 합쳐서 운영하는 게 가능합니다.
실제 현업에서는 Java를 비롯한 여러가지 인기 언어가 자주 사용되므로 장단점을 잘 알아두는게 좋습니다.
다른 언어에 대해 맹목적으로 찬양/비판하는 태도보다는 환경이나 주어진 작업의 특성에 따라 적합한 언어를 선택할 수 있는 노하우가 있다면 좋은 개발자로서 이름을 날리실 수 있을 것입니다.
JAVA는 왜 쓰는걸까요?
JAVA는 왜 아직도 가장 많이 쓰이는 언어일까요?
기본적으로 JAVA는 수많은 개발자와 레퍼런스를 가지고 있습니다.
오래된 언어이고 범용성이 뛰어난 언어이다보니 수많은 JAVA개발자들이 있고
시대에 맞춰 지속적인 개발이 이뤄지고, 그에따른 수많은 레퍼런스들을 갖고있습니다.
또한 JAVA는 비교적 높은 생산성을 가지고 있습니다.
IT는 점차 발전해나가고 있고, 무거운 프로그램들이 많아짐에 따라 복잡한 C,C++을 이용한
프로그래밍이 사실상 너무 힘들어졌습니다. 언어 자체가 복잡할 뿐 아니라
관리 또한 힘들어서 프로그램이 커지면 커질수록 작업이 힘들어지게 되었습니다.
하지만 JAVA는 C,C++과 문법적으로도 비슷하면서도 객체 지향을 적극적으로 활용,
호황성까지 좋은 언어이기 때문에 등장하자마자 순식간에 대세가 되었습니다.
위에서도 지속적으로 말했다시피 JAVA의 큰 장점 중 하나는 안정성입니다.
메모리를 대용량으로 사용하는 프로그램에서 상대적으로 C/C++보다 안정적인 모습을 보일 때도 있는데, 이런 경우에 JVM이 시작될 때 필요한 메모리를 먼저 통으로 잡아버립니다.
메모리를 자주 할당하거나 해제하는 C/C++ 프로그램은 오히려 Java보다 성능이 느릴 수 있습니다.
JAVA 프로그래머가 되려면?
범용성이 넓다는 것은 그만큼 알아야 기본적인 지식의 베이스도 넓다는 말입니다.
그리고 기초적인 지식은 지식을 쌓아 올리고 실력이 높아지는데에
아주 중요한 역할을 하죠.
기초부터 차근차근 잘 다져나가셔야 합니다.
기초부터 전문가까지 차근차근 공부하실 수 있습니다.
그리고 지금이라면 국비지원 받으시면서 무료로 진행하실 수 있습니다.
언제나 연락주세요. 기다리고 있겠습니다.
하단의 이미지를 눌러주세요! 바로 상담 가능합니다.
'IT 정보나눔!' 카테고리의 다른 글
C 언어는 무엇일까? (0) | 2020.12.10 |
---|---|
Python(파이썬)은 무엇이고 어디서 배울 수 있나요? (0) | 2020.12.09 |
클라우드는 무엇이고 클라우드 아키텍트란 무엇인가? (0) | 2020.12.07 |
IT 이야기 할 때 항상 나오는 리눅스(Linux)란 무엇인가? (0) | 2020.12.04 |
APP개발자가 되는 방법과 전망 (0) | 2020.12.02 |