✅ 한 것
공부 및 독서
[✅] TIL 작성
[A][✅] 도서관 가기 => 눈이 너무 와서 카페로 변경
[A][❌] 백준 문제 1개(1966번) 풀고 블로그에 정리 => 링크
[A][✅] Dispatcher Sevlet 직접 구현해보기(진행 중) => 링크
=> [✅] 블로그 글 내용 보완하기
=> [✅] Tomcat과 Spring MVC 동작 과정 관련 블로그글 작성 => 링크
[A][✅] 자바의신 공부 및 내용 정리(638p ~ 660p)
[A][✅] 성공과 실패를 결정하는 1%의 네트워크 챕터 독서 및 내용 정리(315p ~ 326p)
[A][✅] Spring Security JWT 관련 내용 블로그에 정리(매일매일 꾸준히 작성 중) => 링크
[B][❌] 타이탄의 도구들 책 2시간 독서
[B][❌] 타이탄의 도구들 책 읽고 글 작성
[B][❌] 자바 constant pool과 string pool에 대해 찾고 블로그 글 작성
[C][✅] 1일 1커밋 & 푸쉬
운동
[A][✅] 헬스장 가기
[A][✅] 헬스장에 가서 가슴운동
[A][✅] 헬스장에서 천 고개 계단 500m
[C][❌] 만보 걷기
기타
[A][✅] 아침 긍정 확언
[A][✅] 아침 5분 일기 작성
[A][✅] 저녁 5분 일기 작성
[B][✅] 명상 10분
[B][✅] 발성연습
❓ 오늘의 질문, 배운 것
[자바] Hashtable 클래스가 쓰레드에 안전하게 개발되었다는 말이 무슨 의미인지
- Hashtable의 모든 Data 변경 메소드는 Syncronized로 선언되어있습니다.
즉 메소드 호출 전 쓰레드간 동기화 락을 통해 멀티 쓰레드 환경에서 Data의 무결성을 보장해줍니다. - 반대로 HashMap은 그런 선언이 없기 때문에 멀티 쓰레드에서 여러 쓰레드가 동시에 객체의 Data를 조작하는 경우
Data가 깨져버리고 심각한 오류가 발생할 수 있습니다. - 다만 이 동기화 락이 매우 느린 동작이기 때문에 Hashtable 보다 HashMap이 훨씬 빠릅니다.
Map 객체가 단일 쓰레드에서만 쓰일때는 HashMap을 사용해야 합니다. - 프로그래밍상의 편의성 때문에 멀티쓰레드 환경에서도 Hashtable을 쓰기 보다는 HashMap을 다시 감싸서
Map m = Collections.synchronizedMap(new HashMap(...));
과 같은 형태가 최근에는 더 선호된다고 합니다.
📣 피드백
- 오전에는 낭비한 시간이 꽤 되었지만 오후에는 카페에가서 시간을 효율적으로 사용했다.
- 알바 시간 외에 시간을 더 효율적으로 사용하자.
=> 05:00 일어나서 헬스장 출석 후 운동
=> 알바 시간 외에는 최대한 밖에서 집중도있게 공부
⏱오늘 공부 시간 인증
- 타이머 앱을 사용해서 시간을 측정해서 해당부분 캡처 인증
반응형