[TIL] 200206, thur

delma·2020년 2월 6일
1

TIL

목록 보기
1/38

## 오늘 한 일

  • clouser capture에 대해 공부
  • 함수와 메소드의 차이점에 대해 공부
  • 객체, 클래스, 인스턴스의 차이점에 대해 공부
  • pokergame-step2 완료 (enum)
  • MVC 패턴 공부
  • delegate와 protocol의 관계

새롭게 알게 된 것


Business Logic 이란?

  • 어플이 사용자에게 서비스를 제공하기 위해 사용자의 입력을 받고, 그 받은 데이터를 저장하고, 가공해서 다시 사용자에게 보여주는 모든 과정.

Delegate Pattern이란?

데이터를 전달하거나 클래스나 구조체 간의 통신을 위해 사용된다

  • 델리게이트는 프로토콜 타입으로 선언되어 있다.
  • 해당 델리게이트에 채택하는 클래스/구조체가 수행해야 할 메소드가 정의되어 있다.

ViewController와 View의 상관관계

ViewController는 View의 한 종류. VC는 꼭 V를 가지고 있다.
VC에는 view: UIView!로 선언되어 있음.
이 말은 view에 nil이 들어가면 터짐 -> VC는 View가 없으면 의미가 없음.
iOS에서 화면에 보이는 건 모두 뷰.
VC는 그걸 관장하는 역할을 하지만 뷰는 아니다.
ViewController != View

함수와 메소드의 차이

클래스, 인스턴스, 객체의 차이

  • 객체
    • 소프트웨어로 구현할 대상
  • 클래스
    • 객체를 만들기 위한 설계도
    • 상태(property)와 동작(method)를 가지고있음.
  • 인스턴스
    • 클래스를 바탕으로 구현된 실체.
    • 메모리에 할당됨.

고민되는 것


  • 프로토콜에 프로토콜을 채택한 클래스를 할당하는 것이 어떻게 가능한가?
  • delegate pattern을 사용하는 이유가 뭐지?

내일 할 일


느낀 점


  • 그동안 iOS 개발하면서, ViewController를 View와 별개의 것이라고 생각하지 않았었다. 그래서 view에 관한 이해가 늘 잘 안되었던 것 같다. 오늘 MVC 패턴에 대해 공부하며 View Controller != View 라고 확실히 개념을 잡게 되어서 뷰와 뷰컨의 역할에 대한 이해가 조금 더 생겼다.
  • delegate pattern에 대해 막연하게 알고 있었는데, 오늘 예제 코드를 심도깊게 보면서 조금 더 이해할 수 있게 된 것 같다. 아직 왜 델리게이트 패턴을 사용하는가가 와닿지는 않지만, 그건 내일 좀 더 알아보도록.. 그리고 경험치가 쌓이면? 혹은 델리게이트 패턴을 사용하지 않고 만들어본다면? 왜 해당 패턴을 쓰는 지 좀 더 이해할 수 있지 않을까 싶다.
  • MVC 패턴에 대한 설명 보면서 늘 비지니스 로직 이란 말을 많이 접했는데, 사실 해당 단어에 대한 명확한 개념 없이 아 그냥 그런가보다 하고 넘어왔었다. 오늘은 비즈니스 로직이라는 명칭에 대한 개념을 확립했다
profile
🌐Code makes world better

0개의 댓글