TIL-20210228

2021. 02. 28.
  • 어제 풀었던 우선순위 큐 문제가 다른 언어에서는 메모리 부족으로 뜬다고 한다. 그래서 우선순위 큐의 크기를 제한해야 했다고 한다. 해당 방법으로 다시 풀어봤는데, 드라마틱한 공간 복잡도 개선은 없었다. 다시 한 번 생각해봐야겠다.
  • 플로이드 와샬을 학습했다. 문제 중 제목부터 플로이드인 문제가 있었다. 이전에 풀었던 것을 바탕으로 일단 풀어볼까 했는데, 어차피 데브독스도 쓸 겸 공부를 해봤다. 다익스트라가 가중치가 있는 그래프의 최단거리를 그리디하게 해결하는 알고리즘이라면, 플로이드 와샬은 DP적인 접근을 하는 것이었다. 원리를 이해하니 쉽게 풀이할 수 있긴 했는데, 이걸 잊는 것도 문제인 것 같다. 가장 대표적인 문제로 소수 문제가 있는데 또 까먹었다. 이런 문제를 어떻게 해야할지, 당연하게 받아들이고 꼭 필요할때 훑으며 빠른 학습을 할 준비를 해두는게 맞는건지 잘 모르겠다.
  • 이번 주도 공룡책은 가벼운 주제라 쉽게 읽었다. 다음 분량이 시스템 콜인데 이 참에 다시 한 번 정리해봐야겠다.
  • 데브독스 발표 중에 스위프트의 컨트롤러와 뷰 사이의 위임에 대한 내용이 나왔다. 발표자가 학습하며 예전에 내가 발표했던 SOLID 원칙들이 생각났다고 한다. 블로그 글을 보다가 해당 부분을 의존 역전의 원칙과 연결 시킨 글을 보여줬는데, 나름 잘 설명해준 것 같다. 조금 어려웠던 점은 대부분의 블로그에서 위임 자체를 설명하는 것이 아니라 의존성 주입 및 의존 역전까지 결부시켜서 delegate 패턴이라고 명명하는 듯 했다. 이 점으로 인해 발표자가 위임에 대한 개념을 많이 혼동했는데, 이걸 깔끔하게 설명하지 못한 것 같아 아쉬웠다.
  • 스위프트는 인터페이스 대신 프로토콜이라는 개념을 사용했다. 인터페이스와 다른 점은 오버라이딩을 강제하는 것이 아니라, 유연하게 설정할 수 있다. 또한 매소드 재정의를 extenstion이라는 독립된 공간에서 진행할 수 있다. 어노테이션을 이용하여 오버라이딩을 표현하는 것 보다 더 명시적으로 나타내는 것 같아 좋아보였다. 개인적으로 클래스가 길어질 수록 메소드 배치가 많은 고민이 되는데, 그런 고민할 시간도 자연스럽게 덜어줄 것 같다.

내일 할 일

  • 내일은 기필코 미션6 마무리를 할 것이다.
  • 너목들은 crud 동작이 아닌, 정의된 인터페이스로 리턴이 되는지 확인하는 것이 더 중요하다고 한다. 맞춰서 개발해주자!
정대화
DaeHwa_Jeong@outlook.com

Powered with by Gatsby 2.0