Java와 Spring의 철학 — 읽기 자료
new 키워드로 생성. 각자 독립된 메모리.new ClassName(...) 의 (...) 부분.학생들이 자주 헷갈리는 두 단어 — 클래스와 인스턴스. 사실 비유 한 가지로 끝납니다.
클래스는 「아이폰의 설계 도면」, 인스턴스는 그 도면으로 찍어낸 「내 폰·친구 폰」. 설계 도면 한 장으로 폰 수억 개를 만들 수 있고, 각 폰은 독립된 물건이죠.
class User {
String name;
int age;
User(String name, int age) {
this.name = name;
this.age = age;
}
}
User u1 = new User("Alice", 25); // 인스턴스 1
User u2 = new User("Bob", 30); // 인스턴스 2
User u3 = new User("Carol", 28); // 인스턴스 3
각 인스턴스는 자기만의 데이터를 가집니다. u1.name 을 바꿔도 u2.name 에는 아무 영향이 없습니다.
Spring 컨테이너는 우리가 정의한 클래스를 보고, 인스턴스를 「자동으로 한 개 만들어서 보관」하는 역할을 합니다. Bean 이라는 게 결국 「Spring 이 관리하는 인스턴스」입니다. 다음 차시들에서 자세히 다룹니다.
인자 전달 규칙은 안다. 객체가 어떻게 만들어지는지는 모름.
클래스 1 개 ↔ 인스턴스 N 개의 관계를 안다. 각 인스턴스가 독립된 메모리를 가진다.