06월 8일자 멘토님 질문 및 그에 대한 정리

Assist·2023년 6월 8일
0

나의 성장일기

목록 보기
6/9

안녕하세요!!
이전에 Android 의존성 주입에 관련하여 제 Naver 검색 API에 적용해본다고 했는데..
그게 에러가 팡팡 터져서 저도 파악중입니다...
다음엔 꼭 쓰겠습니다.

그럼 오늘은 F-LAB의 장점이자 가장 큰 결제 이유인 멘토님과의 대화를 통해 한번 정리를 해보겠습니다.

Hash Load Factor 은 무엇인가?

Hash Load Factor 란 hash Table에서 사용되는 것입니다.
Hash 라는게 데이터 와 키 값으로 이루어진 JAVA COLLECTION 입니다.
Tree , linkedList 와 확연한 속도 차이가 있습니다 .

그 이유가 hash Load Factor 라는 이유인데요

결론적으로 Hash 가 속도가 빠르지만 많은 데이터를 지속적으로 집어 넣는 상황에서는 Hash가 지속적으로 크게 빠르다는것을 유지한다는 보장은 없습니다.

그때 사용되는게 hash Load Factor 입니다.

Hash Load Factor 은 해시 테이블이 키 - 벨류 값으로 버킷을 만들떄 버킷의 개수 와 버킷의 수 비율을 나눈 값입니다.
일반적으로 0.7을 유지하는게 hash 가 가장 좋은 성능을 나타냅니다.

즉 지속적으로 hash 의 Hash Load Factor 값이 0.7이 많이 넘어갈경우는 지속적으로 size을 조정하여 hash 의 작업 성능을 높여 주는게 가장 중요한 이유임으로 Hash Load Factor을 저에게 공부를 권유하였고 글을 썼습니다 .

Thread 와 Coroutine 의 차이점

Thread 와 코루틴의 차이점 은 여러가지가 있습니다.

  • 메모리 및 오버헤드: 스레드는 os에서 관리되는 자원임으로 스택드의 추가자원이 지속적으로 필요하지만
    코루틴은 어플리케이션 레벨에서 관리되는 개념으로 스레드 보다 작은 스택만 필요 합니다.
  • 동기화 및 상태 공유의 차이점 : 스레드는 동시에 실행됨으로 스레드 간에 동기화 와 상태 공유에 주의를 해야합니다. 만일 관리를 안했을시 스레드간의 데이터가 다름으로 프로그램의 버그를 유발할수 있습니다.
    코루틴은 단인 스레드에서 실행됨으로서 동기화 및 상태 공유에 문제가 적습니다.

transient 가 뭔지 와 왜 쓰는지

일반적으로 앱에 데이터를 보낼때 serializable 을 씁니다.

그때 데이터를 byte을 직렬화 해서 데이터를 보냅니다 .

그렇지만 항상 직렬화를 안하고 역 직열화를 사용할떄 transient을 사용합니다.

많은 질문이 있지만 1시간 동안 공부한 양이 이정도여서 여기까지 밖에 못써서 아쉽네요.
그럼 내일 좀더 공부해서 더 많은 질문을 정리해보겠습니다.

읽어주셔서 감사합니다

-피드백와 비판은 언제나 환영입니다-

profile
안드로이드만 좋아하는 특이한 개발자

0개의 댓글