[자바 로드맵 달리기] 01. Basic Syntax

최승원·2026년 4월 1일

"저는 주로 자바를 사용해서 개발해요." 나는 이 말을 할 자격이 있는 걸까?

내가 어디까지 알고, 어디부터 모르는지 잘 파악이 되지 않는다. 이걸 과연 자바를 주로 사용하는 사람이라고 할 수 있는가?

Java 프로그램의 기본 구조

Java는 모든 코드가 클래스 안에 존재해야 한다. C나 Python처럼 함수를 클래스 밖에 둘 수 없다.

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

한 줄씩 해부하기

public class HelloWorld

  • public -> 어디서나 이 클래스에 접근 가능
  • class -> 클래스를 선언하는 키워드
  • HelloWorld -> 클래스 이름. 파일명과 반드시 일치해야 함(HelloWorld.java)

public static void main(String[] args)

public -> JVM이 외부에서 호출할 수 있도록
static -> 객체 생성 없이 JVM이 바로 호출 가능하도록
void -> 반환값 없음
main -> 프로그램의 진입점(Entry Point). JVM이 여기서부터 실행
String[] args -> 커맨드라인 인자를 받는 배열

System.out.println(...)

System -> 자바 표준 라이브러리의 클래스
out -> 표준 출력 스트림 객체
println -> 출력 후 줄바꿈. print는 줄바꿈 없음

Java의 핵심 규칙

  1. 세미콜론 ; 모든 문장 끝에 세미콜론이 필수다.
int x = 10;   // ✅
int y = 20    // ❌ 컴파일 에러
  1. 중괄호 {}로 블록 구분
public class Example {      // 클래스 블록 시작
    public static void main(String[] args) {  // 메서드 블록 시작
        // 코드
    }                       // 메서드 블록 끝
}                           // 클래스 블록 끝
  1. 대소문자 구분
int number = 1;
int Number = 2;   // number와 Number는 완전히 다른 변수!
  1. 주석 3가지
// 한 줄 주석

/*
   여러 줄
   주석
*/

/**
 * Javadoc 주석 (문서 자동 생성용)
 * @param args 커맨드라인 인자
 */

네이밍 컨벤션

대상규칙예시
클래스PascalCaseMyClass, HelloWorld
메서드/변수camelCasemyMethod, userName
상수UPPER_SNAKE_CASEMAX_SIZE, PI
패키지모두 소문자com.example.app

Java 실행 흐름

.java 파일           .class 파일    실행
(소스코드) -> 컴파일 -> (바이트코드) -> JVM -> 결과
           javac                 java

Python은 인터프리터가 소스를 바로 실행하지만, Java는 컴파일 -> 바이트코드 -> JVM 실행 2단계를 거친다. 덕분에 어떤 OS에서도 동작한다.

코드 예제

출력 방식 비교

public class PrintExample {
    public static void main(String[] args) {
        System.out.println("줄바꿈 포함 출력");   // 출력 후 줄바꿈
        System.out.print("줄바꿈 없음 ");          // 줄바꿈 없이 출력
        System.out.print("이어서 출력\n");         // \n으로 직접 줄바꿈
        System.out.printf("포맷: %s는 %d살\n", "철수", 20); // 형식 지정 출력
    }
}

// ----- 출력문 -----
줄바꿈 포함 출력
줄바꿈 없음 이어서 출력
포맷: 철수는 20// ----- 출력문 -----

구조가 잘 보이는 전체 예시

// 파일명: Calculator.java
public class Calculator {           // 클래스명 = 파일명

    // 상수 선언
    static final double PI = 3.14159;

    // main 메서드: 프로그램 시작점
    public static void main(String[] args) {

        // 변수 선언 및 출력
        int radius = 5;
        double area = PI * radius * radius;

        System.out.println("반지름: " + radius);
        System.out.printf("넓이: %.2f%n", area);  // 소수점 2자리
    }
}

// ----- 출력문 -----
반지름: 5
넓이: 78.54
// ----- 출력문 -----

마치며

요즘 들어서 "나는 자바를 잘 알고 있는걸까?"하고 스스로에게 계속 질문을 많이 했었다. 이 질문을 스스로에게 한다는 것은 곧 자바에 자신이 없는 것이고, 자바를 깊이 있게 모른다는 것이다. 이제는 깔끔하게 인정하고 바닥부터 다시 올라가 보겠다.

profile
안녕하세요. 최승원입니다.

0개의 댓글