오늘 한일

플러터 1/4/7/14 앱: 과목 상세정보 화면

과목명 변경, 과목 삭제

과목 update, delete는 쉽게 구현할 수 있었다.

그런데, 메인 Widget을 build하면서 List 타입이 아닌 List의 Future 타입을 사용하느라 문제가 생겼다. 과목을 추가하기 위해 TextField에 focus가 되면서 keyboard가 올라오면서 widget이 resize되는데, widget이 resize되면 rebuild되어 api를 다시 호출한다. 실제 도메인에는 변경 사항이 없는데도 계속해서 api를 호출하게 되면서 쓸데없는 비용이 들어간다.

Future 를 widget의 인스턴스 변수로 감싸고, 실제 rebuild가 필요할 때만 setState()를 호출해주면 문제가 해결된다. 그러나, 이 방식을 사용하면 또 다른 문제가 등장한다.

상세화면으로 이동해서 과목명을 변경한 후에 상세화면을 pop을 해도 메인 Widget의 Future가 호출되지 않는다. Navigator.push가 Future를 반환하므로 then으로 콜백을 지정해주면 해결할 수 있을 것 같긴 하다. 그런데 이렇게 하면 메인 widget과 메인 widget에서 화면에 표시하는 과목 widget을 분리할 수 없는 문제가 생긴다. Vue.js에서는 상태관리 패턴으로 해결할 수 있는데, Flutter에도 그런 패턴이 있나 찾아봐야 할 것 같다.

여기에 widget이 build되는 trigger에 대한 설명이 있다

JSciprt.net 유지보수 알바 미팅

취업하기 전까지 JScript.net 관련 유지보수 알바를 하기로 결정했다. 2017 년에 회사 소속으로프로젝트에 투입됐을 때는 몰랐는데, starlims에도 유닛테스트와 ORM 기능이 있었다. 그러나 잘 사용하지 않는다고.......

오늘 느낀점

벌써 퇴사한 지 3 개월이나 지났는데, 쉬는동안 무슨 일을 했는지 증명할 결과물이 없다. 면접에서 무조건 물어볼텐데.... 어떻게 잘 대답할 수 있을지 걱정이다.

내일 할일

  • starlims 작업
  • 온라인 코딩 테스트