이번 주 목표
📢 이번주 목표는 백준 골드2까지 승급하는 것이다. 현재 골드4이다.
마이크로서비스 구축 가이드 책 완독하기(152/697)
오늘 스케줄
09:00~09:20 팀 모닝 스크럼09:20~12:00 마이크로서비스 구축 가이드 책 읽기
12:00~13:00 점심 식사
13:00~17:00 데일리 과제 문제 풀이
17:00~17:40 팀 코드 선정 회의
18:20~18:40 기술 매니저님과 팀 코드 리뷰
18:40~19:40 저녁 식사
19:40~20:20 산책
20:30~00:10 백준 문제 풀이
00:10~00:25 TIL 작성
오늘 목표
👉 데일리 과제 모두 풀기
👉 TIL 빠지지 않고 작성하기
👉 백준 골드4 달성하기
👉 북 스터디 참여
👉 인프런 마이크로서비스 강의 수강하기
오늘 한 것
데일리 과제 모두 풀기TIL 빠지지 않고 작성하기백준 골드4 달성하기북 스터디 참여
오늘 못한 것
- 인프런 마이크로서비스 강의 수강하기 -> 이건 TIL 쓰고 듣고 잘 예정
알게된 것
⭐ ArrayDeque vs LinkedList
오늘 다른 팀원분의 코드가 실행 속도는 비슷했는데 메모리 관점에서 상당히 세이브하신 것이 인상적이여서
원인을 보니 차이점은 Queue 생성 시 ArrayDeque로 생성하신 것이였다.일반적으로는 LinkedList를 사용한다.
블로그 글을 보니 내가 궁금해 하던 점이 해결이 되었다.
ArrayDeque는 Queue의 서브인터페이스인 Deque의 구현체이고,
LinkedList는 List와 Queue의 구현체이다. 따라서 LinkedList는 List의 특징을 가지고 있고, ArrayDeque은 배열의 특성을 가지고 있다고 할 수 있다. 이것을 기억하고 아래의 차이점들을 살펴보자.
연산 성능
ArrayDeque을 배열의 측면에서 바라봤을 때, deque의 양끝에서 삽입/삭제 연산이 일어날 경우 시간 복잡도가 O(1)이므로 삽입/삭제 성능이 우수하다. 또한 Random access가 가능하기에 원소 조회 시에도 속도가 빠르다. LinkedList도 삽입/삭제 연산 성능이 좋지만, 특정 원소에 접근 시의 성능은 ArrayDeque에 비해 떨어진다. 또한 ArrayDeque는 LinkedList에 비해 cache-locality에 더 친숙하여 연산 속도가 더 빠르다.
메모리
ArrayDeque은 LinkedList와 달리 다음 노드에 대한 참조를 유지할 필요가 없기 때문에 더 적은 메모리를 사용한다. 이런 차이점 때문에 큐 구현 시 ArrayDeque가 LinkedList보다 속도와 메모리 측면에서 더 효율적이라고 할 수 있으며, 이는 자바 공식문서에도 언급되어있다.
🤔오늘의 반성
- 오늘은 낮에 조금 집중하지 못한 것이 아쉬웠다.
👍 오늘의 칭찬
1. 지각하지 않았다.
2. 깃헙 1일 1커밋 달성
3. TIL을 빠지지 않고 작성했다.
4. 오늘의 데일리 과제 모두 풀었다.
5. 백준 골드4 달성(처음: 브론즈1)
❗ 항해99 취업 리부트 코스를 수강하고 작성한 콘텐츠 입니다.
https://hanghae99.spartacodingclub.kr/reboot
'TIL' 카테고리의 다른 글
[항해99 취업 리부트 코스 학습일지] 22일차 (0) | 2024.04.11 |
---|---|
[항해99 취업 리부트 코스 학습일지] 21일차 (0) | 2024.04.10 |
[항해99 취업 리부트 코스 학습일지] 18일차 (1) | 2024.04.07 |
[항해99 취업 리부트 코스 학습일지] 17일차 (2) | 2024.04.06 |
[항해99 취업 리부트 코스 학습일지] 16일차 (0) | 2024.04.05 |