map 2

java의 HashMap과 해시 충돌(collision) 관련

java의 HashMap과 해시 충돌(collision) 관련 이거랑 이거를 먼저 읽고오는것도 괜찮다. HashMap의 collision 위에 글을 읽으면 알겠지만, hashMap은 key를 해싱시켜 저장한다. 즉 어떤 key가 들어왔을 때에 이를 변환시키게 되고, 당연한 일이지만 이 때에 같은 변환값을 갖는 해시 충돌은 반드시 일어날 수밖에 없다. 그러므로 이를 해결하기 위해 어떤 방식을 도입했는지에 대해 알아본다. -> 해결이란, 충돌을 아예 없애는 것이 아니라 최대한 줄이는 방법이다. 개방 주소법(open addressing) 간단하게 말하면 겹치면 다른곳에 저장하는 것이다. 만약 충돌이 발생하면 다른 주소에 값을 저장하는 식이다. 그리고 이 주소를 찾아가는 알고리즘도 여러 개가 있다. 선형 탐사법..

이론 정리/java 2023.08.23

Mapstruct사용 이유 및 장단점. 사용 방법에 대한 사용 예제

Mapstruct 클래스 간 변환을 위해 사용하는 라이브러리 Mapstruct를 사용하면 Entity - DTO 간 매핑을 쉽게 해줄 수 있다. Mapstruct의 장점 -> ModelMapper와 비교하여 ModelMapper와 달리 Reflection API를 사용하지 않는다. 컴파일시 미리 구현체를 만들고, 이를 사용해 Mapping한다. = 처리속도가 훨씬 빠르다. Mapstruct는 10^(-5)m/s, ModelMapper는 2*10^(-3)m/s 컴파일 시 오류를 바로 확인 가능하고 디버깅이 원할하다. 사용하기 Entity정의 먼저 Entity는 내가 올릴 게시글에 관한 내용이다. 글의 ID 글의 제목 글의 내용 작성자 정보@Entity @Data public class Board { @Id..