728x90 반응형 티스토리챌린지7 [Android] 네트워크 작업 시 비동기 작업이 필요한 이유 + 코루틴(coroutine) 1. UI 차단(Block) 현상의 원리와 문제점Android의 스레드 모델Android 앱은 기본적으로 메인 스레드(Main Thread)에서 사용자 인터페이스(UI)와 관련된 작업을 수행합니다.예: 화면에 버튼 표시, 사용자의 클릭 이벤트 처리.네트워크 작업은 주로 오래 걸릴 수 있는 작업에 속하며, 메인 스레드에서 실행하면 다른 작업(특히 UI 관련 작업)이 대기 상태에 들어갑니다.UI 차단(Blocking)의 원인네트워크 작업은 데이터를 송수신하는 동안 외부 서버와의 통신을 기다려야 합니다.예) 서버에서 데이터를 처리하거나, 네트워크 지연(Latency)이 발생하는 경우.이 동안 앱은 결과가 반환되기를 기다리며 아무것도 하지 못하는 상태가 됩니다.메인 스레드가 이 대기 작업에 묶이게 되면 UI 업.. 2024. 11. 25. [Android] startActivityForResult 메서드가 Deprecated된 이유와 해결방안 + 카메라 사용 및 이미지뷰 예제 startActivityForResult가 Deprecated된 이유startActivityForResult 메서드가 Deprecated(사용 중단)된 이유는 Activity Result API를 도입했기 때문입니다.새로운 API는 더 간결하고 유지보수에 용이하며, 결과 처리를 Lifecycle-aware 방식으로 관리할 수 있어 현대적인 Android 개발에 적합합니다.더 안전한 결과 처리: startActivityForResult는 콜백을 onActivityResult로 전달했지만, Activity 또는 Fragment가 Lifecycle-aware 하지 않으면 메모리 누수 및 의도하지 않은 동작이 발생할 수 있었습니다.명확한 결과 관리: 새로운 API는 명시적으로 결과를 등록하고 Lifecycle .. 2024. 11. 21. [C#] 네임스페이스(namespace) 란? 네임스페이스(namespace) 란?C#의 네임스페이스란 코드를 논리적으로 그룹화하고 이름 충돌을 방지하기 위한 구조입니다.동일한 이름의 클래스, 인터페이스 등이 여러 곳에 있어도 네임스페이스를 통해 구분이 가능합니다. 네임스페이스(namespace)의 역할코드의 논리적 그룹화관련된 클래스, 인터페이스, 구조체, 열거형 등을 하나의 네임스페이스로 묶어 코드를 체계적으로 정리할 수 있습니다.예: System.Collections는 데이터 구조 관련 클래스들을 그룹화클래스 이름 충돌 방지동일한 이름의 클래스가 다른 네임스페이스에 존재해도 충돌하지 않습니다.네임스페이스를 명시적으로 지정해 사용하면 중복된 이름의 클래스를 구분 가능합니다.가독성 및 유지보수성 향상프로젝트가 커질수록 클래스와 메서드가 많아집니다... 2024. 11. 20. [C#] GDI+ (Graphics Device Interface Plus) 란? GDI+란?GDI+ (Graphics Device Interface Plus) Microsoft가 Windows에서 그래픽과 이미지를 처리하기 위해 제공하는 API입니다.GDI는 기존의 GDI(Graphics Device Interface)를 확장한 버전으로, 그래픽, 텍스트, 이미지 처리르 위한 더 많은 기능과 향상된 성능을 제공합니다..NET Framework에서 System.Drawing 네임스페이스를 통해 사용됩니다. 1. GDI+의 주요 기능GDI+는 2D 그래픽 렌더링과 이미지를 다룰 수 있도록 다양한 기능을 제공합니다.그래픽선, 사각형, 원과 같은 2D 도형을 그릴 수 있습니다.색상, 선 두께, 스타일 등을 커스터마이징할 수 있습니다.텍스트폰트 스타일, 크기, 컬러를 지정하여 텍스트를 출력할.. 2024. 11. 19. 이전 1 2 다음 728x90 반응형