Jump to content
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr ×
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr
  • [Bootcamp 2023 요약] 백그라운드 스레드를 사용하여, UI 반응성 유지하기 - Olaf Monien


    Kori

    << Bootcamp 2023 목록으로 이동

    UI (사용자 인터페이스, User Interface)가 있는 애플리케이션을 만드는 개발자라면 전문가로서 알아야 할 내용이라고 생각되어 추천합니다. 특히, 개발한 앱의 UI가 가끔 반응하지 않고 멈추는 경우가 있다면 매우 도움이 될 것입니다.

    원본 비디오(YouTube) 보기 (60 min)

    Bootcamp 2023 시리즈 중, "Using Background-Threads to Keep Your UI Responsive - Olaf Monien" (60 min) 의 한글 요약본입니다.  

    이 세션에서는

    • UI 애플리케이션에 백그라운드 쓰레드(thread)를 실제로 적용하는 코드를 직접 보여주고 설명합니다.

      • 백그라운드 쓰레드(thread)를 사용하지 않은 앱의 일반적인 작동을 먼저 보여주고,

      • 백그라운드 쓰레드(thread)를 사용하지 않은 앱에서 데이터 조회 등 작업이 오래 걸리는 상황을 만들어서 UI가 반응하지 않고 얼어버리는 상황을 보여주고,

      • UI가 반응하도록, (즉, 백그라운드 쓰레드를 사용하도록) 코드를 함께 수정하면서 설명합니다.

    아울러, 백그라운드 쓰레드에서는 UI 컨트롤을 직접 다루지 않아야 한다는 점 등 주의할 사항과 알아 둘 할 사항들도 배울 수 있습니다.

    TTask, TThread 등 쓰레드와 별개로, 간단하지만 꼼꼼히 코드를 보여주고 설명하므로, 기본 TEdit에 사용자가 입력을 하면 이에 반응하여 결과를 TEdit 아래에 목록으로 보여주는 매우 간단한 방법 등 유용한 팁들도 배울 수 있는 것들도 있습니다.

    [슬라이드] 데모 중심 세션이므로, 이론은 아래 내용을 담은 슬라이드는 1장만 사용하고 있습니다.

    • 쓰레드(thread)란 무엇인가?
    • 앱의 UI는 단일-쓰레드에서 처리된다. 
    • 모든 사용자 활동 (그리고 코드 안에서 사용한 Timer도) 이 UI-쓰레드 안에서 실행된다
    • UI-쓰레드 =  메인 쓰레드 (이 UI 처리 쓰레드가 바로 메인-쓰레드이다)
    • 메인-쓰레드가 방해를 받으면, 앱에는 치명적인 영향을 준다
    • Application.ProcessMessages를 멀리하라
      • 인터넷에서 UI가 얼었들 때 해소방법으로 이것을 보게 될 수도 있지만, 좋은 방법이 아니며, 실제로 단일-쓰레드 처리이다. Application.ProcessMessages를 쓰고 싶은 상황에서는, 멀티-쓰레드를 구현하는 것이 좋다. 그 방법은 이 세션에서 배울 수 있다) 
    • 쓰레드는 악마가 될 수도 있다 (쓰레드는 알맞은 곳에 알맞은 방법으로 써야 한다. UI 관련된 유의사항은  이 세션에서 배울 수 있다)

     


    User Feedback

    Recommended Comments

    There are no comments to display.


×
×
  • Create New...

중요한 정보

이용약관 개인정보보호정책 이용규칙 이 사이트가 더 잘 작동하기 위해 방문자의 컴퓨터에 쿠키가 배치됩니다. 쿠키 설정 변경에서 원하는 설정을 할 수 있습니다. 변경하지 않으면 쿠키를 허용하는 것으로 이해합니다.