2024/01 4

[Java] HashMap, HashTable, ConcurrentHashMap 자료구조에 대해서 알아보자

오늘은 Map Interface의 구현체의 일종인 HashMap, HashTable, ConcurrentHashMap 자료구조에 대해 알아보려고 합니다. 싱글 스레드 환경에서만 사용하는 HashMap에 대해 먼저 알아보겠습니다. 1. HashMap key, value에 null값 허용 동기화를 보장하지 않기에 싱글 스레드 환경에서만 사용 HashTable, ConcurrentHashMap보다 데이터 검색 속도를 빠르지만, 신뢰성과 안정성이 저하됩니다. 이제 해시맵에 데이터를 쓰는 과정에 대해 알아보겠습니다. 먼저, 배열 tab이 비어있거나 길이가 0이면 resize() 메서드를 통해 배열의 크기를 조정 배열의 특정 index에 node가 없으면, 새로운 node 생성하여를 해당 index에 할당 해당 i..

Java/Java Concept 2024.01.22

[Intellij] 인텔리제이 JVM Heap Memory Size 설정

회사에서 인텔리제이를 사용하면서 너무 렉이 많이 걸리고, 버벅임이 심했습니다. IDE 사용 도중, 이러한 문구를 하나 발견했습니다. 대강 읽어보니, 메모리가 낮아 성능에 지증을 주기에 heap size를 늘리는걸 고려해보라는 내용이였습니다. 그래서 다음과 같이 Intellij VM Options에서 Heap Size를 변경해주었습니다. [Help] - [Edit Custom VM Options] 별다른 설정을 하지 않았다면, idea64.exe.vmoptions 파일은 기본값으로 저장되어 있습니다. -Xmx2048m 저는 다음과 같이 수정해주었습니다. (min heap size: 1024m, max heap size: 4096m) -Xms1024m -Xmx4096m -XX:ReservedCodeCache..

기타 2024.01.17

[Perfume] Byredo 바이레도 블랑쉬 향수 리뷰

올해 향수 리뷰가 마지막이 될 거 같은데, 마지막으로 리뷰할 향수는 바로 바이레도 블랑쉬입니다! 얼마 전, 바이레도 도산점을 방문해서 기존에 맡고 싶었던 발다프리크 향을 맡아보고 기대치에 미치지 못한 것 같아 블랑쉬를 구매하게 되었습니다. (원래 블랑쉬는 100% 구매할 예정인 상태였습니다) 저는 원래 향수를 구매할 때 50ml를 사서, 주기적으로 교체해 주는 것을 좋아합니다. 하지만 블랑쉬는 향이 너무 좋아 과감하게 100ml를 구매했습니다. 회사 복지몰에서 포인트로 구매했는데 제조일자가 2022년 4월이라 굉장히 속상했습니다. 통상적으로 향수의 유통기한은 개봉 후 36개월이라 하는데, 저는 개봉 후에 첫 향을 맡았을 때 뭔가 새 향수를 맡는 느낌을 받진 못했습니다 ㅠㅠ.. 그래도 의심하지 말고 좋은 ..

일상/리뷰 2024.01.07

[Network] TCP 3 way handshake & 4 way handshake

네트워크 전송 계층에서 사용되는 TCP의 연결 설정 및 연결 해제 과정에 대해 알아보려고 합니다. TCP는 장치들 사이에서 논리적인 성립(establish)을 하기 위해 연결을 설정하여 신뢰성을 보장하는 연결형 서비스를 제공합니다. 이러한 신뢰성 있는 서비스를 제공하기 위해 3 way handshake, 4 way handshake 과정을 거치게 되는데, 이 과정들에 대해 상세하게 설명드리겠습니다. 3-way handshake TCP 통신을 이용하여 데이터를 전송하기 위해 네트워크 연결을 설정하는 과정 양쪽 모두 데이터를 전송할 준비가 되었다는 것을 보장하고, 실제로 데이터 전달을 시작하기 전에 한쪽이 "다른 쪽이 준비가 되었다는 것"을 알 수 있도록 합니다. 즉, TCP/IP 프로토콜을 이용해서 통신을..

Network 2024.01.05