일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 북한살둘레길
- 한단어의힘
- 커스텀린트
- 아비투스
- 소프시스
- 지지않는다는말
- 베드트레이
- 끝말잇기
- 테트리스
- 한달독서
- 좌식테이블
- 베드테이블
- 한달어스
- 한달브런치북만들기
- 재택근무
- 브런치작가되기
- 소프시스 밤부 좌식 엑슬 테이블
- 1일1커밋
- 프래그먼트
- T자형인재
- 슬기로운 온라인 게임
- 면접
- 안드로이드
- 캐치마인드
- 리얼하다
- 자취필수템
- 어떻게 나답게 살 것인가
- 목적 중심 리더십
- 목적중심리더십
- 함수형 프로그래밍
- Today
- Total
목록분류 전체보기 (351)
정상에서 IT를 외치다
안녕하세요. 블랙진입니다. 안드로이드 아키텍처에 관한 순차적인 포스팅을 진행하고자 합니다. 이전에 깃허브 API를 사용한 아키텍처를 포스팅 했었지만 클린아키텍처를 공부하면서 Naver API를 사용한 신규 프로젝트를 만들어 보았습니다. 기존 프로젝트가 어떻게 변화되어 가는지 과정을 함께 보면서 아키텍처를 적용하면 어떤 점이 좋아지는 지를 알아보겠습니다. CleanArchitecture 출처 : Clean Coder Blog 유사한 관심들을 레이어로 나눠 위 그림같이 배치한게 Uncle Bob이 언급한 클린아키텍처입니다. 물론 위 글은 2012년도 글이며 현대 트렌드에 맞게 변화가 있었지만 그 생각의 본질은 동일합니다. 바로 각 레이어는 안으로만 의존성을 향하고 있다. 즉 단방향 디펜던시를 가지는 구조로 ..
2019 네이버 테크 콘서트 - (링크)안드로이드 개발자 로드맵 키워드 별로 내용을 공부히기 위해 정리한 포스팅입니다. 기본기 DB + OS + Network + Algorithm + Data Structures 네트워크 추천 서적 - 리눅스, 윈도우 IO 통지 모델의 메커니즘 이해 - 책 : Unix Network Programming 안드로이드 API 사용법 검색 순서 1. Android Developer 2. Android Developer Medium, Blog 3. Android Cliffnotes 4. 구글링 View 기반으로 이해하기 - Tools - Layout Inspector 비동기 - Android Developer Docs - Core topics - Activities - Proc..
안녕하세요. 블랙진입니다.오늘은 안드로이드 위젯 중 기본이 되는 스피너 사용법에 대해 살펴보겠습니다. 1. 스피너란? 여러개의 값 중 1개를 선택하기 위해 사용하는 안드로이드 에서 제공해주는 기본 위젯 입니다. 2. 구현해보자 1) xml 그리기 가로 300dp 크기의 Spinner을 생성해 주었습니다. 2) 배열을 선언하자 배열을 선언하여 가져오는 두가지 방법이 있습니다. 2-1) 코드로 아이템0 ~ 아이템4 까지 5개의 배열을 선언해줍니다.val items = arrayOf("아이템0","아이템1","아이템2","아이템3","아이템4") 2-2) xml 을 이용한 방식 다음 방법은 res 폴더에서 배열을 생성하는 방법입니다. 저는 array.xml 이라는 폴더를 생성해 주었습니다 array.xml 안..
안녕하세요. 블랙진입니다.책 HeadFirstDesignPattern 을 보며 코드를 Kotlin 으로 바꿔가며 공부한 내용입니다. 컴파운드 패턴 두 개 이상의 패턴을 결합하여 일반적으로 자주 등장하는 문제들에 대한 해법을 제공합니다. 즉 일련의 패턴을 함께 사용하여 다양한 디자인 문제를 해결하는 것을 컴파운드 패턴이라고 부릅니다. 즉 패턴으로 이루어진 패턴인 셈이죠. 패턴 섞어 쓰기 - 하나의 디자인 문제를 해결하기 위해 여러 패턴을 함께 사용하는 경우가 종종 있습니다.- 컴파운드 패턴이란 반복적으로 생길 수 있는 일반적인 문제를 해결하기 위한 용도로 두 개 이상의 패턴을 결합해서 사용하는 것을 뜻합니다. 오리와의 재희 1. 우선 Quackable 인터페이스를 만듭니다.interface Quackabl..
안녕하세요. 블랙진입니다. 넌 무엇이더냐? 세번째 시리즈로 이번에는 Context에 대해 알아보겠습니다. 지난 시리즈 Thread 넌 무엇이더냐?Handler 넌 무엇이더냐? Context? Interface to global information about an application environment. This is an abstract class whose implementation is provided by the Android system. It allows access to application-specific resources and classes, as well as up-calls for application-level operations such as launching activiti..
안녕하세요. 블랙진입니다.책 HeadFirstDesignPattern 을 보며 코드를 Kotlin 으로 바꿔가며 공부한 내용입니다. 프록시 패턴 어떤 객체에 대한 접근을 제어하기 위한 용도로 대리인이나 대변인에 해당하는 객체를 제공하는 패턴 프록시가 접근을 제어하는 몇가지 방법 1. 원격프록시를 써서 원격 객체에 대한 접근을 제어할 수 있습니다.2. 가상 프록시를 써서 생성하기 힘든 자원에 대한 접근을 제어할 수 있습니다.3. 보호 프록시를 써서 접근 권한이 필요한 자원에 대한 접근을 제어할 수 있습니다. 프록시 패턴을 이용하면 원격 객체라든가 생성하기 힘든 객체, 보안이 중요한 객체와 같은 다른 객체에 대한 접근을 제어하는 대변자 객체를 만들 수 있습니다. 원격 프록시 원격 프록시는 다른 JVM에 들어..
안녕하세요. 블랙진입니다.리엑티브 연습 포스팅입니다. conact 여러 옵저버블의 데이터를 이터러밍 없이 발행해 줍니다. 즉 순서를 보장해 주는 오퍼레이터 입니다. 언제 사용할까요? 여러 API를 통신했을 때 순차적으로 처리가 필요한 경우에 사용합니다. 한 예로 사용자 정보를 가져오고 가져온 정보를 사용해 두번 째 api를 통신해야 되는 상황에서 사용하면 좋습니다.(다시 생각해보니 이 상황에서는 concatMap이 더 어울릴 것 같네요 ㅎㅎ) 예제val temp1 = true val temp2 = "BlackJin" val temp3 = arrayOf(1,2,3,4,5) val api1 = Single.just(temp1).delay(300, TimeUnit.MILLISECONDS) // 300ms 후 ..
안녕하세요. 블랙진입니다.리엑티브 연습 포스팅입니다. 이터러밍 상황에서 flatMap, concatMap, switchMap 어떻게 동작되는지 살펴보겠습니다. FlatMap 새로운 Observable 흐름을 만들어 주며 데이터의 흐름은 보장되지 않습니다.val balls = listOf("하나", "둘", "셋") Observable.interval(100L, TimeUnit.MILLISECONDS) .map(Long::toInt) .map { id -> balls[id] } .take(balls.size.toLong()) .flatMap { ball -> Observable.interval(200, TimeUnit.MILLISECONDS) .map { "$ball ☆" }.take(2) } .subsc..
안녕하세요. 블랙진입니다.리엑티브 연습 포스팅 입니다. Subject AsyncSubject onComplete() 호출 되기 직전의 아이템만을 받습니다. 즉 마지막 데이터만 받아옵니다. val asyncSubject = AsyncSubject.create().apply { onNext("0") subscribe { data -> println("Subscriber #1 -> $data") } onNext("1") onNext("2") subscribe { data -> println("Subscriber #2 -> $data") } onNext("3") onNext("4") } asyncSubject.onComplete()결과Subscriber #1 -> 4Subscriber #2 -> 4 Behavi..
안녕하세요. 블랙진입니다.리엑티브 연습 포스팅 입니다. Observablepublic abstract class Observable implements ObservableSource Observable은 ObservableSource를 구현하고 있습니다. Observable을 생성할 때는 인스턴스를 직접 만들지 않고 정적 팩토리 함수를 호출합니다. 그렇게 기본 적인 just()에서 부터 정말 다양한 팩토리 함수를 가지고 있습니다. Observable은 세 가지 상태를 구독자에게 전달합니다. onNext 데이터 발행을 알려줍니다. onComplete 1. 모든 데이터가 발행되었음을 알려줍니다. 2. onComplete 이후에는 onNext는 발생하지 않습니다. 3. dispoes()는 Observable에..