1. Java, 언제 어떻게 쓰일까? (주요 활용 분야)

자바는 1995년 탄생 이후 전 세계적으로 가장 많이 쓰이는 언어 중 하나로 자리 잡았다. 특히 뛰어난 안정성과 확장성 덕분에 규모가 큰 프로젝트에서 압도적인 점유율을 자랑한다.

  • 🌐 웹 백엔드 개발 (Web Backend)
    • 어떻게 쓰이나: 우리가 사용하는 대부분의 대형 웹 서비스, 쇼핑몰, 은행 시스템의 서버(백엔드)를 구축할 때 사용된다. 특히 스프링(Spring) 프레임워크와 결합하여 웹 개발의 사실상 표준(De facto standard)으로 자리 잡았다.
    • 언제 쓰이나: 대규모 트래픽을 안정적으로 처리해야 하는 기업형(Enterprise) 웹 서비스를 만들 때 1순위로 고려된다.
  • 📱 안드로이드 모바일 앱 (Android)
    • 어떻게 쓰이나: 안드로이드 운영체제 자체가 자바를 기반으로 만들어졌으며, 안드로이드 네이티브 앱을 개발하는 핵심 언어다. (최근에는 코틀린(Kotlin)도 많이 쓰이지만, 코틀린 역시 자바의 JVM 위에서 돌아간다.)
  • 📊 빅데이터 및 엔터프라이즈 시스템 (Big Data & Enterprise)
    • 어떻게 쓰이나: 하둡(Hadoop) 같은 빅데이터 처리 플랫폼이나, 높은 신뢰성이 요구되는 금융권/공공기관의 차세대 시스템 구축에 핵심적으로 사용된다.

2. 왜 자바를 선택할까? (언어의 핵심 특징 4가지)

그렇다면 왜 이렇게 거대한 시스템들은 자바를 선호할까? 면접이나 자격증 시험에도 단골로 등장하는 4가지 특징이 그 이유를 설명해 준다.

① 운영체제에 독립적이다 (WORA & JVM)

자바를 대표하는 슬로건은 “Write Once, Run Anywhere (한 번 작성하면, 어디서든 실행된다)”이다.
개발자가 윈도우에서 짠 코드를 맥(Mac)이나 리눅스 서버에서 그대로 실행할 수 있다. 운영체제와 프로그램 사이에 JVM(자바 가상 머신)이라는 실시간 번역기가 존재하기 때문이다.
[Image of Java Virtual Machine architecture and WORA concept]

② 완벽한 객체 지향 언어 (OOP)

프로그램을 수많은 ‘부품(객체)’으로 나누고, 이 부품들을 조립해서 하나의 완성된 프로그램을 만드는 방식이다.
코드의 재사용성이 뛰어나고, 오류가 났을 때 해당 부품만 교체하면 되므로 대규모 협업과 유지보수에 매우 유리하다. (캡슐화, 상속, 다형성, 추상화 지원)

③ 자동 메모리 관리 (Garbage Collection)

C언어처럼 개발자가 직접 메모리를 챙길 필요가 없다. 자바에는 가비지 컬렉터(Garbage Collector)라는 든든한 청소부가 백그라운드에 상주하며, 더 이상 사용하지 않는 메모리를 자동으로 청소해 주어 프로그램의 안정성을 높인다.
[Image of Java Garbage Collection process]

④ 엄격한 정적 타입 언어 (Static Typing)

자바는 변수를 만들 때 그 그릇의 용도(데이터 타입)를 명확하게 지정해야 하는 깐깐한 언어다. 자료형이 맞지 않으면 실행조차 되지 않고 컴파일(번역) 단계에서 에러를 뱉어낸다. 덕분에 실행 중 발생할 수 있는 치명적인 버그를 사전에 차단할 수 있다.


💻 자바의 가장 기본적인 뼈대 (Hello World)

자바는 모든 코드가 ‘클래스(Class)’ 안에 존재해야 하며, 프로그램의 시작점은 항상 main 메서드이다.

// 모든 자바 코드는 클래스(class) 단위로 묶여서 작성된다.
public class HelloWorld {

    // 프로그램이 실행될 때 자바가 가장 먼저 찾는 시작점(main 메서드)
    public static void main(String[] args) {

        // 콘솔 화면에 텍스트를 출력하는 가장 기본적인 명령어
        System.out.println("Hello, Java World!");

    }
}