Skip to content

Latest commit

 

History

History
65 lines (47 loc) · 3.08 KB

211208Week1Step2리뷰.md

File metadata and controls

65 lines (47 loc) · 3.08 KB

TIL 211208

Tag: Week1Step2리뷰

🔥오늘의 이벤트

  • Week1 Step2 피드백 받음!
  • Week1 Step3 구현 완료
  • 수요일 저녁 스터디!

🔥학습 내용

1. 순서도 좀 더 접근성 높이기

스크린샷 2021-12-09 오후 12 48 46

- 최대한 접근성을 높여보려고 해보았습니다! 사실 접근성을 높이라는 부분이 정확하게 어떤 부분을 의미하는지 이해하지 못했습니다. 엘런 의도에 맞게 수정한게 맞을까요?

2. OOP 관련해서 추천해주신 책 바로 구매하겠습니다! 감사합니다!


3. 이모티콘 꿀팁..! 이제 이모티콘 많이 쓰겠습니다😆😁 감사합니다!


4. struct를 사용한 이유? 다른 자료형과의 차이점?

struct 를 사용해야할 경우

  1. 두 object를 "같다, 다르다" 로 비교해야 하는 경우
  2. copy 된 각 객체들이 독립적인 상태를 가져야 하는 경우
  3. 코드에서 오브젝트의 데이터를 여러 스레드 걸쳐 사용할 경우 ( 안전하게 사용 가능 )

class 를 사용해야할 경우

  1. 두 object의 인스턴스 자체가 같음을 확인해야 할때
  2. 하나의 객체가 필요하고, 여러 대상에 의해 접근되고 변경이 필요한 경우

Struct 와 Class 차이점

  1. Structure는 Value Type 이며 Stack에 저장.
  2. Class는 Reference Type 이며 Heap에 저장.
  3. Structure는 Deinitializer, Inheritance, Reference Counting 이 불가하지만 Class 는 모두 가능
  4. 값 형식인 Struct에서 속성을 바꾸는 메소드를 구현할 때에는 반드시 mutating으로 선언해야함.

사실 이런식으로 정리를 해봤지만, 정작 실제로 코드를 짤 때 저의 의식의 흐름은

  1. 공식문서에 나와있을 만큼 애플은 struct를 더 좋아함.
  2. 그러니까 나도 struct 위주로 써야지! 일단 쓰고 필요하면 class로 포팅하지뭐!
  3. 이거 상속이 필요한가? Y → class / N → struct

요런 단순한 흐름 인 것 같습니다..ㅎㅎ;;


5. private(set) 어떤 상황에서 사용하고 그로인한 이점은 무엇일까?

  • setter의 접근 수준을 낮춰 읽기는 가능하지만 쓰기에는 제한을 주고 싶을 때 사용합니다.
  • 이점으로는 캡슐화를 함으로써 더 안전한 코드를 만들 수 있는 것 같습니다.

6. makeIceCream 네이밍 의도가 무엇인가?

  • 메서드는 동사로 시작해야된다는 부분을 제외하면 특별한 의도는 없는 것 같습니다.

7. 접근제어자로 private을 설정한 이유가 무엇인가?

  • IceCreamOption 같은 경우엔 IceCreamMarket 구조체에서만 사용되기 때문에 캡슐화를 해주었습니다.

8. IceCreamMarket 구조체 네이밍 수정 해보기

  • 좀 더 좁게 들어가서 Market이 아닌 직접 아이스크림을 건네주는 직원으로 네이밍을 수정해보았습니다.
  • 엘런 의도에 맞게 수정한게 맞을까요?