• 알고리즘과 자료구조 공부. 주요 키워드.
    • 시간복잡도 : big O, big 세타, big 오메가 / 공리와 정리 / Random Access Machine
    • 재귀 (recursion) : base case(탈출조건), recursive case / 분할 정복, 다이나믹 프로그래밍 / 정수의 합, 배열의 합, 팩토리얼..
    • 점화식 (recurrence) : 피보나치, 피보나치킨ㅎ, + 메모제이션으로 성능업! / 유클리드 호제법 (최대공약수) / 하노이의 탑 (어려워서 아직도 코드가 이해가 안 됨…)
  • 자동완성UI 컴포넌트에 한해서만 MVC 패턴을 적용하기로 결정했다. (빨리 끝내고 싶은데!)
    • 이유1 : 최근검색목록을 추가하니 기존결과목록과 중복되는 data, method가 많았다.
      • => 목록부분을 별도객체로 분리하자
      • => 목록Class를 만들어 2가지 instance를 생성해서 쓰되, 약간의 차이가 있는 메서드들에 한해서는 옵션이나 별도 처리 (hook method?!)를 통해서 해결해야 할 것 같다.
    • 이유2 : 인풋데이터가 -> 목록에게, 목록데이터가 -> 인풋에게 관여하는 케이스가 많음
      • => 인풋, 목록들이 공유하는 data를 모델로 분리시키고
      • => 서로의 UI들에 대한 관계는 controller가 맺어주는게 필요하므로 MVC 패턴이 적합하다.