기존에 배웠던 개념들 다시 한 번 복습해보자!
웹서버
소켓
: 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 |