171018-TIL

Reading time ~1 minute

오늘 한일

  • 오늘자 데일리 미팅 내용 중 체크 사항

    • 월,수,금에 알고리즘 문제 같이 풀기(문제 찾는건 트램이 고생해주기 했다)

    • 단, 지각자가 있으면 지각자가 알고리즘 문제 하나 찾기.

  • 오늘자 볼링 진행 사항
    • 구현은 완료

    • 파악된 버그(첫번째 Frame에 스트라이크, 스페어가 입력되면 초기 출력에 잘못된 값 출력)

    • Frame 클래스에 집중적인 리팩토링 작업이 남았다(특히나 스트라이크, 스페어 점수 구현부)

    • 풀리를 보내봤다.

  • 알고리즘 강의의 레드블랙트리 트리에 대해 공부했다.(포스팅)

  • 소수 구하기 알고리즘 및 codility의 레벨1 문제를 풀었다.

  • stream에 대해서 좀더 보고 싶었는데 기본적인 형태만 간략히 보고 제대로 보질 못했다.

  • 이클립스에서 작업 후 습관적으로 gui환경에서 git commit을 하는 경우가 있었다. 조심하자!

오늘 느낀점

  • Frame 클래스가 그렇게 복잡하지 않았는데 스트라이크/스페어 점수 계산 처리가 들어가면서 지나치게 복잡해 졌다. 오늘은 풀리를 보내자는 목표를 위해 구현만 되는 코드를 만들어 나가다 보니 새로운 기능이 들어가면 버그가 발생하고, 해당 버그를 해결하면 다른 곳에서 발생…하는 불상사가 일어나서 버그 수정만 3시간 넘게 하고서는 겨우 풀리를 보냈다.

  • 지금 TIL을 작성하면서 생각해보니 구현만 하기 위해 문제가 생기면 임시방편으로 막아가면서 진행 했던게 기술부채가 아니였나 싶다. 그덕에 부채가 조금 쌓였을때는 큰 문제가 안됐지만 뒤로 갈수록 감당이 안됐던거 같다. 이런 작은 규모의 프로젝트에서도 이런데 큰 프로젝트에서는 더 큰 문제가 될거 같다. 규모에 상관없이 기술부채를 쌓지 않도록 조심해야겠다. (이번 사항이 기술부채에 해당하는게 맞는건지 확실치는 않지만…)

  • 소수 구하기 알고리즘을 풀면서 이중 for문이 나왔는데 알고리즘 강의를 공부하면서 반복문은 recursion(순환, 재귀)으로 변경이 가능하다 했던 말이 기억나 그렇게 변경을 해봤다. 습관적으로 반복문을 이용하는 경우가 많은데 알고리즘 문제를 풀때는 가능하면 recursion으로 풀도록 버릇을 들여봐야겠다.

  • 새벽에 레드블랙트리 강의를 봤는데 이전에도 자료구조를 공부할때 봤을때도 AVL트리와 레드블랙 트리는 균형을 맞추기 위해 막 스스로 움직이는게 신기하고 뭔가 정교한 기계 혹은 살아있는 유기체 같은 느낌이라 예쁜거(?)같다.(해당 트리를 제대로 이해 했냐 묻는다면 당연히 아니다. 바라보는 것만 좋다)

  • 알고리즘 강의는 우선순위가 높은 편이 아니니 매일 하진 말고 여유 있을때마다 해야겠다.(단, 다른 분들의 진도가 내 진도와 같아지면 그땐 다른 사람들과 진도를 맞춰봐야겠다)

내일 할일

  • 콘솔 볼링 게임 리팩토링

  • 지각 벌칙으로 금요일 알고리즘 문제 찾기