[JAVA] JAVA 소개
이번 포스팅은 JAVA 에 대한 소개를 하고자 합니다. 그 이유는 현재 다니고 있는 회사에서 사용하고 있는 프로그래밍 언어가 JAVA 인 것도 있고, 저는 대학생 때 JAVA 를 배우긴 했지만 대부분의 과제는 C 언어를, 연구실에 들어가서부터는 Python 을 했기 때문에 JAVA 를 대학교 강의 시간 외에는 좀 더 세세히 다루진 않았었어서 스스로를 위해서도 JAVA 에 대해 더 자세히 다루는 시간이 필요하다고 느껴져서 입니다.
이번에 JAVA 포스팅을 위해 저는 wikidocs.net 에서 내용을 참고하여 포스팅을 작성할 예정이며, wikidocs.net 에 없는 세세한 내용들은 JAVA 에 대해 다루는 전문 서적을 참고할 예정이며 참고한 책들이나 사이트들은 모두 공유를 드릴 예정입니다.
1. JAVA 란?
JAVA 는 썬 마이크로시스템즈의 제임스 고슬링(James Gosling)과 연구원들이 개발한 객체 지향 프로그래밍 언어로 1995년에 발표되었습니다. 처음에는 가전 제품에 탑재해 동작하는 프로그램을 만들기 위해 탄생하였으나 지금은 웹과 모바일 앱 개발에 가장 많이 쓰이고 있습니다.
JAVA 는 특히 우리나라에서 쓰이는 프로그래밍 언어 중 사용 빈도가 매우 높습니다. 우리나라 기업에서 사용하는 프로그램의 80% 이상은 JAVA 로 만들어졌다고 해도 과언이 아닙니다. 또한 오랜 시간 생태계를 구축하고 유지해 왔기 때문에 JAVA 를 기반으로 한 수 많은 라이브러리와 툴 들이 존재합니다. 따라서 우리나라 기업에서 개발자로 일하고 싶다면 JAVA 를 배우는 것은 거의 기본 소양에 가깝다고 생각되어 JAVA 를 배우는 것을 적극 추천 드립니다.
2. JAVA 로 할 수 있는 일
-
웹 프로그래밍
JAVA 는 웹 프로그램 개발에 널리 사용되고 있으며, 서버 사이브(백 엔드) 개발에 특히 강점이 있습니다. 예를 들어 서블릿(Servlet), JSP, 스프링 프레임워크 등과 같은 기술들을 사용하여 웹 프로그램을 만들 수 있습니다.
-
안드로이드 어플리케이션
JAVA 는 안드로이드 어플리케이션 개발을 할 때 사용하는 메인 언어입니다. 안드로이드 스튜디오와 함께 JAVA 를 사용하면 쉽게 모바일 앱 개발을 할 수 있습니다.
-
게임 개발
자바를 이용해 게임 개발도 가능합니다. 여러분이 이용하는 안드로이드 게임의 대부분은 JAVA 로 개발되었습니다. 게임 개발을 위한 대표적인 JAVA 라이브러리로는 LWJGL 이 있고, JAVA 프레임워크로는 libGDX 가 있습니다. 이들을 활용하면 멀티플랫폼 게임도 쉽게 개발할 수 있습니다.
-
데이터베이스 처리
데이터를 저장하고 조회하기 위해서는 데이터베이스 시스템이 반드시 필요합니다. JAVA 는 이러한 데이터베이스 시스템에 연결하여 데이터를 관리하는 매우 적합한 언어입니다.
-
빅 데이터 및 분산 처리
빅 데이터는 대규모의 복잡한 데이터를 의미하며, 전통적인 데이터 처리 방식으로는 분석이 어렵습니다. 이를 효과적으로 처리하기 위해 분산 처리 기술이 사용됩니다. 분산 처리는 컴퓨터 또는 클래스터에서 데이터와 연산을 분산시켜 병렬 처리하는 방식입니다. 자바는 하둡, 스파크와 같은 빅 데이터 처리에 필요한 도구와 프레임워크를 제공합니다.
3. JAVA 로 할 수 없는 일
-
시스템 프로그래밍
자바는 시스템 프로그래밍에 적합하지 않습니다. 운영체제, 드라이버, 커널 등의 Low Level 시스템 개발에는 C, C++ 같은 언어가 더 적합합니다.
-
높은 성능을 요구하는 프로젝트
자바는 가비지 컬렉션(Garbage Collection, GC)과 JIT(just-in-time) 컴파일러와 같은 기능 때문에 실행 속도가 다소 느릴 수 있습니다. 따라서 고성능이 중요한 분야에서는 C, C++, 또는 Rust와 같은 언어가 적합합니다. 하지만 요즘에는 컴퓨터의 하드웨어적 성능이 높기 때문에 그렇게 까지 큰 문제는 되지 않는 것 같습니다.
-
iOS 어플리케이션 개발
자바는 안드로이드 어플리케이션 개발의 주요 언어이지만, iOS 어플리케이션 개발에 제한적입니다. iOS 개발은 주로 스위프트(Swift) 또는 오브젝티브-C(Objective-C)를 사용합니다. 또한 일부 네이티브 데스크톱 어플리케이션 개발에서도 자바의 사용이 제한적일 수 있습니다.
마치며
JAVA 에 대해서 대략적으로 정리를 해보았습니다. 저는 이번 포스팅을 읽는 대상을 프로그래밍을 처음 접하거나 배운지 얼마 안된 사람들을 대상으로 작성하였습니다. 그래서 포스트를 읽으시면서 생소한 단어들도 많이 보이실텐데요 앞으로 JAVA 에 대해 포스팅들을 작성해 나가면서 세세한 설명들을 하고자 합니다. 그리고 생소한 단어로 인해 포스트가 안 읽히신다면 미리 예습을 해보시고 포스트를 다시 읽어 보시는 것도 좋겠다는 생각이 듭니다.
마지막으로 제가 알기론 대기업, 중견 기업을 제외한 대부분 중소 기업 IT 회사에서는 현재까지도 JAVA 를 많이 사용하고 있는 것으로 알고 있고, 우리 삶과 뗄레야 뗄 수 없는 웹은 개발 언어로 여전히 JAVA 가 강세입니다. 이런 이유로 한국에서는 JAVA 를 공부해 놓으면 굉장히 많은 이익을 취할 수 있을 것이라고 생각이 됩니다. 또한 JAVA 는 C 와 어느 정도 비슷한 부분이 있기 때문에 대학에서 컴퓨터 공학을 전공해서 C 부터 배우신 분들은 수월하게 아니면 좀 더 쉽게 배우실 수 있을 것이라고 생각되네요. 거기다 요즘에는 컴퓨터 하드웨어의 성능이 높아 시스템 프로그래밍, iOS 앱 개발, 딥러닝 등 특정 언어 및 프레임워크를 사용하는게 아니라면 JAVA 로 모든 것을 할 수 있다고 생각이 들고, 특히 웹 개발을 하실거라면 JAVA 는 정말 강추를 드립니다.
포스트를 읽어 주셔서 감사드리며 오타나 잘못된 내용이 있다면 댓글로 남겨주시기 바라며, 저 자신과 다른 분들에게도 많은 도움이 되었으면 합니다.
Comments