[TIL] 200306, fri

delma·2020년 3월 6일
1

TIL

목록 보기
25/38
post-thumbnail

오늘 한 일

  • 객체지향의 사실과 오해 챕터 4,5 읽기
  • 이진 탐색, 순차 탐색 공부 및 정리 [Binary Search, 이진탐색]
  • VendingMachine step 2 피드백 반영
  • mac os update

새롭게 알게 된 것

  • step2 에서 음료 종류와 갯수를 딕셔너리 형태로 리턴해주는 메소드가 있는데, 이를 reduce를 사용하도록 변경하라고 피드백 받았었다. 어떻게 써야 하나 고민하고 찾아봤다..

reduce 메서드는 두가지가 있다

  • reduce( initialResult: Result, nextPartialResult: (Result, Element) throws -> Result)
    이건 initialResult 라는 이름으로도 알 수 있듯이, 초깃값을 지정해 줄 수 있고, nextPartialResult 라는 이름의 매개변수로 클로저를 전달받는다. 모든 순회가 끝나면 initialResult 는 reduce의 최종 결과값이 된다.

  • reduce(into: Result, updateAccumulatingResult: (inout Result, Element) throws -> ()
    이 메서드는 컨테이너를 순환하며 클로저가 실행되지만 따로 결과값을 반환하지 않는 형태이다. inout 매개변수를 통해 초깃값에 직접 연산을 실행한다.
    updateAccumulatingResult 의 첫번째 매개변수를 inout 매개변수로 사용한다. 두번째 매개변수는 reduce가 순회하는 컨테이너의 요소다. 모든 순회가 끝나면 into 가 reduce의 최종 결과값이 된다.

  • 그리고 filter메서드에 count 붙여서 필터링 된 갯수만 가져올 수도 있다. 0_0 like this..
beverages.filter({ $0 == beverage }).count

고민한 것

어떤 객체의 행동(역할)을 정의할 때, 나는 주로 현실세계를 바탕으로 만들 생각을 했었다. 근데 오늘 피드백 받은 내용으로는 우리가 만드는 객체는 무생물이지만 생명도 있고 책임도 있고 기능을 하니까 현실 세계와는 다르고, 객체는 데이터와 기능을 함께 가지고 있으므로 매우 관련이 높은 것들만 응집도 있게 갖고 있어야 한다 고 했다

내가 현재 만들고있던 객체들 중에서는 그 역할을 부여받기에 그나마 근접한 놈이라고 생각해서 이야기했는데, 생각해보니까 미리 만들어진 타입도 있었다(Date).. 그래서 그것을 확장하여 썼다 ㅎㅎ 기억할 건 매우 관련이 높은 것들만 응집도 있게 갖고 있기

객체지향의 사실과 오해 책을 읽으면서 계속 역할, 책임, 협력에 관한 이야기가 나오는데 어떤 메시지를 보낼 것인지, 어떤 일을 시켜서 역할과 책임을 부여할 것인지 나오는데 아직 중반밖에 안읽어서 그런가.. 지금 하고 있는 프로젝트에 곧바로 적용하기에 쬐끔 어렵달까!

내일 프로젝트에 상속부분 다시 보면서 책에서 본 일반화/특성화와 연관지어 생각해봐야겠당


내일 할 일

  • 객체지향의 사실과 오해 챕터 6 읽기
  • VendingMachine step2 피드백 반영 완료
    • Hashable
    • Money Type 생성
    • 상속 관계 정리
    • 세부 수정사항 반영
  • App LifeCycle 공부 및 정리

오늘은

  • 사파리가 아예 켜지질 않았다.. 캐시 지워보고 재부팅도 여러번 해봤는데 안돼서 마지막으로 맥os 업데이트 하니까 그제서야 잘 되더라...
    사파리 안될때, 크롬으로 할랬는데 브라우저 하나 바꼈다고 뭔가 하기 싫대..? 집중이 안되더라고...
    왜 안되지 고민 + mac os 업뎃 하느라 시간만 흘러흘러.......😞 힝

  • App LifeCycle 봐야하는데 딱 그부분만 보면 얼마 안되는데, 앱이 시작되면 메인 이벤트 루프에 어떻게 할당되고 어쩌고까지 보려니까 약간 마음의 준비가 필요해.,,서 쬐끔 미루게되네 ^_^ 낼은 꼭 볼꺼.,..

profile
🌐Code makes world better

3개의 댓글

comment-user-thumbnail
2020년 3월 7일

저는 크롬애용합니다! 저도 델마처럼 알고리즘도 정리해봐야겠어요!👍

1개의 답글