170703-170709


170703-170709

  • 백준 알고리즘 오프라인 강의 (매주 화, 목)

    • 첫 주에는 기본적인 내용 및 문제 접근 방법을 배웠다.
      • 시간복잡도 및 자료구조 설명, 문제 접근 방법
      • 다이내믹 프로그래밍, 수학
      • 그래프 (인접 행렬, 인접 리스트, 간선 리스트, DFS, BFS 등)
    • 과제나 복습에 대한 언급은 있지만 강제로 해야되는건 하나도 없다. 그런데, 한번에 배우는 내용들이 꽤 많아서 제때 복습하고 문제를 풀어보지 않으면 금방 까먹는다.
      • 나같은 경우는 강의를 듣고 돌아와서 강의 슬라이드랑 개인적으로 요약 정리한 것을 한번 더 보고 강의 시간에 언급된 문제들을 찾아서 풀어보았다. 그 다음에 해당 카테고리에 맞는 문제들을 여러개 풀어보면서 배운 내용을 적용시켜보려고 했다.
      • 사실 이렇게만 했는데도 거의 10시간 이상 복습+문제풀이에 매달려 있었다. 이번주에는 짜잘한 문제 포함해서 40~50문제정도 풀어본듯.
    • 비용을 많이 내고 듣는 만큼 걱정도 많았는데 만족도가 굉장히 높다. 앞으로 7주 남았는데 기대된다!
  • 인터넷 강의 듣기

    • 운영체제랑 네트워크 강의는 꾸준히 듣고 있는데 정말 환상적이다. 내 나름대로의 방식을 적용해서 강의에 집중하고 있는데, 필요한 전공 지식들을 쉬운 설명으로 배우고 이해할 수 있어서 좋았다.
    • 이번주에 들은건 다음과 같다. 오프라인 강의에서 배운거 복습하고 문제 푸느라 많이는 못들었다.
      • 운영체제 (kocw 이화여대 반효경 교수님)
      • 컴퓨터 네트워크 (kocw 이화여대 이미정 교수님)
      • iOS10 & Swift3 개발 강좌 (인프런 최강사님)
  • 책 읽기

    • 쌓아놓기만 했던 몇몇 책들을 읽기 시작하기도 했고, 다 읽은 책도 생겼다.
    • 이번주에 다 읽었거나, 읽고 있는 책은 다음과 같다. 추후에 서평도 써야되는데..
      • 프로가 되기 위한 웹기술 입문 (위키북스)
      • 인프라 엔지니어의 교과서 (길벗)
      • 자바의 신 (로드북)
      • CLEAN CODE (인사이트)
  • 트위터 bot 수정

    • 매일마다 자동으로 커밋한 개수를 알려주는 bot을 만들어서 돌리고 있는 중인데, 최근에 문제점을 하나 발견해서 수정했다.

    • Issue #1 github 라이브러리를 이용해서 Push나 Create 이벤트가 몇번 발생했는지 Count하고 있었는데, 한번에 커밋 여러개를 모아서 Push하는 경우 1개로 Count되는 문제가 있었다.

      • getPayload라는 기능이 있어서 각 Push 이벤트에 대한 Payload를 가져오고, 거기에 들어있는 Commit 정보를 확인해서 Count하는 식으로 변경했다.
    • Issue #2 한국은 GMT+9를 사용하고 있는데, 내 코드는 타임존을 적용하지 않아서 Daily Commit Count가 잘못 계산되는 문제점이 있었다.

      • Date값을 가져와서 비교할 때, 타임존을 적용하여 해결.
    • 사실 이슈 1을 수정하면서 굉장히 많은 것을 배울 수 있었는데, static class나 제너릭에 대해서 기본 개념이 부족하다는 것을 깨달았다.

      • Github for Java 라이브러리의 Javadoc에서, getPayload 메서드에 대한 명세는 다음과 같았다.

        <T extends GHEventPayload> T getPayload(Class<T> type)

        그런데 내가 이 명세를 제대로 이해하지 못하여서, 몇시간 동안 관련 내용을 재 학습하고 코드를 뜯어서 이리저리 타고 들어가보다가 정확하게 알게 되어서 해결. ㅠㅠ 지금도 기본서 읽고 있지만 정말 열심히 봐야겠다..