Skip to content

haechan29/Problem-Timer-2

Repository files navigation

수학문제 타이머2

🛠︎ 수학문제 타이머를 리팩토링한 프로젝트


비효율적인 통신 과정을 개선

[기존 코드]

// 수업 리스트가 null인지 0.00n초간 확인한다.
private boolean isLecturesNullForNms(long n) {
    for (int i = 0; i < n / 10L; i++) {
        try {
            Thread.sleep(10L);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        if (lectures == null) continue;
        return false;
    }
    return true;
}

➡️ Coroutine의 withTimeout()을 사용하여 가독성, 처리 속도 증가

콜백 지옥 탈출

[기존 코드]

threadPool.execute(new Runnable() {             // Callback 1

    @Override
    public void run() {
        // 단원별 점수 리스트를 얻는다.
        getScoreByUnit2List();
      
        threadPool.execute(new Runnable() {     // Callback 2

            @Override
            public void run() {
                ...

                handler.post(new Runnable() {   // Callback 3

                   @Override
                    public void run() {
                       ...
                    }
                });
            }
        });
    }
}

➡️ Coroutine을 통한 동시성 프로그래밍으로 콜백 지옥 삭제

유지보수성 증가

[기존 방식]
뷰와 레이아웃이 분리되어 있어(xml) 작업이 복잡하고, 가독성이 떨어짐

➡️ Compose를 통해 선언적 UI를 구성하여 가독성 증가, 부작용 감소

[기존 방식]
MVC 아키텍처를 적용하여 Activity가 비대해짐

➡️ MVVM 아키텍처를 적용하여 관심사 분리, 가독성 증가

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages