본문 바로가기
국비학원

[국비지원] KH 정보교육원 18일차

by 도전하는 개발자 2022. 4. 18.

Day 018

 오늘은 어제에 이어서 네트워킹을 본격적으로 학습하기 시작했다. 네트워킹 부분을 나가면서 필요하지만 아직 학습하지 않은 자바의 개념들을 그때 그때 학습하는 식으로 진행되었는데, 아무래도 여기저기 왔다갔다 하다보니 정신이 없었다. 예외처리 try문과 Wrapper Type 같은 부분은 추가적으로 자습이 필요할 것 같다. 

 

 

ServerSocket serverSocket = new ServerSocket();
ServerSocket 객체는 자원객체
목적에 맞게 다 썼으면 닫아서 해제해야한다
serverSocket.close();

 

 

자원객체 썼으면 닫자

 

10장 예외처리
예외처리 try문 (try-with-resource)
try-with-resources block을 이용하면, 예외발생여부와 상관없이
안전하게 자원객체들을 close 할 수 있다!!

try(자원객체){
-> 이 블록 안에는 매개변수로 들어가는 자원객체를 사용한 모든 코드를 넣는다
}

더더 간단한 방법 
메인블록 맨 앞에 (객체생성하는것보다 앞에)
@Cleanup 롬복 적용하면 된다

 

기본타입과 Wrapper Type
Wrapper Type

 

 

18장 처음부터
java.io 패키지
자바의 기본적인 데이터 입출력(IO: Input/Output) API 제공

입력스트림 출력스트림

출발지 --입력스트림--> 프로그램  --출력스트림--> 도착지
키보드                                                       모니터
파일                                                           파일
프로그램                                                    프로그램


프로그램 ----- 출력스트림 ------ 입력스트림 -----> 프로그램
           <---- 입력스트림 ------ 출력스트림 ------

바이트 기반 스트림
그림, 멀티미디어, 문자 등 모든 종류의 데이터를 받고 보내는 것 가능
                최상위클래스   하위클래스
입력스트림 : InputStream // xxxInputStream (ex) FileInputStream)
출력스트림 : OutStream   // xxxOutStream (ex) FileOutStream)

문자 기반 스트림
문자만 받고 보낼 수 있도록 특화
               최상위클래스 하위클래스
입력스트림 : Reader     //  xxxReader (ex)FileReader)
출력스트림 : Writer      //  xxxWriter (ex)FileWriter)

InputStream
바이트 기반 입력 스트림의 최상위 클래스로 추상 클래스
InputStream 클래스의 주요 메소드 
read()
read(byte[] b)
read(byte[] b, int off int len)
close()

다국어 문자 하나 --> 바이트로 변환하는 과정을 "인코딩"이라고 한다.
바이트를 --> 다국어 문자로 역변환하는 과정을 "디코딩"이라고 한다.

 

Inputstream - Read
Inputstream - Read2
Inputstream - Read3

 

Outputstream - Write
Outputstream - Write2