Jump to content
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr ×
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr

[아티클] [Bootcamp 2023 요약] 백그라운드 스레드를 사용하여, UI 반응성 유지하기 - Olaf Monien


Recommended Posts

<< 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 관련된 유의사항은  이 세션에서 배울 수 있다)

 


View full 엠바카데로 기술자료

이 댓글 링크
다른 사이트에 공유하기

  • CodeTalk pinned this 토픽(기고/질문)
  • Kori unpinned this 토픽(기고/질문)

이 토의에 참여하세요

지금 바로 의견을 남길 수 있습니다. 그리고 나서 가입해도 됩니다. 이미 회원이라면, 지금 로그인하고 본인 계정으로 의견을 남기세요.

Guest
이 토픽(기고/질문)에 답하기

×   서식있는 텍스트로 붙여넣기.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   이전에 작성한 콘텐츠가 복원되었습니다..   편집창 비우기

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

중요한 정보

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