자바(Java) 입문: 기본 개념과 실제 활용 분야까지

자바(Java) 란?

자바(Java) 입문: 기본 개념과 실제 활용 분야까지

자바(Java)객체 지향 프로그래밍 언어로, 썬 마이크로시스템즈(Sun Microsystems)에 의해 1995년에 개발되었다. 오늘은 내가 현재 주력으로 사용 중인 Java에 대해 이야기 해볼까 한다.

한국에서 개발자로 웹 개발 교육을 받으면 처음 접하게 되는 대표적인 프로그래밍 언어로 나 또한 그러했다.

현재 나는 SAP ERP 를 운영하고 있지만, 이와 연계 되는 레거시 시스템(신규 시스템 속에 남겨진, 혹은 연계되는 시스템)이 Java 를 기반으로 하고 있는 웹 시스템들이 많아 익힌 기술을 계속 사용 중에 있다.

이 언어의 자바라는 이름에는 재밌는 유래가 있는데 바로 인도네시아 에서 생산되는 커피 종류인 Java 에서 이름을 가져왔다는 일화가 있다. (처음에는 Oak 란 이름 이였지만 상표권 문제로 교체 되었단 일화가 있다.)

Spring 이라 불리우는 프레임워크 기반의 웹 사이트가 워낙 성능, 안정성이 높아 많이 제작 되고 국내 환경에서 경력이 되는 엔지니어가 많다 보니 이에 관한 지식이 활발이 공유, 대규모 커뮤니티를 형성하고 있다.

자바(Java) 사용 분야

자바는 널리 사용되는 프로그래밍 언어 중 하나로, 안드로이드 앱 개발, 웹 애플리케이션, 엔터프라이즈 소프트웨어, 그리고 사물 인터넷(IoT) 기기 등 다양한 분야에서 활용된다.

웹 애플리케이션에서 사용

웹 기술과 관련하여, 자바는 JSP(JavaServer Pages), 서블릿(Servlets), 스프링(Spring Framework) 등 다양한 백엔드 기술을 통해 웹 애플리케이션의 개발에 기여하고 있다.

최근 신흥 강자인 Node.js 와 같은 새로운 기술이 등장 하면서 Java 를 쓰지 않은 웹 사이트들이 늘어가고 있는데, 아직 대규모 엔터프라이즈 급 (비즈니스, 기업 환경에서 사용) 애플리케이션 환경에서 강점을 지니고 현재도 많이 사랑 받고 있다.

안드로이드 앱에서 사용

안드로이드 앱의 공식 언어 중 하나로, 안드로이드 JDK 와 잘 통합 되어 있어 앱 개발에 이용 된다.

최근 앱 개발에는 새로운 언어인 Kotlin이 인기를 얻어가고 있는데 Java 와 100% 호환 되는 여러가지가 보완된 언어이다.

자바(Java)의 주요 특징

플랫폼 독립성

Java 의 큰 장점 중 하나로 작성 된 애플리케이션이 다양한 운영체제에서 실행 될 수 있다. “이는 한번 작성하면 어디서나 실행 된다(Write Once, Run Anywhere, WORA)”는 Java의 철학 덕분이다.

이는 Java 로 작성 된 앱이 JVM 이란 가상 머신을 통해 실행되는 구조를 지녀 이 JVM 이 설치 될 수 있는 환경에서 실행 될 수 있게 된다.

그런데 우리는 실제로 안드로이드 앱이 윈도우 OS 에서 사용되지 않고 있음을 알고 있다. 이는 안드로이드 앱이 JVM 이 아니라 안드로이드 런타임(ART) 에서 동작한다는 특수성 때문이다.

그래서 실제론 모든 운영체제에서 실행 되지 않을 수 있지만, 가령 Java 기반으로 만들어진 웹이라면 윈도우 환경에서 개발 했어도 운영할 서버는 다른 OS(리눅스 등)이 설치 되어 있어도 된다.

강력한 표준 라이브러리

Java 는 방대한 표준 라이브러리를 제공한다. 이를 이용하면 별도의 추가 라이브러리 없이도 네트워크 제어, DB 연결, XML 파싱 등 다양한 기능을 쉽게 구현할 수 있다.

객체 지향 프로그래밍 – ⭐

Java의 객체 지향적 특성은 코드의 재사용성, 유지 관리성, 모듈성을 높여주어 대규모 애플리케이션 개발에 매우 유리하다.

강력한 개발 도구

Eclipse, IntelliJ IDEA, Android Studio 등 Java 를 위한 강력한 개발 환경들이 있다. 특히 Android Studio는 Google에 의해 공식적으로 지원되고 Java를 사용한 안드로이드 앱 개발에 최적화 되어 있다.

객체 지향 프로그래밍 언어(Object-Oriented Programming, OOP)

이 용어는 Java 를 이해 하는데 필수적이며 Java는 이를 100% 지원하는 대표 언어이기에 OOP의 특징은 곧 Java 의 특징이기도 하다.

소프트웨어 개발 방법론 중 하나로, 프로그램을 객체들의 집합으로 모델링 하여 개발하는 방식. 데이터(속성)와 데이터를 처리하는 연산(메소드)를 객체로 묶어 관리 한다.

객체 지향 프로그래밍의 핵심 개념

  • 클래스(Class): 객체를 생성하기 위한 틀 또는 설계도. 데이터와 함수를 포함할 수 있다.
  • 객체(Object): 클래스에 의해 생성된 인스턴스. 실제 프로그램에서 사용되는 데이터와 함수의 집합체다.
  • 상속(Inheritance): 한 클래스가 다른 클래스의 속성과 메소드를 물려받는 것. 코드 재사용성을 높이고, 중복을 줄이는 데 도움을 준다.
  • 다형성(Polymorphism): 같은 이름의 메소드가 다른 클래스에서 다양하게 실행될 수 있는 성질. 오버로딩(Overloading)과 오버라이딩(Overriding)으로 구현된다.
  • 캡슐화(Encapsulation): 객체의 데이터(속성)와 그 데이터를 처리하는 메소드를 하나로 묶는 것. 외부에서 직접적으로 접근할 수 없도록 하여 데이터 보호 및 은닉을 가능하게 한다.

대표적인 객체 지향 프로그래밍 언어로는 자바(Java), C++, 파이썬(Python), 루비(Ruby) 등이 있다.

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x
목차
위로 스크롤