Facts.
- 어제자 TIL 작성
- 경제신문스크랩 : **삼겹살만 830t 판매하는 '정육각'...초록마을에 통할까**
- coroutine & flow완전정복 : 1부 전체 수강 완료
- 올인원 기본기 클래스 : 객체지향 5대 원칙, 테스트 코드 작성
- compose 메모앱 : ContentBlockViewModel 정리 및 테스트 수정, master브랜치에 머지
Feelings.
- 패캠에 있는 coroutine & flow완전정복 강의의 1부를 모두 수강했습니다. 그동안 코루틴의 예외 전파, 처리에 대해서 제대로 알지 못하고 있었는데 오늘 강의를 통해서 알게 되었습니다. 또 코루틴에서 공유객체에 대한 문제를 어떻게 해결하는지 알게 되었습니다. 오늘 배운 내용을 안드로이드 프로젝트에서 잘 사용할 수 있으면 좋겠습니다.
- 정육각에 대한 기사를 스크랩했습니다. 앞으로 경제 신문 스크랩에 대한 내용도 블로그에 업로드하면 좋을 것 같습니다.
- 올인원 기본기 클래스 강의를 수강하면서 객체지향의 5대 원칙에 대해서 복습하는 시간을 가졌습니다. 강의를 수강하고 compose 메모앱을 리팩터링 하려고 보니 ContenBlockScreen에서 OCP를 위반하고 있는 것을 알아차리게 되었습니다. 좋은 코드를 많이 보는 것도 중요하지만 어떤 코드가 문제인가를 많이 보고 내 코드에서 알아차리는 것이 코드를 리팩터링 하는데 있어서 중요한 것 같습니다.
Findings.
-
하나의 코루틴 안에 있는 suspend함수는 기본적으로 순차적으로 실행됩니다.
- 동시에 실행되고 싶으면 각 suspend함수를 실행시키는 자식 코루틴을 생성합니다.
- 결과값이 필요하면 async, 그렇지 않으면 launch 코루틴 빌더를 사용합니다.
- 기본적으로 예외가 발생하면 부모, 형제, 자식 코루틴에게 영향을 미칩니다.
- CEH(Coroutine Exception Handler)를 통해 예외처리 핸들러를 만들고 상위 코루틴 빌더에 등록하여 코루틴 예외처리를 합니다.
- 코루틴을 사용하면서 발생하는 공유 객체에 대한 문제는 newSingleThread,스레드 안전한 자료구조 사용, 뮤텍스, 액터를 사용하여 문제를 해결합니다.
Future Action Plans.
- compose 메모앱 리팩터링 → ContentBlockScreen의 코드를 OCP를 잘 지키는 코드로 리팩터링 해야 합니다.