본문 바로가기

Programming 개발은 구글로187

C#[WPF] CaptureMouse WPF MouseCature : 마우스 캡쳐를 실행하면 모든 마우스 관련 이벤트를 캡쳐한 컨트롤이 가져가며, 드래그 및 마우스 무브를 계속 따라갈 때 설정할 필요가 있습니다. 현재 작업 중인 프로그램에서, 마우스 움직임에 따라 윈도우의 로케이션(Volume Control)을 계속해서 움직일 필요가 있었습니다. 그런데 마우스를 빠르게 움직여서 윈도우 바깥으로 보내면 MouseMove 이벤트가 이를 따라잡지 못하고 작동이 멈추거나 Delay가 발생하여 버벅거기는 현상이 발생이 됩니다. 이 때 CaptureMouse를 설정하니 빠르게 움직여도 모든 마우스 이벤트가 제가 설정한 윈도우로 들어오기 때문에 원하는 방식으로 정상동작이 되었습니다. ※ References http://msdn.microsoft.com/.. 2022. 4. 18.
[안드로이드] getContext(), getApplicationContext(), getBaseContext(), this의 차이 Context : 애플리케이션 환경에 대한 인터페이스이자, 추상 클래스이다. 즉, 애플리케이션의 현재 상태를 뜻한다. Context를 통해 애플리케이션에 접근할 수 있고, 애플리케이션 수준 작업을 호출할 수 있다. 안드로이드 개발 중 Context에 자주 접근하게 되므로 Context를 잘못 사용하면 메모리 누수가 발생할 수 있다. 따라서 Context에 관한 내용을 확실히 정리하고 넘어가려 한다. Context에는 두 가지 유형이 존재한다. Application Context와 Activity Context이다. Application Context는 Application 전용 인스턴스이고, Activity Context는 Activity 전용 인스턴스이다. Application Context 싱글톤 패.. 2022. 4. 18.
[안드로이드] JAVA 싱글톤 패턴 싱글톤 패턴(Singleton) : 싱글톤(Singleton) 패턴의 정의는 단순하다. 객체의 인스턴스가 오직 1개만 생성되는 패턴을 의미한다. public class Singleton { private static Singleton instance = new Singleton(); private Singleton() { // 생성자는 외부에서 호출못하게 private 으로 지정해야 한다. } public static Singleton getInstance() { return instance; } } 1. 싱글톤 패턴의 사용하는 이유 1. 메모리 낭비 방지 최초 한 번의 new 연산자를 통해서 고정된 메모리 영역을 사용하기 때문에 추후 해당 객체에 접근할 때 메모리 낭비를 방지할 수 있다. 뿐만 아니라 .. 2022. 4. 16.
[안드로이드] Swiperefreshlayout - Swipe 새로고침 Swiperefreshlayout : Swiperefreshlayout은 사용자가 수동으로 업데이트 를 요청할 수 있도록 한다. Swiperefreshlayout이 적용되어 있는 Activity에 수직으로 pull하면 업데이트가 트리거된다. 아래의 예시는 새로고침을 할 때마다 새로고침 횟수를 알려준다. 1. build.gradle (Module: app) 수정 dependencies { implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0" } build.gradle(Module: app) 파일을 열어 Swiperefreshlayout와 관련된 빌드 종속성을 추가해준다. 현재 최신버전은 버전 1.2.0-alpha01 이다. https:.. 2022. 4. 15.
C#[WPF] HID 통신 모니터링 프로그램(Data 패킷) HID 통신 모니터링 프로그램 HHD사 Device Monitoring Studio는 어떻게 보면 필수 프로그램이다. HID Data 송수신 시 Send Data 패킷, Receive Data 패킷 정보를 확인할 수 있어서 정상적으로 송수신이 되었는지 확인할 수 있도록 도와준다. 해당 프로그램은 USB/HID 디바이스 장치 연결 정보도 확인 할 수 있으며, 선택된 디바이스 정보를 보여준다. 다운로드 경로는 아래와 같다. https://freeserialanalyzer.com/features 2022.04.02 - [분류 전체보기] - HID(휴먼 인터페이스 장치)에 대하여 2022. 4. 14.
[안드로이드] RecyclerView 사용하기 RecyclerView 리사이클러뷰(RecyclerView)는 "사용자가 관리하는 많은 수의 데이터 집합(Data Set)을 개별 아이템 단위로 구성하여 화면에 출력하는 뷰그룹(ViewGroup)이며, 한 화면에 표시되기 힘든 많은 수의 데이터를 스크롤 가능한 리스트로 표시해주는 위젯"입니다. - ViewHolder : 항목에 필요한 뷰 객체를 가진다. - Adapter : 항목을 구성한다. - LayoutManager : 항목을 배치한다. - ItemDecoration : 항목을 꾸민다. 목록의 뷰는 ViewHolder로 표현되며 각 ViewHolder는 View를 사용하여 각 항목을 표시하는 역할을 한다. ViewHolder 객체는 Adapter에서 관리하며 Adapter는 필요에 따라 ViewHol.. 2022. 4. 14.
[안드로이드] Toast 메시지 Toast 메시지 띄우기 1. Toast 클래스 Toast는 사용자를 위한 간단한 메시지가 포함된 메시지입니다. Toast 메시지가 표시되면 Focus를 받지 않고 애플리케이션 위에 잠시 동안 떠오릅니다. Toast 메시지를 사용하는 가장 간단한 방법은 Toast 클래스의 정적 메서드 중 하나를 호출하는 것입니다. - Public Methods: 반환 값 프로토타입 static Toast makeText(Context context, int resId, int duration) static Toast makeText(Context context, CharSequence text, int duration) makeText(getApplicationContext(), R.string.toast_message.. 2022. 4. 14.
[안드로이드] Android 개요 Android : 안드로이드는 구글에서 만든 스마트폰용 운영체제입니다. 운영체제와 미들웨어, 사용자 인터페이스, 애플리케이션, MMS 서비스 등을 하나로 묶어 서비스를 제공하며 다양한 애플리케이션을 만들어 설치하면 실행될 수 있도록 구성된 애플리케이션 플랫폼입니다. 많은 사람들이 iOS(애플 운영체제)에 견주어 스마트폰과 태블릿으로 안드로이드 운영체제를 사용하면서, 안드로이드는 세계 모바일 시장에서 가장 성공한 OS라는 평가를 받고있습니다. 안드로이드는 리눅스(Linux)를 기반으로 제작되었고 언어는 자바(java)를 사용합니다. 1. 안드로이드의 이해 : 안드로이드는 구글(Google)에서 만든 스마트폰 운영체제(OS, Operating System)이자 다양한 앱을 설치하여 실행할 수 있도록 구성된 .. 2022. 4. 13.
[안드로이드] 4대 컴포넌트 : 액티비티, 서비스, 콘텐츠 프로바이더, 브로드캐스트 리시버 안드로이드 컴포넌트 컴포넌트(Component)란 안드로이드 애플리케이션을 생성할 수 있도록 제공되는 구성 요소(building block)이다. 각각의 컴포넌트는 다른 진입점을 통하여 애플리케이션에 들어간다. 안드로이드 애플리케이션은 4개의 핵심 컴포넌트를 가지고 있으며 각 컴포넌트의 객체를 생성하고 제거하는 라이프사이클의 구조도 각각 다르다. 1. 액티비티(Activity) 1.1. 액티비티의 개요 액티비티는 사용자에게 보이는 단일 화면으로, android.app.Activity 클래스를 상속받아 생성하며 사용자와 상호 작용하는 UI를 제공한다. 액티비티는 시스템으로부터 애플리케이션이 시작되는 진입점 역할을 수행하며 안드로이드 애플리케이션은 1개 이상의 액티비티로 구성되어 있다. 액티비티는 화면에 표.. 2022. 4. 13.
[안드로이드][에러 처리] IllegalStateException: Can not perform this action after onSaveInstanceState IllegalStateException : 메서드가 불법적이거나 부적절한 시간에 호출되었음을 알립니다. java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState 재현 경로: Fragment의 onStop()에서 transacntion을 실행했을 때 위와 같은 Runtime Error가 발생이 된다. 원인: onSaveInstanceState()이 호출된 이후에 Fragment 전환이 발생한다면, onSaveInstanceState()을 통해 결정되는 복구 시점과 다르기에 해당 FragmentTransaction에 대해서는 복구할 수 없게 돼버립니다. 만약 이런 상황이 발생한다면 사용자 경험(UX)을 해치는 .. 2022. 4. 13.
다이어그램 프로그램 draw.io 업무를 하며 보고서를 작성하고 발표를 할 때 글로 가득한 자료들은 읽는 사람들의 피로감만 증가시킵니다. 그래서 필요한 것이 데이터 시각화입니다. 데이터 시각화 : 분석된 결과에 대해 쉽게 이해할 수 있도록 시각적으로 표현하고 전달할 수 있는 과정을 의미하며 도표나 흐름에 대한 정보를 명확하고 상대방에게 효과적으로 전달하기 위해 사용되는 방법입니다. 다이어그램과 플로우차트를 그릴 수 있는 무료 웹사이트를 소개하겠습니다. 먼저 웹사이트 입력창에 draw.io를 입력하세요. 그러면 아래와 같이 새로운 다이어그램을 만들거나 기존의 다이어그램을 불러올 수 있습니다. 1. Create New Diagram (새 다이어그램을 생성하기) 2. Open Exisiting Diagram (기존 다이어그램을 열기) ■ ch.. 2022. 4. 12.
[안드로이드][활용] Instagram oEmbed API Android App에 Instagram 게시물을 추가하기 위해선 oEmbed API 를 추가하는 작업이 필요합니다. Facebook 개발자 계정에 인스타그램 연동(개인: 소비자 유형 계정, 법인이나 단체: 비즈니스 유형 계정)이 필요합니다. Instagram oEmbed API : Instagram oEmbed 엔드포인트를 쿼리 하여 게시물의 포함된 HTML과 기본 메타데이터를 가져오고 다른 웹사이트나 앱에 게시물을 표시하기 위한 API.(사진, 동영상 등 지원) ● 요구 사항 - Facebook 개발자 계정 - 액세스 토큰 - oEmbed 읽기 기능에 대한 앱 검수 ● 절차 1. Facebook 개발자 계정에 앱 등록 2. Instagram 비즈니스 계정 연결 3. 앱 검수 4. 클라이언트 토큰 발급.. 2022. 4. 12.
728x90