⏳ Time Log/1. One Day (Daily · TIL)

Day 14 (11/6) - Java 패키지 및 모듈

this.Serena 2026. 2. 19. 00:01

📝 오늘의 강의 요약

핵심 키워드: 예외 처리(Exception), 제네릭(Generics), 컬렉션 프레임워크(Collections Framework)

  • Java: 프로그램 안정성을 위한 예외 처리 기법과 코드 재사용성을 높이는 제네릭 학습
  • Java: 데이터를 효율적으로 관리하기 위한 컬렉션 프레임워크(List, Set, Map) 구조 파악
  • HTML: 학습한 내용을 바탕으로 실제 홈페이지 구조 구현 실습 진행

⚠️ 예외 처리 (Exception Handling)

1. 프로그램 오류의 종류

  • 컴파일 에러: 소스 코드 작성 시 문법 오류로 인해 컴파일이 되지 않는 상태
  • 런타임 에러: 실행 중 발생하는 오류로, 자바에서는 이를 '에러'와 '예외'로 구분
  • 논리적 에러: 실행은 정상이나 결과가 의도와 다르게 나오는 경우

2. 예외 클래스 계층 구조

  • Checked Exception: 컴파일 시점에 체크하며 반드시 예외 처리가 필요 (예: IOException, FileNotFoundException)
  • Unchecked Exception (RuntimeException): 개발자의 실수로 발생하는 예외로 컴파일 시 강제하지 않음 (예: NullPointerException, ArithmeticException)

3. 예외 처리 방법

  • try-catch-finally: 발생한 예외를 직접 처리하는 방식
    • finally 블록은 예외 발생 여부와 관계없이 항상 실행되어 자원 해제 등에 사용
  • throws: 메서드 선언부에 사용하여 예외 처리를 호출한 상위 메서드로 위임

📦 제네릭 (Generics)

1. 제네릭의 정의 및 목적

  • 클래스나 메서드에서 사용할 데이터 타입을 외부에서 지정하는 기법
  • 타입 안정성: 컴파일 시점에 잘못된 타입 사용을 방지하여 런타임 에러 예방
  • 형 변환 생략: 꺼낼 때 별도의 캐스팅((String)) 작업이 필요 없어 코드가 간결해짐

2. 주요 타입 매개변수 관례

  • <T> : Type / <E> : Element / <K> : Key / <V> : Value

📚 컬렉션 프레임워크 (Collections Framework)

1. 주요 인터페이스 특징

인터페이스 특징 대표 구현 클래스
List 순서 유지, 중복 허용 ArrayList, LinkedList
Set 순서 미유지, 중복 불허 HashSet, TreeSet
Map Key-Value 쌍, Key 중복 불허 HashMap, TreeMap

2. List 계열 비교

  • ArrayList: 내부적으로 배열 사용, 인덱스 검색이 빠르나 데이터 삽입/삭제 시 속도 저하
  • LinkedList: 노드로 연결된 구조, 삽입/삭제가 빈번한 경우 유리

3. Set & Map 계열 비교

  • HashSet / HashMap: 해싱 기법을 사용하여 정렬되지 않으나 검색 속도가 매우 빠름
  • TreeSet / TreeMap: 이진 탐색 트리 기반으로 키 값을 기준으로 자동 정렬 수행

🌐 HTML 홈페이지 구현

  • 시각적 요소와 구조의 분리: HTML로 뼈대를 잡고 CSS로 디자인 적용
  • 웹 접근성(Accessibility): .sr-only 등 스크린 리더 사용자를 위한 숨김 텍스트 기법 적용

🛠️ 실습 메모 및 팁

  • printStackTrace(): 예외 발생 당시의 호출 스택 정보를 상세히 출력하여 디버깅에 활용
  • getMessage(): 발생한 예외의 원인을 간략한 메시지로 확인
  • Collections 활용: 데이터의 특성(중복 여부, 정렬 필요성)에 따라 적절한 자료구조 선택이 성능의 핵심