본문 바로가기

CS

(2)
Observer Pattern 개요TodoMate라는 프로젝트를 진행하면서 다음과 같은 기존 상황에서 리팩토링을 진행하고 있었다 TodosInMonthView특정 유저(userId)의 이번달 [Todo]를 보여주는 뷰TodoListView특정 유저(userId)의 오늘날짜의 [Todo]를 보여주는 뷰TodoManager실시간 업데이트가 적용되는 [Todo]를 가지고 filter를 통해 각각의 userId에 알맞은 TodoListView에 전달 기존에는 그냥 간단하게 TodoManager의 todos에 filter를 적용하여 TodoListView에 [Todo]를 전달했다 TodoManager는 실시간 업데이트와 CRUD 작업을 수행하면서 상태를 가지는데, 다시보니 너무 많은 역할을 가지고 있다고 생각했고TodoListView도 tod..
비동기 프로그래밍 개요이 글은 비동기 프로그래밍의 개념과 관련된 내용을 정리한다글은 다음과 같은 순서로 진행된다 동기와 비동기의 차이와 CPU작업과 I/O작업의 차이비동기 작업을 쉽게 수행할 수 있도록 도와주는 Future의 개념과 작동 방식비동기 I/O 작업과 Coroutine 동기와 비동기  비동기 방식은 호출한 작업이 완료되는 것을 기다리지 않고 바로 다음작업을 수행할 수 있다예를들어 메인스레드에서 작업을 호출할 때, 해당 작업이 메인스레드를 블락한다면 동기작업이고해당 작업이 메인스레드를 블락하지 않는다면 비동기 작업이다 메인스레드는 블락되지 않고 프로그램이 수행되면서, I/O 작업(네트워크 요청, 디스크 I/O 등)이나 CPU 작업(복잡한 계산)과 같이 시간이 오래 걸리는 작업을 처리할 때 유용하다 CPU작업과 ..