반응형
오늘도 힘내자!
오늘의 공부 내용
내 답변은 혼자 계속 다듬어 가면서 고치고 고치고 고치다가 정리된 답변입니다... 처음부터 절때 저렇게 정리하지 않았습니다...!
- 직렬화 과정에서 serialVersionUID의 역할은 무엇인가요?
- 내 답변: serialVersionUID는 클래스의 고유 ID로 직렬화 및 역직렬화 과정에서 사용됩니다. 자바는 클래스의 구조가 변경되었는지 확인하기 위해 직렬화된 객체의 serialVersionUID를 비교합니다. 동일하면 역직렬화 성공하고 다르면 InvalidClassException 예외가 발생됩니다.
- 왜 Serializable을 구현해야 할까요?
- 내 답변: Serializable 은 클래스가 직렬화 가능하다는 것을 나타내는 인터페이스입니다. 자바에서 직렬화는 Serializable을 구현한 클래스만 직렬화할 수 있습니다.
- Serializable 인터페이스를 구현하지 않은 클래스의 인스턴스를 직렬화하려 할 때 발생하는 문제와 해결 방안은 무엇인가요?
- 내 답변: Not SerializableException 예외가 발생합니다. 해당 클래스에 Serializable 인터페이스를 구현해야하며 특정 필드만 직렬화하고 싶다면 transient 키워드를 사용해서 직렬화 대상에서 제외시킬 수 있습니다.
- serialVersionUID를 사용하지 않을 경우 직렬화와 역직렬화 과정에서 발생할 수 있는 문제는 무엇인가요?
- 내 답변: serialVersionUID를 명시 하지 않으면 클래스가 변경될 경우 디폴트 serialVersionUID도 변경되므로, 역직렬화가 실패할 가능성이 높습니다.
- NIO의 주요 특징과 장단점에 대해 설명해주세요.
- 내 답변: NIO는 비동기 나 논블로킹 I/O를 지원하여 성능이 좋습니다. 채널을 통해 송수신되고, 버퍼에 저장됩니다. 장점은 블로킹 방식에 비해 더 적은 스레드로 많은 연결을 처리할 수 있습니다. 단점으로는 기존 I/O보다 코드가 복잡하며, 디버깅이 어렵습니다.
- NIO의 채널과 버퍼를 사용한 데이터 처리 방법은 무엇인가요?
- 내 답변: 채널은 데이터의 입출력 스트림을 처리하는 인터페이스이고, 버퍼는 데이터를 읽고 쓰기 위한 메모리 공간입니다. FileChannel, ByteBuffer, CharBuffer등을 이용해서 데이터를 처리할 수 있습니다.
- 소켓이 무엇인지 설명해 주실 수 있나요?
- 내 답변: 소켓은 서버와 클라이언트가 서로 데이터를 주고받기 위해 연결하는 통로 입니다. IP주소와 포트 번호로 식별됩니다.
- 웹소켓이 무엇이며, 어떻게 동작하나요?
- 내 답변: 웹소켓은 웹에서 양방향 통신을 가능하게 하는 프로토콜로, 클라이언트와 서버가 실시간으로 데이터를 주고 받을 수 있도록 만들어졌습니다. 핸드셰이크 과정으로 클라이언트가 HTTP 요청을 보내고 서버가 요청을 승인하면 서로 데이터를 전송하고 연결을 종료하는 동작으로 이루어져있습니다.
공부한 후 느낀점
미루다가 늦게라도 책상에 앉아서 컴퓨터를 켰다 잘했어! 그래도 이렇게 글로 정리하니까 개념 익히기 쉬워지는거같다!
반응형
'Study > Study Alone' 카테고리의 다른 글
[나혼자공부] 5주차 복습-2 (0) | 2025.01.04 |
---|---|
[나혼자공부] 5주차 복습-1 (2) | 2025.01.03 |
[나혼자공부] 4주차 복습-1 (2) | 2024.12.25 |
[나혼자공부] 3주차 복습-2 (1) | 2024.12.20 |
[나혼자공부] 3주차 복습-1 (0) | 2024.12.19 |
댓글