ki-sd 님의 블로그
[2026-03-30] java.lang 패키지 분석과 데이터 영속성(Persistence)의 경험 본문
자바의 근간을 이루는 기본 패키지의 구조를 파악하고, 메모리의 휘발성을 극복하는 파일 입출력(I/O)의 세계에 입문했다.
1. java.lang 패키지와 Object 클래스
- java.lang은 자바 프로그래밍에 가장 필수적인 클래스들을 모아둔 패키지로, import 문을 작성하지 않아도 컴파일러가 자동으로 로드해 준다.
- 최상위 클래스 Object: 자바의 모든 클래스는 암묵적으로 Object 클래스를 상속받는다는 사실을 확인했다. 객체의 상태를 문자열로 반환하는 toString(), 객체의 동등성을 비교하는 equals(), 고유 주소값을 해싱하는 hashCode() 등 시스템의 핵심 메서드들이 Object에 정의되어 있으며, 이를 상황에 맞게 오버라이딩하여 사용하는 규격을 학습했다.
2. 파일 입출력(I/O)을 통한 영구 저장
- 프로그램의 변수나 객체는 RAM에 적재되므로 프로그램이 종료되면 모든 데이터가 증발한다. 이를 해결하기 위해 데이터를 하드 디스크에 기록하는 파일 I/O 스트림의 기초를 다루었다.
- 사원 관리 시스템 실습: 키보드로 입력받은 사원의 정보(사번, 이름, 부서)를 단순히 배열이나 컬렉션에 담아두는 것에 그치지 않고, FileWriter나 BufferedWriter 등을 이용해 .txt 파일 형태로 저장했다. 반대로 프로그램을 재시작할 때 해당 파일을 읽어와 시스템에 로드하는 '데이터 영구 저장 및 복원'의 실제 서비스 흐름을 체감했다.
'JavaStudy' 카테고리의 다른 글
| [2026-04-01] 리플렉션(Reflection)과 메타 프로그래밍의 기초 (0) | 2026.04.17 |
|---|---|
| [2026-03-31] Wrapper 클래스와 시간 API 처리에 대한 고찰 (0) | 2026.04.17 |
| [2026-03-27] try-with-resources와 사용자 정의 예외(Custom Exception) (0) | 2026.04.17 |
| [2026-03-26] 예외 처리 심화와 finally 블록의 자원 반납 (0) | 2026.04.17 |
| [2026-03-25] 인터페이스(Interface)와 예외 처리(Exception) 입문 (0) | 2026.04.17 |
