171023-TIL

Reading time ~1 minute

오늘 한일

  • 볼링 구현 사항
    • 마지막 Frame 부분 말고 Frame, State 생성 및 쓰러트린 핀들 입력 구현 완료.

    • 점수 계산 일부 구현.

  • 포비의 스트림 수업
    • distinct() : 중복 제거

    • java sorted( (a,b) -> Integer.compare(b.length(), a.length()))

      문자열 길이를 비교하여 긴순으로 정렬

    • numbers.stream().reduce(0, (x, y) -> x + y);

      리덕션 연산으로서 스트림 요소들을 다른 방법으로 결합하고 싶은 경우 사용. 현재의 경우 0부터 스트림 내부의 값들을 더해간다. 지금 형태는

      numbers.stream().mapToInt(Integer::valueOf).sum()

      으로 변경 가능 하다.

    • 함수형은 내부적으로 사이드 이펙트가 안생기게 막혀 있다.(새로운 객체를 생성하며 작업)

    • 스트림 연산은 원본을 변경하지 않는다. 대신 결과를 담은 새로운 스트림을 반환한다.

    • synchronized를 사용하면 대기하는 프로세스 때문에 프로그램이 느려진다. 큐같이 꼭 synchronized가 필요한 부분만 사용하는 것이 좋다.
  • 친구가 이번주에 세미나때문에 강남을 와서 오랜만에 만났다. 다시 전주에 가기전에 한번쯤 더 볼 듯 싶다.

오늘 느낀점

  • 간단한 stream 작성은 금방하는데 stream을 사용할 때 많은 양의 데이터를 처리하면 얼마나 느려지는지 궁금해졌다. 지금은 말고 여유가 생겼을때 테스트 코드를 이용하여 확인 해 보자.

  • 날씨가 갑자기 추워져서 감기 기운이 약간 있다. 감기 안 걸리게 조심하고, 컨디션 관리차 오늘은 일찍 자자.


내일 할일

  • 콘솔 볼링 게임 마무리

  • 알고리즘 토의