20181116

  • 폰노이만 아키텍처.
    • CPU, RAM 존재.
    • 현대 컴퓨터 구조.
  • ADT
    • Abstract Data Type.
    • 자료구조 구현에 필요한 operator 들을 정의.
      • 구현체는 정의 X.
    • 성능을 알 수 없다.

    • 예를 들어, ADT Array
      • get(i), set(i), size() …
      • 미니멀하게 이정도가 필요할 것이다.
  • 알고리즘
    • 문제를 해결하는 방법.
    • 문제를 해결하기 위한 명령어의 시퀀스 집합(순서가 있다.)
  • 복잡도 분석
    • 비교 연산자, 산술 연산자, 대입 연산자가 1번의 operation에 동작한다는 가정하에 복잡도를 계산.
  • 나만의 강점을 만들자.
    • 가비지 콜렉터나, JVM에 대하여 깊게 공부 해보기.
      • byte code 리딩.
    • 작은 서비스라도 런칭해보자.
    • 제너릭 만들어 보기.
    • JDK 보기.
      • arrayList 의 remove 함수를 확인해보았다.
      • 메모리 카피를 통해 옮기고, 사이즈를 줄이지 않는다.
  • 정적 배열을 활용하여 동적 배열 만들어보기.
    • 주어진 ADT에 맞춰 구현한다.
    • TDD 방식으로 구현해보자.
    • Array(Size), set(i, v), get(i), size()