✎NHN Academy | JAVA

NHN Academy - 2024.09.25(Wed)

박순돌 2024. 9. 25. 11:23

기존에 배웠던 개념들 다시 한 번 복습해보자!

 

웹서버

 

소켓

: IP 주소와 Port 번호로 구성되며, 클라이언트와 서버 간의 데이터 전송을 담당

: 네트워크 상에서 특정 애플리케이션을 식별

: TCP 소켓 - 신뢰성 있는 연결 지향형 통신을 제공

  UDP 소켓 - 비연결형 통신을 제공, 데이터그램을 사용

 

TCP   vs   UDP

 

serversocket.accept(); 연결될 때까지 대기

 

try() { ... } = AutoCloseable() 메소드 속에서 구현하는 것들만 () 안에 작성할 수 있다.

AutoCloseable() 메소드 때문에 client와 접속이 자동으로 끊어지는 경우가 발생할 수 있어, 이 경우는 주의해야 한다!

 

socket 클래스는 close()라는 메소드가 구현되어 있을 것!

 

close()

= 모든 자원을 연결 해제하는 것 X

= 스트림을 닫는 메소드

파일 작성하는 경우 - 반드시 스트림 닫기! 파일에 확실한 끝을 전달하지 않으면 에러가 발생 O

파일 읽어오는 경우 - 네트워크 메세지를 받는 등의 문제가 발생 가능성 O

 

autoFlush 속성 = boolean 값

= 사용시 'true', 사용 안할시 'false' 설정

   - 'ture' 일때 : 버퍼가 가득 차면 client에게 버퍼 내용을 전송하고 버퍼를 비움

   - 'false'일때 : 버퍼가 가득 차면 예외발생 후 작업을 중지시키고 에러페이지 출력

 

echo interface(= server)

= client가 전송해 주는 데이터를 그대로 되돌려 전송해 주는 기능의 서버

= client가 서버로 데이터를 전송  서버는 그 데이터를 받았다가 그대로 다시 되돌려 보냄
= echo client와 서버 모델의 특징 : client가 서버로부터 몇 바이트의 데이터를 수신할 것인지 예상할 가능 O
                                                     WHY? 전송한 데이터 만큼 되돌려 받기 때문

 

LocalDateTime : 실제 사람이 사용하는 시간을 나타내는 API  / 여러 지역의 시간대(Time Zone) 정보는 포함 X

ZonedDateTime : LocalDateTime + 여러 지역의 시간대(Time Zone) 정보는 포함 O

 

Observer Pattern 를 사용하면 좋은 상황?

다수의 특정 이벤트를 받았을 때, 비동기적으로 반응해서 대응

 

GUI 환경과 Logic 환경을 분리시키는 것이 좋다!

WHY? 한 곳에 전부 작성하면 가독성이 떨어진다

 

배열의 공간이 부족하다? 새로운 배열 1개를 만들어서 확장한다!

 

StringBuffer == StringBuilder : 이 둘은 서로 유사하다!

 

Reflection API

= 구체적인 클래스 타입을 알지 못해도 그 클래스의 정보(메서드, 타입, 변수 등등)에 접근할 수 있게 해주는 자바 API

'✎NHN Academy | JAVA' 카테고리의 다른 글

NHN Academy - 2024.09.27(Fri)  (1) 2024.09.30
NHN Academy - 2024.09.26(Thu)  (0) 2024.09.26
NHN Academy - 2024.09.24(Tue)  (0) 2024.09.24
NHN Academy - 2024.09.23(Mon)  (0) 2024.09.23
NHN Academy - 2024.09.13(Fri)  (0) 2024.09.13