Programming 개발은 구글로187 [RxJava] Completable 개념 이해 Completable 1. 개념 Completable은 데이터를 발행하는 Observable, Single, Maybe와 달리 데이터 발행의 완료/에러 신호만 보내는 특수한 형태이다. 따라서 데이터 발행의 완료를 알리는 onComplete와 에러 발생을 알리는 onError 2가지 알림을 보낸다. onComplete : 데이터 발행이 완료됐음을 알림 onError : 에러가 발생했음을 알림 2. 예제 Completable은 just 연산자가 없으므로 create 연산자나 fromXXX를 통해 생성한다. 예제를 보면, Completable은 데이터 없이 완료했다 / 에러가 발생했다는 결과만 전달하고 종료한다. Completable completed = Completable.create(new Complet.. 2022. 6. 13. [RxJava] Maybe 개념 이해 Maybe 1.개념 Maybe도 Observable의 또 다른 형태이다. Maybe는 최대 데이터 하나를 발행할 수 있으며 추가로 데이터 없이도 완료할 수도 있다. Single에 onComplete가 추가된 형태로, 총 3가지 알림을 보낸다. onSuccess : 데이터 하나를 발행함과 동시에 종료 onError : 에러가 발생했음을 알림 onComplete : 데이터 발행이 완료됐음을 알림 2. 예제 Maybe도 Observable이나 Single과 같이 just와 create 연산자가 존재한다. 예제에서는 create를 통해 Maybe를 생성하였다. Maybe.create(new MaybeOnSubscribe() { @Override public void subscribe(@NonNull MaybeE.. 2022. 6. 12. [안드로이드] Caused by: java.lang.AssertionError: Could not delete caches dir yourProject\build\kotlin\compileDebugTestingKotlin 에러 java.lang.AssertionError 에러 Android App 개발 중에 빌드 시 아래와 같은 에러가 발생이 된다면, Caused by: java.lang.AssertionError: Could not delete caches dir yourProject\build\kotlin\compileDebugTestingKotlin 작업 관리자(Ctrl+Shift+Delete) - 세부 정보 Tab에서 java.exe 파일을 작업 끝내기로 제거하시면 됩니다. 참조 글: https://stackoverflow.com/questions/65832868/caused-by-java-lang-assertionerror-could-not-delete-caches-dir-yourproject-bui 2022. 6. 11. [파이썬] 웹 크롤링 및 스크랩핑 주의사항 웹 크롤링 및 스크랩핑 시 주의사항 1. 웹 크롤링 권한 확인(robots.txt) - 다음(Daum) User-agent: * Disallow: / 모든 봇들에 대해서 "/" 접근을 차단한다는 뜻입니다. - 네이버(Naver) User-agent: * Disallow: / Allow : /$ ※ Allow: / : 모든 봇들에 대해서 모든 페이지에 접근이 가능하다는 뜻입니다. - 구글(Google) # AdsBot User-agent: AdsBot-Google Disallow: /maps/api/js/ AdsBot-Google 봇만 /maps/api/js/ 접근할 수 없다는 뜻입니다. 즉 특정 봇들에 대해서도 접근 차단이 가능합니다. 2. 크롤러 분류 상태 유무 - 로그인등의 상태 확인 Javascri.. 2022. 6. 10. [파이썬] 웹 크롤링 vs 웹 스크랩핑 웹 크롤링 vs 웹 스크랩핑 1. 웹 크롤링(Crawling) 방대한 범위에서 데이터를 정해진 규칙대로 수집, 데이터의 양을 우선으로 한다. 웹 크롤러(자동화 봇)가 일정규칙으로 웹페이지 탐색 ※ 웹 크롤러: 사이트나 네트워크가 제공할 수 있는 것을 끝없이 탐색하면서 스스로 웹 페이지를 탐색할 수 있는 프로그램 2. 웹 스크랩핑(Scraping) 작은 범위에서 타켓이 되는 데이터를 명확하게 수집한다. 웹 사이트 상에서 원하는 정보를 추출하는 기술로 특정 웹 사이트 또는 페이지에서 특정 정보 검색 🟩 크롬 개발자 도구 크롬 오른쪽 상단 더보기 탭 - 도구 더보기 - 개발자 도구(Ctrl+Shift+i) CSS Selector - Elements Tab HTTP 처리과정 - Network Tab 2022. 6. 9. [안드로이드][활용] 비즈니스 계정으로 게시물 가져오기 Meta for Developers에서 비즈니스 계정 App을 통해서 Instagram 최신 게시물을 가져오도록 하겠습니다. 우선적으로 내 앱 탭을 통해서 현재 등록된 관리자 앱을 확인합니다. 비즈니스 유형으로 된 App을 들어가서 Instagram 그래프 API 항목을 있으면 됩니다. ※앱 검수 항목에서 Oembed Read 기능은 앱 검수 승인이 되어 있어야 합니다. 이제부터 게시물을 가져오도록 하겠습니다. 1. 권한 요청 instagram_basic pages_show_list 2. 사용자 액세스 토큰 받기 - 도구 탭 - 그래프 API 탐색기로 이동 Generate Access Token으로 사용자 액세스 토큰을 생성하시면 됩니다. 3. 사용자 페이지 가져오기 Get /me/accounts or .. 2022. 6. 9. [RxJava] Single 개념 이해 Single 1. 개념 Single은 Observable의 변형된 형태이다. Observable과 비슷하지만, 여러 개의 데이터를 발행할 수 있는 Observable과 달리 Single은 한 개의 데이터(혹은 에러)만을 발행한다. Observable은 3가지 알림을 보내는 반면, Single은 onSuccess, onError 2가지의 알림을 보낸다. onSuccess : 데이터 하나를 발행함과 동시에 종료 onError : 에러가 발생했음을 알림 RxJava (and its derivatives like RxGroovy & RxScala) has developed an Observable variant called “Single.” A Single is something like an Observabl.. 2022. 6. 5. C++ 객체 지향 프로그래밍 절차 지향 프로그래밍 vs 객체 지향 프로그래밍 1. 절차 지향 프로그래밍(Procedural Programming) 절차 지향 프로그래밍이란 실행하고자 하는 절차대로 일련의 명령어를 나열하여 프로그래밍하는 방법이다. 작업을 절차로 표현하여 명령들의 순서나 흐름에 중점을 둔다. 절차 지향 프로그래밍은 흐름도 를 설계하여 흐름도 상의 동작들을 함수로 작성 후 흐름도에 따라 동작이 실행되도록 작성한다. 2. 객체 지향 프로그래밍 객체 지향 프로그래밍은 물체 간의 관계, 상호 작용 등으로 복잡하게 구성된 실세계에 가깝게 프로그래밍을 모델링한다. 실제 세계의 물체를 객체 로 표현하고, 객체들의 관계 와 상호 작용을객체 지향 기법으로 구현한다. C++는 객체 지향 개념을 도입하여 이미 만들어진 C++ 클래스를 상.. 2022. 6. 5. C# Data Type 데이터 타입 모든 변수에는 데이터 타입이 있고, 타입에 따라서 저장할 수 있는 값의 종류와 범위가 달라집니다. 데이터 타입 중에서도 기본 타입을 정리해봅니다.(C#에는 자바보다는 더 많은 데이터 타입이 있습니다.) Java Type C# Type Value boolean boolean True or false byte byte 8bit unsigned integer sbyte 8bit signed integer short short 16bit signed integer int int 32 signed integer long long 64 signed integer ushort 16bit unsigned integer uint 32bit unsigned integer ulong 64bit unsigned .. 2022. 6. 2. C#[WPF] 디자인 패턴 중 MVVM 패턴을 알아보자 MVVM 디자인 패턴 : MVVM(Model View ViewModel) MVVM 패턴은 Command 패턴과 Data Binding 2가지 패턴을 사용한다.(여기선 Data Binding 패턴으로 사용) ■ Model DataModel은 비즈니스 클래스로 구성된다. UI에 제공된 데이터를 갖고 있다. DataModel은 쉽게 단위 테스트가 가능하다. ■ View View는 UI이다. 이상적으로 View는 순수 Xaml로 구성된다. View는 자동화된 테스트를 사용해 테스트가 어렵기 때문에 View의 코드 양을 줄여야 하는 이유이다. View의 Datacontext는 ViewModel이다. ■ ViewModel ViewModel은 아래의 같은 기능을 담당한다. 하나의 뷰에 대한 메서드로 속성 및 액션을 .. 2022. 6. 1. [RxJava] 4. Observable의 종류 RxJava의 근간이 되는 Observable 클래스는 소프트웨어 디자인 패턴인 Observer Pattern(1)을 근간으로 되어 있습니다. (1) 옵서버 패턴(observer pattern)은 객체의 상태 변화를 관찰하는 관찰자들, 즉 옵서버들의 목록을 객체에 등록하여 상태 변화가 있을 때마다 메서드 등을 통해 객체가 직접 목록의 각 옵저버에게 통지하도록 하는 디자인 패턴이다. 주로 분산 이벤트 핸들링 시스템을 구현하는 데 사용된다. 발행/구독 모델로 알려져 있기도 하다. 참고글: 옵서버 패턴 Observable에는 데이터를 로딩하고 바로 그 로딩된 내용을 반영할 것인가(Hot Observable) 아니면 사용자의 요청이 있을 때까지 기다릴 것인가(Cold Observable)라는 의미의 2 종류가 .. 2022. 5. 31. [RxJava] 1. RxJava 란? 1. RXJAVA의 유래 RXJAVA는 요즘 많은 사람들이 자주 즐겨보는 넷플릭스에서 소개된 기술입니다. 2013년 2월에 처음으로 소개되었습니다. 당시 넷플릭스는 REST 기반의 서비스 API 호출 횟수와 서비스의 전반적인 성능을 개선하는 프로젝트를 진행하였으며, 그에 대한 결과물로 .NET 환경의 리액티브 확장 라이브러리를 JVM에 포함하여 RXJAVA를 만들었습니다. 참고 글: ReactiveX https://reactivex.io/intro.html 2. RXJAVA를 사용하는 이유 Android는 그동안 비동기를 처리할 때 AsyncTask API를 사용하였습니다. 하지만, Android API 30 이상부터 AsyncTask가 Deprecated(1)가 되었습니다. (1) Deprecaterd.. 2022. 5. 30. 이전 1 ··· 8 9 10 11 12 13 14 ··· 16 다음 728x90