[Java 풀스택 과정 강의] 1월 30일

부트캠프 일지/Java 풀스택 과정 강의
2026.02.05
※ TIL와는 별개로 적는 개인 개발 일지라서 말은 좀 편하게하는 페이지입니다.
일지이기 때문에 일기의 성격이 더 강합니다.

 

 

 

2차원 배열

2차원 배열이란 배열 안에 있는 배열을 뜻한다. 한 줄(1차원)을 여러 줄로 쌓아서 행(row)·열(column) 로 다루는 구조다. 행과 열이라는 것은 임의적으로 구조화 시킨 것에 가까우며, 실제로는 배열 안의 배열이 길게 늘어진 것에 가깝다.

 

        열0   열1   열2
행0  [  [1,    2,    3],   ← arr[0]
행1     [4,    5,    6],   ← arr[1]
행2     [7,    8,    9] ]  ← arr[2]
       arr[0][0]=1, arr[1][2]=6

 

arr[i][j]로 i행 j열에 접근하고, 내부적으로는 “배열을 담는 배열” 구조가 된다.

 

// 1) 행·열 크기만 지정
int[][] arr1 = new int[3][4];   // 3행 4열, 기본값 0

// 2) 선언과 동시에 초기화
int[][] arr2 = {
    { 1, 2, 3 },
    { 4, 5, 6 },
    { 7, 8, 9 }
};

// 3) 행마다 열 개수 다르게 (비정형)
int[][] arr3 = new int[3][];
arr3[0] = new int[] { 1, 2 };
arr3[1] = new int[] { 3, 4, 5 };
arr3[2] = new int[] { 6 };

 

 

열거형 타입Enumeration Type

열거형 타입이란 한정된 값만을 갖는 데이터 타입을 말한다. 요일이나 계절 같이 정해진 값을 사용하기 좋다. Enum이라는 형태로 사용한다.

 

public enum Week {
    SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
}

 

 

이렇게 요일을 쓴다 칠때, 다음과 같은 예제도 가능하다. Calendar라는 API를 불러와 사용하는 예제다.

 

package ch05.sec04;

import java.util.Calendar;

public enum Week {
    SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
}

class EnumWeekEx {
    public static void main(String[] args) {
        Calendar cal = Calendar.getInstance();
        int week = cal.get(Calendar.DAY_OF_WEEK);  // 1~7

        Week today = null;
        switch (week) {
            case 1: today = Week.SUNDAY;    break;
            case 2: today = Week.MONDAY;    break;
            case 3: today = Week.TUESDAY;   break;
            case 4: today = Week.WEDNESDAY; break;
            case 5: today = Week.THURSDAY;  break;
            case 6: today = Week.FRIDAY;    break;
            case 7: today = Week.SATURDAY; break;
            default: break;
        }

        System.out.println("오늘 요일 : " + today);

        // 열거형 메서드
        System.out.println(today.name());           // "SUNDAY" 등
        System.out.println(today.ordinal());        // 0부터 순번
        System.out.println(today.compareTo(Week.WEDNESDAY));  // 순서 차이
        System.out.println(Week.valueOf("SUNDAY"));           // Week.SUNDAY
    }
}

 

열거형 메서드는 다음과 같이 사용한다.

 

  • name() 열거형의 이름을 가져온다.
  • ordinal() 열거형의 해당 순번(index)를 가져온다
  • compareTo() 순번의 차이를 반환한다
  • valueOf() 매개값과 동일한 문자열을 갖는 열거 객체 반환한다.

 

 

메서드와 클래스

클래스의 경우 ()를 사용하지 않고, 메서드는 ()를 사용한다.

접근 제한과 void, return에 대한 이야기는 TIL에서 했으니 그쪽을 참고하면 좋다.

 

https://bbbbabbbababababa.tistory.com/29

 

[Java 풀스택 개발자] Java의 용어와 개념: 낯선 Java를 친숙하게 만들어보자!

0. 들어가기에 앞서본래는 특별편인 React 실전으로 먼저 만나려고 했다. 그러나 생각보다 만들려던 것의 규모가 커지면서 다음 기회에 포스팅하게 되었다. 따라서 이번 주는 한국의 백엔드 중심

bbbbabbbababababa.tistory.com

 

클래스 = 필드(속성) + 메서드(동작) 으로 객체 하나를 정의하는 단위이다. 주로 main 클래스에서 객체 생성을 한 뒤 다른 클래스에서 정의된 메서드를 불러와 사용한다. 메서드로 잘라 동작을 분리해두면 재사용이 쉬워진다.

 

메서드 중 특기할 것은 getter와 setter라는 것인데, 이것은 필드를 set하는 setter 메서드와, 해당 필드를 불러오는 getter 메서드를 총칭해서 무르는 것이다. 실제로 이클립스나 intelliJ를 포함한 IDE에서는 이에 대한 숏컷을 제공해주고 있다. 그에 대한 예제는 다음과 같다고 할 수 있다.

 

public class Person {
    private String name;
    private int age;

    // setter: 필드에 값 넣기
    public void setName(String name) {
        this.name = name;
    }

    public void setAge(int age) {
        this.age = age;
    }

    // getter: 필드 값 꺼내기
    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }
}

 

이렇게 정의한 메서드를 메인에서 다음처럼 사용한다.

 

public static void main(String[] args) {
    Person p = new Person();
    p.setName("홍길동");
    p.setAge(20);

    System.out.println(p.getName());  // 홍길동
    System.out.println(p.getAge());   // 20
}