Java 기초 문법과 객체지향 개념을 학습하면서, 백엔드 학습에 필요한 핵심 개념을 정리합니다.
날짜: 2026-05-08 분류: Java 상태: 이해 중
int[] numbers 같은 배열은 배웠는데, ArrayList는 무엇인가?
배열은 길이가 고정된 자료구조이고, ArrayList는 값을 추가할 때 크기가 자동으로 늘어나는 목록 객체입니다.
배열은 처음 만들 때 칸 수를 정합니다.
int[] numbers = new int[3];
numbers[0] = 10;
numbers[1] = 20;
numbers[2] = 30;위 배열은 기본적으로 3개의 값을 담기 위한 구조입니다. 나중에 값을 계속 추가하는 용도로 쓰기에는 불편합니다.
ArrayList는 값을 하나씩 추가하면서 목록을 키울 수 있습니다.
List<String> names = new ArrayList<>();
names.add("Java");
names.add("Spring");
names.add("Database");StudyLog 예제에서는 공부 기록 하나가 StudyLog 객체이고, 여러 공부 기록은 List<StudyLog>로 표현할 수 있습니다.
List<StudyLog> logs = new ArrayList<>();
logs.add(new StudyLog("Java class practice", "JAVA", 60, "field and constructor"));
logs.add(new StudyLog("Java array practice", "JAVA", 40, "array basics"));List<StudyLog>는 StudyLog 타입의 객체만 담을 수 있는 목록이라는 뜻입니다.
- 배열은 크기가 고정되어 있고,
ArrayList는 값을 추가하면서 크기를 늘릴 수 있다. List<StudyLog>의 꺾쇠 안 타입은 이 목록에 들어갈 항목의 타입을 의미한다.logs.add(...)는 목록에 새 항목을 추가한다.for (StudyLog log : logs)는 목록 안의 값을 하나씩 꺼내 순회한다.
spring-backend-study의 Stage 01에서는 StudyLog 객체 여러 개를 List<StudyLog>에 담고, 반복문으로 출력하는 연습을 진행했습니다.
for (StudyLog log : logs) {
log.printInfo();
}날짜: 2026-05-13 분류: Java 상태: 이해 중
List.of(...)는 무엇인가?
List.of(...)는 여러 값을 한 번에 넣어 List를 만들 때 사용하는 정적 메서드입니다.
기존에는 ArrayList를 만들고 값을 하나씩 추가했다.
List<String> names = new ArrayList<>();
names.add("Java");
names.add("Spring");
names.add("Database");List.of(...)를 사용하면 여러 값을 한 번에 넣어 목록을 만들 수 있다.
List<String> names = List.of("Java", "Spring", "Database");처음에는 "배열을 만든다"라고 생각할 수 있지만, 더 정확히는 배열이 아니라 List를 만든다.
spring-backend-study의 Stage 03에서는 샘플 StudyLog 목록을 반환할 때 사용했다.
return List.of(
new StudyLog(1L, "Java class practice", StudyCategory.JAVA, 60, "field and constructor"),
new StudyLog(2L, "Java array practice", StudyCategory.JAVA, 40, "array basics")
);List.of(...)는 여러 값을 한 번에 담은List를 만든다.ArrayList를 만들고add()를 여러 번 호출하는 방식보다 샘플 데이터 작성이 간단하다.List.of(...)로 만든 목록은 기본적으로 요소 추가/삭제가 불가능하다.- 샘플 응답처럼 고정된 데이터를 만들 때 쓰기 좋다.