들어가며
어제는 여러가지를 복습하는 시간을 가셨습니다 로컬 디비라고도 부르는 Preferences에 파일을 만들어 key value로 이루어져 있는 값을 저장하고 저장된 값을 가지고 오는 시간을 가졌습니다. 그리고 UI를 구성할 때 너무 중요한 ConstraintLayout과 Runnable 객체와 Handler객체를 이용하여 수행하고자 하는 행동을 메인 Loop 즉 스레드에 넘겨 수행하기도 했습니다 여기서 핵심은 스레드라고 생각이 드는데요 값을 저장하고 가지고오는 행위는 안드로이드의 리소스를 많이 잡아먹습니다 그래서 잘 못 만들어진 어플은들 많은 액션이 들어오면 버벅거리고 툭툭 끊기는 느낌이 들기 마련입니다 그래서 UI를 꾸릴때는 비동기 즉 스레드로 구성하는 것이 좋습니다. 그래서 이번엔 계산기 프로그램을 만들기 앞서 스레드에 대해서 잠깐 알아보도록 하겠습니다
스레드
스레드를 말하기 앞서 프로세스라는 개념이 있습니다
프로세스란 단순히 실행중인 프로그램이라는 뜻과 같습니다 즉 사용자가 실행한 프로그램이 시스템 메모리에 의해서 작동이 되는 것 이라고 정의 할 수도 있겠습니다
위 그림과 같이 여러가지의 행위들이 한번에 이루어 지는데 이것을 프로세스라고 합니다 그럼 스레드가 뭔데?!?
스레드는 프로세스에서 작동되는 동작들이라고 보면 좋을 것같습니다. 그래서 그 동작들을 여러 스레드를 사용해서 처리할 것인지 단일 스레드로 처리할 것인지 개발자가 정할 수가 있습니다.
단일스레드는 그냥 개발자가 가장 많이 사용하는 패턴이라고 보시면 되겠습니다 하나의 프로세스에 동작하는 스레드가 하나라서 모든 처리를 순차적으로 실행하게 됩니다 따라서 3개의 파일을 다운 받고 싶을 때 1 -> 2 -> 3 식으로 다운로드를 받게 됩니다 그러면 3위치에 있는 파일을 다운로드 받기 위해서는 1 과 2 의 파일을 다운 받은 뒤에야 받을 수 있기 때문에 속도가 비교적 느립니다.
멀티 스레드는 하나의 프로세스에서 동작하는 스레드 수가 3개 입니다 그래서 하나의 스레드에서 3개를 다운로드 받는 것에서 3개의 파일을 각각 하나식 스레드가 다운로드 하게 됩니다. 그렇게 되면 속도는 약 3배 정도 빠르겠죠! 그러나.. 단점이 있습니다
스레드도 곧 프로그램의 리소스를 잡아 먹기 때문에 관리 하기가 힘들고 또 양이 많아질 수록 속도도 저하 될 수 있다는 단점이 있습니다.
즉 비용문제이죠 그래서 큰 프로젝트가 아니고 소소한 프로젝트라면 개인적으로 단일 프로젝트도 괜찮다고 생각듬니다
내일은 계산기 프로그램을 만들어 볼 시간입니다. 여러가지 액션들이 있는데 그것들을 스레드로 구성해 본다고 하니 벌써 가슴이 뛰네요!!
#패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발#패스트캠퍼스후기#30개 프로젝트로 배우는 Android 앱 개발 with Kotlin 초격차 패키지 Online
패스트캠퍼스 [직장인 실무교육]
프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.
fastcampus.co.kr
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
'패스트캠퍼스 30일챌린지' 카테고리의 다른 글
[안드로이드] 패스트캠퍼스 챌린지 27일차!!(ripple) (0) | 2021.10.02 |
---|---|
[안드로이드] 패스트캠퍼스 챌린지 26일차!!(TableLayout) (0) | 2021.10.01 |
[안드로이드] 패스트캠퍼스 챌린지 24일차!! (0) | 2021.09.29 |
[안드로이드] 패스트캠퍼스 챌린지 23일차!!(Runnable, Handler) (0) | 2021.09.28 |
[안드로이드] 패스트캠퍼스 챌린지 22일차!!(getSharedPreferences, AlertDialog) (0) | 2021.09.27 |
댓글