BlueNyang
[멀티캠퍼스] 풀스택 개발자 아카데미 (7) - Java(1)
Java 풀스택 아카데미
· 멀티캠퍼스 JAVA 풀스택 개발자 아카데미 6회차 (7편)

[멀티캠퍼스] 풀스택 개발자 아카데미 (7) - Java(1)

BlueNyangBlueNyang
·
·
약 3분
·
# [현대이지웰] JAVA 풀스택 개발자 아카데미 6회차# 멀티캠퍼스it부트캠프# 부트캠프후기# jvm# jdk# primitive-type# reference-type# control-flow
시리즈·멀티캠퍼스 JAVA 풀스택 개발자 아카데미 6회차(30개의 글)
  • ···
  • 6.[멀티캠퍼스] 풀스택 개발자 아카데미 (6) - React
  • 7.[멀티캠퍼스] 풀스택 개발자 아카데미 (7) - Java(1)현재
  • 8.[멀티캠퍼스] 풀스택 개발자 아카데미 (8) - Java(2)
  • ···
원본: Magnific - Flaticon
원본: Magnific - Flaticon

1. Java

특징

  • JVM(Java Virtual Machine) - 운영체제에 맞는 자바 가상 머신 위에서 동작
  • 플랫폼 독립성 - JVM덕분에 플랫폼에 상관없이 동작

    • WORA(Write Once, Run Anywhere) - 한 번 작성하면 어디서든 실행
자바의WORA개념도
자바의WORA개념도

1.1. Java Development Kit

자바 프로그램을 개발하고 실행하기 위해서는 JDK(Java Development Kit) 가 필요하다. JDK는 다음과 같은 요소들로 구성되어 있다.

  • JVM: 자바 가상 머신. 자바 응용 프로그램이 실행되는 환경
  • JRE: Java Run-time Environment. 자바 실행 환경으로, 표준 클래스 파일 포함
  • JDK의 bin 디렉터리에 포함된 도구들

    • javac: java compiler. 소스코드를 컴파일하는 컴파일러
    • java: 자바 응용 프로그램을 실행
    • javadoc: HTML 형태의 API 문서 생성
    • jar: 자바 클래스 파일을 압축한 jar 파일 생성 관리
    • jdb: 실행 중 오류를 찾는데에 사용하는 디버거

자바 프로그램 실행 과정

  1. 개발자가 .java 확장자를 가진 소스 코드 파일을 작성
  2. 자바 컴파일러(javac)가 소스 코드를 JVM이 이해할 수 있는 바이트 코드(.class)로 변환
  3. JVM은 이 .class 파일을 OS에 맞게 해석하여 실행
실행과정
실행과정

2. 변수

프로그램밍에서 변수는 데이터를 저장하기 위한 메모리 공간으로, Java는 변수를 사용하기 위해 먼저 어떤 종류의 데이터를 저장할 지 '타입(type)'과 '이름'을 정해 선언한다.

java
int score = 95; // 'score'라는 이름의 정수(int) 타입 변수에 95 저장
String name = "홍길동"; // 'name'이라는 문자열(String) 변수에 "홍길동"을 저장

자바의 데이터 타입은 크게 Primitive(기본) TypeReference(참조) Type으로 구분된다.

  • Primitive: 실제 값을 저장하는 타입으로, int(정수), double(실수), char(문자), boolean(논리값) 등 8가지가 있다. Stack 영역에 공간 할당
  • Reference: 객체의 주소값을 저장하는 타입으로, 기본형을 제외한 나머지, 대표적으로 String(문자열)이나 배열(Array) 등이 있다. Heap 영역에 공간을 할당

3. 연산자(Operator)

연산자는 데이터를 가공하고 처리해 새로운 결과를 만들어내는 기호로, 연산자는 기능에 따라 산순, 비교, 논리 연산자 등으로 나뉘며, 다음과 같이 연산 순서에 영향을 미치는 우선 순위를 가진다.

우선순위표
우선순위표

3.1. 단항 연산자

피연산자가 하나인 연산자

  • 증감 연산자(++, --): 변수의 값을 1 증가 또는 감소 시키며, 전위/후위에 따라 연산 순서가 다르다.

    • y = ++x: 전위형. x를 먼저 1증가시킨 후, 그 값을 y에 대입한다.
    • y = x++: 후위형. x를 y에 대입 시킨 위, x를 1증가시킨다.
java
package operator_ex.ex01;

public class OperatorEx01 {
  public static void main(String[] ignoredArgs) {
    int x = 0;
    System.out.println("x: " + x);
    // x: 0

    int y = ++x;
    System.out.println("x: " + x + ", y: " + y);
    // x: 1, y: 1

    x = 0;
    y = x++;
    System.out.println("x: " + x + ", y: " + y);
    // x: 1, y: 0
  }
}

3.2. 이항 연산자

피연산자가 두 개인 연산자

  • 산술 연산자 (+, -, *, /, %): 사칙 연산과 나머지 연산을 수행하는 연산자.
  • 비교 연산자 (==, !=, >=, <=, <, >): 두 값을 비교해 true 또는 false의 논리값을 반환하는 연산자.
  • 논리 연산 (&&, ||, !): 여러 조건을 조합하거나 논리값을 반전시킬 때 사용

    • && (AND): 두 조건이 모두 true일 때만 true
    • || (OR) : 두 조건 중 하나라도 true이면 true
    • ! (NOT) : 논리 값을 반전하여 반환

3.3. 삼항 연산자

유일하게 피연산자가 세 개인 연산자로, 간단한 if-else문을 대체할 수 있음

<condition> ? (value when true) : (value when false)

java
char grade = (score > 90) ? 'A' : 'B'; // score가 90을 넘기면 A, 아니면 B

4. 제어문

제어문은 프로그램의 실행 흐름을 개발자가 원하는 방향으로 바굮ㄹ 수 있게 해주는 문법이다.

4.1. 조건문 (if, switch)

  • if문: 주어진 조건식이 true일 경우에만 코드 블록을 실행한다.

    • else if를 사용해 여러 조건을 검사하거나, else를 통해 조건이 맞지 않는 모든 경우를 처리할 수 있다.
  • switch문: 특정 변수나 식의 값에 따라 실행할 코드 블록을 결정한다.

    • if-else if문이 길어질 때 사용하면 코드가 더 간결해질 수 있다.
java
package control.ex01;

public class ControlEx01 {
    public static void main(String[] ignoredArgs) {
        int score = 0;

        // 점수를 입력받는 코드
        try (Scanner sc = new Scanner(System.in)) {
            System.out.print("Enter the score: ");
            score = sc.nextInt();
        } catch (Exception e) {
            System.out.println("exception: " + e.getMessage());
        }

        char grade = 'N'; //None

        // if-else
        if (score >= 90) {
            grade = 'A';
        } else if (score >= 80) {
            grade = 'B';
        } else if (score >= 70) {
            grade = 'C';
        } else if (score >= 60) {
            grade = 'D';
        } else {
            grade = 'F';
        }

        System.out.println("if-else: " + grade);

        //switch
        grade = switch (score / 10) {
            case 10, 9 -> 'A';
            case 8 -> 'B';
            case 7 -> 'C';
            case 6 -> 'D';
            default -> 'F';
        };

        System.out.println("switch: " + grade);
    }
}

4.2. 반복문 (for, while)

  • for: 정해진 횟수만큼 특정 작업을 반복하거나, 리스트나 배열 등의 Collection을 순회하는 데에 주로 사용된다.
java
package control.ex02;

class ControlEx02For {
    public static void main(String[] ignoredArgs) {
        // 일반적인 for문
        for (int i = 0; i < 10; i++) {
            System.out.println("i: " + i);
        }

        int[] arr = {1, 2, 3, 4, 5};
        // 배열 순회
        for (int i: arr) {
            System.out.println(i);
        }
    }
}
Note
위의 코드에서 for (int i: arr)과 같은 형태의 for문을 향상된 for문(Enhanced for-loop) Ehsms for-each문이라고 부른다.
for반복문실행흐름도
for반복문실행흐름도
  • while: 조건식이 true인 동안 계속해서 코드 블록을 반복한다.
java
package control.ex02;

class ControlEx02While {
    public static void main(String[] ignoredArgs) {
        int i = 0;

        while (i < 10) {
            System.out.println("i: " + i++);
        }
    }
}
while반복문실행흐름도
while반복문실행흐름도

5. 배열 (Array)

배열은 같은 타입의 데이터 여러 개를 연속된 공간에 저장하는 자료구조이며, 배열을 사용하면 여러 데이터를 하나의 변수 이름으로 붂어서 관리할 수 있고, 반복문과 결합하여 효율적으로 처리할 수 있다.

배열의 각 요소는 인덱스(index)로 접근하며, 인덱스는 항상 0부터 시작한다.

java
int[] score = new int[5];

scores[0] = 95;
scores[1] = 80;

String[] names = {"Alice", "Bob", "Chalie"};

for (String name: names) {
  System.out.println(name);
}

2차원 배열을 사용하면 행과 열로 구성된 표 형태의 데이터도 다룰 수 있다.

java
int[][] score = new int[3][3];

score[0][1] = 50;
...

int[][] arr = {
        {1, 2, 3},
        {4, 5, 6},
        {7, 8, 9}
};

for (int y = 0; y < arr.length; y++) {
    for (int x = 0; x < arr[y].length; x++) {
        System.out.print(arr[y][x] + " ");
    }
    System.out.println();
}
2차원배열
2차원배열
BlueNyang
작성자BlueNyang
라이선스
CC BY NC
BlueNyang

BlueNyang

BlueNyang의 개발 log

카테고리

  • Development
  • Framework
  • Language
  • Dev Tools
  • DevOps & Infra
  • Studies

페이지

© 2026 BlueNyang. All rights reserved.

Made with Nuxt.js and Directus