TIL(Today I Learned)

1월 3일(화)

공부한 내용을 제 언어로 빠르게 정리한 내용이라서 잘못된 내용이 있을 수 있습니다.

MVVMC

  • MVVM의 약점인 Routing Management을 보완하기 위해 Coordinator 레이어를 추가한것
  • Coordinator가 뷰 하이어라키 구성과 뷰에서 필요한 뷰모델을 초기화해주는 등의 역할을 수행(누가 부모뷰가 누가 서브뷰인지 등을 결정하는 역할)

Clean Architecture

  • Entities(Enterprise Business Rule), Use Cases(Application Business Rule), Interface Adapters, Framework & Drivers 이렇게 4개의 레이어로 이루어진 아키텍처
  • Dependency Rule을 준수해야함, 외부 레이어가 내의 레이어는 의존하지만 내부 레이어는 외부 레이어에 의존하지 않아야함
  • 즉 외부의 변화가 내부에 영향을 주어서는 안됨을 의미
  • 아직 Entities가 뭐고 Use Cases가 뭔지, 왜 이렇게 구분을 해야하는지 이해하지 못했다.

Swift Protocol 단점

  • protocol을 무분별하게 남용하면 코드 가독성, 확장성을 저하시킬 수 있음.
  • 새로운 타입을 정의할때 불필요한 프로토콜을 채택해서 구현을 해야한다던지, 왜 이 변수는 이 프로토콜을 채택한 타입으로 제한을 해두었는지 등을 파악해야하는 등의 문제가 생길 수도 있을것 같다.

C

  • malloc은 메모리 블록 한개를 반환 calloc은 입력된 개수 만큼 반환
  • malloc은 쓰레기값이 들어 있고 calloc은 0으로 초기화해서 반환
  • malloc은 인자가 하나 calloc은 인자가 둘
  • 더블 포인터가 가리키는 변수 값을 수정하는 법은, 더블포인터 변수 이름 앞에 역참조 연산자 두개 붙여서 초기화해주면 됨

참고