본문 바로가기

분류 전체보기18

[Android] Context 는 무엇이고 우리는 왜 사용하는가? 안드로이드 개발자라면 Context라는 건 많이 들어보았을 것이다. 하지만 정확히 Context 가 무엇인지는 잘 알지 못한다. Context가 무엇이고 어떨 떄 사용하는지 한번 알아보자 Context 란? 안드로이드에서 사용되는 Context 는 어디에서 온 것일까? Context는 안드로이드의 메인 프레임워크인 Android.jar 에 존재한다. 그럼 안드로이드 프레임워크는 무엇인가? 안드로이드 프레임워크는 안드로이드에서 동작하는 메인 애플리케이션이며 개발자가 만드는 애플리케이션은 그 메인 애플리케이션에서 동작하는 하나의 이벤트 핸들러이다. 미니 애플리케이션 (개발자가 만든 앱) 을 다운로드할 수 있는 메뉴를 가진 슈퍼 애플리케이션 (안드로이드 프레임워크) 이 있다고 생각하면 쉽게 이해된다. 안드로이.. 2023. 11. 1.
[Kotlin] extension 함수의 이해 코틀린에서 extension 함수는 기존에 존재하는 클래스의 변형 없이 새로운 함수를 추가할 수 있도록 해준다. 이 것은 기존에 정의되어 있지 않더라도 정의되어 있는 것처럼 사용 할 수 있도록 하여 좀 더 코틀린을 유연하게 사용할 수 있도록 도와준다. 예를 들어 우리가 컨트롤 할 수 없는 3rd party library의 클래스에 필요한 메서드를 추가할 수 있다. 장점 클래스 소스파일의 수정 없이 함수를 추가할 수 있다. 소스 코드가 없는 경우 매우 유용하게 사용될 수 있다. 관련된 함수를 하나의 클래스나 오브젝트로 그룹핑 할 수 있어 가독성 있고 이해하기 쉬운 코드를 작성할 수 있게 해 준다. 코드의 중복을 줄여서 유지보수에 유용하다. 단점 많은 장점에도 불구하고 extension 도 몇 가지 단점이 .. 2023. 10. 31.
iOS에서 Chrome 웹뷰 디버깅 하기 웹 개발을 할 때 브라우저에서 제공하는 개발자 모드로 디버깅을 할 수 있다. 하지만 모바일 환경에서 개발되는 웹 또는 하이브리드 웹 앱의 경우 개발자 모드로 디버깅하기는 쉽지 않다. 안드로이드의 경우 Google Inspector (chrome://inspect)를 통해 모바일 환경에서 개발되는 내용을 PC에서 비교적 쉽게 디버깅할 수 있지만 iOS의 경우 WKWebView에서 원격 Web inspector 디버깅을 지원하지 않아 Google inspector를 사용할 수 없었다. 하지만 iOS 16.4+ 이후에 WKWebView 에서 지원을 하면서 Chrome 버전이 115 이상이면 Mac의 Safari 브라우저를 통해 디버깅이 가능해졌다. iOS 16.4+ Chrome for iOS 115+ 아이폰내.. 2023. 10. 24.
[Kotlin] Channel, ReceiveChannel, Pipeline Kotlin Channel 은 둘 이상의 코루틴 간의 동시성 통신을 가능하게 하는 강력한 구조입니다. Channel 은 서로를 간섭하지 않고 데이터를 공유하고 함께 작업할 수 있도록 합니다. Kotlin의 Channel에 대해서 알아보고 사용하는 팁과 예시를 알아보고 Channel을 이용하여 Pipeline을 어떻게 효율적으로 사용하는지 알아보겠습니다. Channel 은 무엇인가? Channel 은 한 코루틴에서 다른 코루틴으로 데이터가 흐를 수 있도록 파이프라인을 연결합니다. 본질적으로 코루틴의 메세지를 보내고 받을 수 있는 버퍼 또는 큐 입니다. 한 코루틴은 Channel에 데이터를 전송할 수 있고, 다른 코루틴 Channel을 통해 해당 데이터를 검색하고 받을 수 있습니다. 이는 코루틴을 위한 pu.. 2023. 10. 20.
반응형