통신 방식
- 풀 기반 - 점대점 or 요청 응답 통신 형식으로도 불린다.
- 웹사이트에 접속할 때 클라이언트는 서버로 HTTP 요청을 보내 페이지의 데이터를 가져오는 것을 말한다.
- 클라이언트가 어떤 정보를 로딩할지 결정하는 상황에 더욱 유용하다.
- 예를 들어 위키백과를 탐색하면서 관심 있는 페이지를 선택하거나 다음 페이지 선택과 같이 사용자의 선택에 따라 요청한 내용이 응답으로 제공되는 것을 들 수 있다.
- 푸시 기반 - 리액티브 or 이벤트 주도 통신 형식으로도 불린다.
- 작성자(publisher)가 방출한 이벤트 스트림을 여러 구독자가 수신하는 것을 말한다.
- 일대일 통신 뿐만 아니라 일대다 통신도 지원한다.
- 여러 컴포넌트 간에 다양한 이벤트의 의사소통이 발생하는 상황에서 유용한다.
- 예를 들어 주식 시장 거래 프로그램을 설계할 때 다양한 회사의 가격과 턱 정보가 필요할 때마다 요청하는 것이 아니라 연속적으로 정보가 제공되어야 하는 것을 들 수 있다.
포트와 어댑터(육각형 아키텍처) - 다음 글에서 설명
두 객체를 비교하고자 할 때 그 객체에 클래스에서 eqauls()와 hashCode() 메소드를 오버라이딩 해줘야 한다.
기본적으로 객체가 같은지만 확인하려면 equals()만 오버라이딩해주면 되는데 hashCode()는 왜 오버라이딩 해줄까?
eqauls()/hashCode() 계약 때문이다. 두 객체를 equlas()로 같다고 판단했을 때 hashCode() 메서드 역시 같은 값을 반환해야 한다. HashMap, HashSet 등의 컬렉션을 구현할 때 hashCode()를 이용하기 때문이다.
예를 들어, hashCode()는 오버라이딩 하지않고 eqauls()만 오버라이딩한 클래스가 있고 이를 HashMap의 key로 지정했을 때 객체 내부의 값이 같은 것을 get 메소드의 인자로 넘겨줬을 때 원하는 value가 오지 않는다.
'실전 자바 소프트웨어 개발' 카테고리의 다른 글
7장 주요 내용 정리 (0) | 2024.07.01 |
---|---|
Hexagonal Architecture (1) | 2024.07.01 |
5장 주요 내용 정리 (0) | 2024.06.27 |
4장 주요 내용 정리 (0) | 2024.05.28 |
3장 주요 내용 정리 (0) | 2024.05.26 |