ki-sd 님의 블로그
[2026-04-09] 내부 클래스, 멀티 쓰레드(Multi-Thread), 그리고 네트워크 기초 본문
클래스의 구조적 유연성을 높이는 내부 클래스를 정리하고, 하나의 프로그램에서 여러 작업을 동시에 수행하는 멀티 쓰레딩의 세계에 진입했다.
1. 내부 클래스(Inner Class)의 활용
- 클래스 내부에 선언되는 멤버 클래스, static 클래스, 지역 클래스, 익명 클래스의 선언 위치와 생명주기 차이를 분석했다. 외부에는 불필요한 클래스를 숨기고(캡슐화), 내부 클래스는 외부 클래스의 멤버에 자유롭게 접근할 수 있는 구조적 이점을 확인했다.
2. 멀티 쓰레드(Multi-Thread) 구현 아키텍처
- Thread 클래스를 직접 상속받는 방식과, Runnable 인터페이스를 구현하여 Thread 객체에 주입하는 방식을 비교했다. 자바는 다중 상속이 불가능하므로, 유연한 확장을 위해 주로 Runnable 구현 방식을 채택해야 함을 이해했다.
- 무분별한 쓰레드 생성은 메모리 부족(OOM)과 컨텍스트 스위칭(Context Switching) 비용을 폭증시키므로, 미리 정해진 개수의 쓰레드만 생성하여 재사용하는 쓰레드 풀(Thread Pool)의 필요성과 동작 원리를 학습했다.
3. 네트워크 프로그래밍 기초
- URL(Uniform Resource Locator)과 URI의 구조를 파악하고, 클라이언트와 서버 간의 데이터 요청 규격을 이해했다.
- 웹 통신 시 한글이나 특수문자가 포함된 파라미터가 전송될 때 발생하는 데이터 손실을 막기 위해, URLEncoder를 사용해 문자열을 안전한 포맷(UTF-8)으로 인코딩하는 필수 데이터 전처리 과정을 실습했다.
'JavaStudy' 카테고리의 다른 글
| [2026-04-10] Socket 통신과 멀티 쓰레드를 활용한 실시간 다중 채팅 서버 (0) | 2026.04.17 |
|---|---|
| [2026-04-08] 스트림(Stream) 심화와 객체 직렬화(Serialization)를 이용한 회원 CRUD (0) | 2026.04.17 |
| [2026-04-07] 자바 I/O의 시작 - File 클래스와 시스템 제어 (0) | 2026.04.17 |
| [2026-04-06] 람다식(Lambda)과 스트림(Stream) API를 통한 함수형 프로그래밍 (0) | 2026.04.17 |
| [2026-04-03] Set과 Map의 논리적 구조와 중복 제어 (0) | 2026.04.17 |
