171017-TIL

Reading time ~1 minute

오늘 한일

  • 오늘자 오전 미팅 내용 중 체크 사항

    • 리펙토링 가장 중요하다. 처음부터 완벽하게 짤려고 하지 말고 리펙토링으로 해결 하면 된다.

    • 실무에서는 기능 하나하나 마다 브랜치를 새로만든다.

  • 오늘자 볼링 진행 사항
    • 각 플레이어가 10프렘임까지 진행 하게 구현 완료

    • 스트라이크/스페어 고려 없는 누적 점수 구현 완료

    • 남은 내용: 스트라이크/스페어를 고려한 점수 계산, LastFrame 클래스 구현

  • 넥슨 코딩테스트 문제를 풀어봤다.

오늘 느낀점

  • 오랜 고민을 하고 짜는 이유가 잘 짜고 싶어서 욕심을 내는 건데, 처음부터 완벽하게 짜고 싶은 욕심을 내지 말고 리펙토링을 통해 잘 짜여진 코드로 개선 해 나가는 방식의 습관을 들이자.
    (구조 자체를 못짜서 시작을 못하는게 아니라 보통, 이게 낫지 않을까? 저게 더 효율적 인거 같은데 식의 무한 루프에 빠지는 편이였다.)

  • 넥슨 코딩테스트 문제를 풀어봤는데 세문제 중 한 문제 빼고는 풀만했던거 같다. 지원도 안하고 봤던 이유는 볼링 점수 구현에서 막혀서 휴식 차원에서 풀었는데, 테스트 이후 다시 볼링 점수 구현을 하니 막혔던 부분이 후딱 처리 됐다. 다음에도 막히는 일이 있으면 다른 것 좀 하다 와야겠다.

  • 볼링 구현하면서 다시 느꼈지만 메소드에 여러 기능을 넣지 않고 잘 쪼개놓으면 변경이 필요한 일부분만 바꿔도 문제 없이 잘 돌아간다. 그럴때마다 잘 하고 있는거 같아 즐겁다.

  • 개인적으로 테스트 코드가 가장 편하다고 느껴질때는 지금 짜고 있는 Player -> Frame -> Score 식의 계층적인 구조에서 Score에 변경이 생겼을 때다. 기존에 작성해 놓은 상위 클래스의 테스트 코드가 아무 문제 없이 초록불이 켜지는 것을 볼때이다. 일부의 변화가 부분적으로는 잘 돼도 나비효과로 전체에 문제를 일으킬 수도 있는데 문제가 없다는 걸 알수 있다. 덕분에 불필요한 확인 절차를 안해도 된다. TDD에 익숙해 질수록 참 효율적인거 같다.

  • 알고리즘 강의를 아직 안들었다. 매일 공부의 시작이 알고리즘 강의 였는데 하루 일과가 바껴서 언제 들을까 갈피를 못잡고 있다. 다른 사람들과의 진도도 있고 해서 오늘은 쉴까 싶은데 매일 듣던걸 안들으니 찝찝하다. 아무래도 안되겠다 듣고 자야겠다.

  • 블로그쪽 파일들만 Atom으로 작성 후 터미널로 git 작업들을 했는데 앞으로는 이클립스에서 작업하는 내용들도 터미널을 이용하자.

내일 할일

  • 알고리즘 강의 듣기

  • 콘솔 볼링 게임의 남은 기능들을 구현 완료 하자