📝 오늘의 강의 요약
핵심 키워드: JVM 메모리 구조, 메서드/힙/스택 영역, 추상 클래스와 인터페이스 실습, 웹 접근성
- Java: JVM의 주요 메모리 영역인 메서드, 힙, 스택의 특징 및 데이터 저장 방식 이해
- Java: 상속 관계에서의 오버라이딩(Vehicle, Animal) 실습 및 추상화 개념 적용
- HTML: 시각적 요소는 숨기되 스크린 리더는 읽을 수 있는 웹 접근성 기법(sr-only) 파악
⚙️ JVM 자바 가상 머신 메모리 구조
| 영역 |
저장 내용 |
생성/소멸 시점 |
특징 |
| 메서드(Method) 영역 |
클래스 정보, 정적(static) 멤버, 메서드 코드 |
프로그램 시작 시 생성 / 종료 시 소멸 |
모든 스레드가 공유하는 영역 |
| 힙(Heap) 영역 |
생성된 객체 및 배열 (실제 데이터) |
new 호출 시 생성 / 참조 해제 시 GC가 수거 |
런타임에 동적으로 할당되는 공간 |
| 스택(Stack) 영역 |
지역 변수, 매개변수, 참조 변수(주소값) |
메서드 호출 시 생성 / 종료 시 소멸 |
LIFO 구조로 각 스레드별 별도 생성 |
🏗️ 상속 및 추상화 실습 정리
1. 상속과 오버라이딩 (Inheritance & Overriding)
- Vehicle > Car: 부모의 기능을 물려받아 자동차 특유의 주행 방식으로 재정의
- Animal > Cat, Dog: 공통 속성은 상속받되, 울음소리 등 개별 동작은 각자 구현
2. 추상 클래스 vs 인터페이스 실습
- 추상 클래스 (abstract): '동물'처럼 실체는 없으나 공통적인 특성을 강제할 때 사용
- 인터페이스 (interface): '날 수 있는', '수영할 수 있는' 등 특정 기능을 계약 형태로 부여할 때 사용
🌐 HTML 웹 접근성 고려사항
📌 .sr-only 클래스 활용
- 목적: 화면에는 보이지 않지만, 스크린 리더(Screen Reader)를 사용하는 사용자를 위해 텍스트 정보 제공
- 주요 사용처: 아이콘만 있는 버튼에 설명을 추가하거나, 생략된 제목을 보충할 때 활용
- 적용 방식: width: 1px; height: 1px; clip: rect(0 0 0 0); 등의 CSS 스타일을 통해 시각적 요소 제거
📅 향후 학습 로드맵
- 목요일: 예외 처리 (Exception Handling) - 프로그램 안정성 확보
- 금요일: 제네릭 (Generics) - 타입 안정성 및 코드 재사용성 극대화
- 다음 주: JSP (Java Server Pages) - 본격적인 웹 프로그래밍 시작