[Daily Post]는 매일매일 탐구한 내용을 간략하게 기록하는 포스트입니다.
따라서 정리되지 않은 내용과 추측을 포함하고 있을 수 있습니다.
더 체계적인 형식을 갖춘 글은 해당 카테고리의 포스트를 확인해주세요 :)

My Study

CS

Array & Linked List

  • Array: 연속적, 순차적, 미리 할당된 크기만큼 배정
    • Dynamic Array: resize (더블링 등)
      • 데이터를 append 할 때는 O(1)만큼 걸린다
      • resize하면서 데이터 옮기는 것은 O(N)이지만, 결론적으로는 amortized(1)이다. resize 횟수 자체가 element 갯수에 비해 적기 때문.
  • Linked List
    • Node로 이루어져있는데, Node는 데이터 값과 다음 Node의 addres를 저장하고 있다.
    • 물리적으로는 비연속적이지만, node가 next node를 가리키고 있다는 점에서 논리적인 연속성을 가지고 있다.
    • 데이터가 추가되는 시점에서 메모리를 추가적으로 할당하기 때문에 메모리를 효율적으로 사용할 수 있다
    • array에서는 삽입/삭제를 하는 경우 데이터를 연속적으로 나열해야 하기 때문에 O(n)이 걸리지만, LL에서는 next node address만 바꿔주면 되니까 O(1)안에 삽입, 삭제가 가능하다
    • array에서는 index를 통해 조회를 O(1)만에 할 수 있지만, LL에서는 O(n)이 걸린다. array는 random acess, LL은 sequential access를 하기 때문이다.
    • Q1. LL이 유리한 경우 vs Array가 유리한 경우
    • Q2. Array, LL의 memory allocation이 일어나는 시점과 할당받는 메모리 영역
      • array: compile, stack
      • LL: runtime, heap

Queue & Stack

Queue

  • FIFO, enqueue, dequeue
  • Cache, BFS
  • BASE: array vs list

Stack

  • LIFO, push, pop
  • DFS

Implementing Queue & Stack

  • Queue vs. Priority Queue

Web - Portfolio

노마드코더 <바닐라 JS로="" 크롬="" 앱="" 만들기="">

Document & Browser

  • document는 브라우저에 항상 존재하는 object이다
  • getElements 할 때, id는 잘 사용하지 않고 className을 주로 사용한다
    • <h1 class="className"></h1> 와 같은 형태로 지정하면, document.getElementByClassName("className");으로 찾아낸다
  • querySelector can find element using CSsz style

Web- Blockchain

  • Crowdin: ChainIDE, Remix 관련 Web3 리딩 페이지 번역
  • CZ: ERC721 & Collectibles 공부하고 포스팅