본문 바로가기
PL (Programming Language)/Java

[Java] 객체지향의 대표주자, 자바의 특징과 공부방법

by jangThang 2022. 1. 20.
반응형

[ Contents ]

     

     

    Java Logo / Java coffee

    1. Java언어의 기원

     Sun Microsystems에서 1995년에 개발했습니다. 무미건조한 C, C++, C#과 달리, JAVA라는 특이한 이름을 갖고 있습니다. 이 이름이 에피소드도 특이한데, 바로 Java 커피에서 유래되었습니다. 개발자와 커피는 떼어놀 수 없다고들 하지만, 커피 이름으로 짓는 건 아이러니하네요. 하긴 tv프로그램 이름으로 지은 Python도 있으니.... 딱히 이름에는 별 의미를 두지 않는 듯합니다.

     

     

     

    Object 클래스

    2. Java의 특징

     Java는 대표적인 객체지향 프로그래밍 언어입니다. java.lang.Object는 모든 클래스들의 최상위 클래스로, 모든 요소들이 클래스 안에 담겨져 있습니다. C++처럼 클래스 밖을 벗어나는 예외가 없습니다. 

     그렇기 때문에, 가장 긴 코드를 자랑하는 언어이기도 합니다. 한 가지 작업을 하려면, 클래스부터 정의해야하며 일일이 객체를 만들고 관리해줘야 합니다. 특히 예외처리나 유지보수까지 고려한다면, 이럴 필요까지 있을까 싶을 정도로 코드가 길어집니다. 멤버변수별 Get/Set 메서드 [값을 읽어오는 메서드 / 값을 변경하는 메서드] 만 하더라도 열댓개는 금방 넘어버리니까요.

     

     

    class Main {
        public static void main(String args[]) {
            System.out.println("Hello World!");
        }
    }
    print("Hello World!")

     소스 코드 자체도 상당히 복잡한 편입니다. "Hello World!"라는 간단한 출력문도 파이썬과 비교해서 상당히 깁니다. 앞서 봤듯이, 자바 클래스는 계층적인 구조를 띄고 있습니다. System.out.println 도 [ system > out > println함수 ]를 사용한다는 뜻으로 일일이 써줘야 하는 게 많습니다. 

     그러다보니 초보자들이 지레 겁 먹고 어려워하는 언어 중 하나입니다. 분명 코드는 복잡해보이지만, Java에 익숙해지면 오히려 편하기도 합니다. IDE의 자동완성 기능을 이용하면 쉽게 코드를 칠 수 있고, Tab으로 라이브러리 내 함수도 쉽게 검색할 수 있습니다. 비슷한 기능을 하는 함수들이 모여있기 때문에, 굳이 표준 문서를 찾아보지 않아도 쉽게 사용할 수 있는 이점이 있습니다.

     

     

     

     자바는 호환성(이식성)이 좋습니다. JVM(자바 가상 머신) 위에서 작동하기 때문에, 어떤 운영체제를 가진 컴퓨터라도 JVM만 깔려있으면 호환됩니다. 또한 안정성도 상당히 높습니다. 문제가 될 수 있는 포인터 조작이나 다중상속을 허용하지 않습니다. 가비지 컬렉션을 통해서 메모리도 관리하기 때문에, 메모리 누수도 없습니다. 모든 컴포넌트가 클래스 안에 캡슐화 되어있으므로, 보안에도 강력합니다.

     이러한 높은 호환성과 안정성, 보안 때문에, 많은 인기를 누렸습니다. 아직도 Java기반의 Spring 웹프레임워크, JSP도 많이 사용되며 Java 개발자들이 가장 많습니다.

     

     

     

    3. Java 공부방법

     Java는 객체지향 패러다임의 대표 언어로, 지금도 현업에서 많이 사용되고 있습니다. (특히 백엔드 쪽)

     소스코드 자체가 길고 복잡한 편이라, 처음에는 거부감이 있지만 하다보면 친숙해집니다. 우선 자바 문법에 대해 공부하고, 객체지향 패러다임에 대해 자세히 이해하는 게 중요합니다. 객체지향에 대한 정확한 이해를 바탕으로, 클래스를 정의하고 객체를 관리할 수 있어야 합니다.

     

     해당 강의에서는 Java 문법과 객체지향 패러다임에 대해서 자세히 다뤄보겠습니다.

     

    반응형

    댓글