본문 바로가기

Develop26

[안드로이드 개발자를 위한 Kotlin(코틀린) 제대로 배우기 Part.1_기초2-2 [안드로이드 개발자를 위한 Kotlin(코틀린) 제대로 배우기 Part.1_기초2-2 [11장에서 20장까지] 예외처리 Try catch finally~ 사용자가 고의로 예외를 발생시켜 던짐 Throw Throwable 타입 표현식 Nothing 함수의 반환 타입이 Nothing이면 컴파일러가 정상 종료 되지 않는 함수임을 미리 알 수 있음 Nullable 타입 - 자바는 모든 참조타입에 null을 지정할 수 있음 코틀린은 nullable 타입이 아니면 null을 지정할 수 없음 (?는 Nullable 타입 연산자) - Nullable 타입은 힙 영역에 저장됨 엘비스 연산자 활용하기 - ?.(safe call opeerator) : 안전한 호출 연산자 일반적인 프로그래밍에서는 if else문으로 null.. 2020. 8. 24.
[안드로이드 개발자를 위한 Kotlin(코틀린) 제대로 배우기 Part.1_기초2 [안드로이드 개발자를 위한 Kotlin(코틀린) 제대로 배우기 Part.1_기초2 [1장에서 10장까지] 생성자 Constructor 키워드 생략가능 ${인스턴스.변수명} -> 변수의 값 참조 Init 인스턴스 생성시 바로 초기화 한다는 보장은 없지만 여러개 생성 가능. 위에서부터 아래로 수행이 됨 보조 생성자 Constructor(,) : this () This 주 생성자 호출 후 보조 생성자가 수행이 됨 Getter / Setter 프로퍼티의 Getter / Setter Val 프로퍼티는 Getter 만 가능 연산자 오버로딩 단항 연산자, 이항 연산자 등 Operator fun “정의할 오버로딩 연산자명” 작성 접근연산자, invoke 연산자 [] indexed Access () 함수 호출 연산자 함.. 2020. 8. 9.
RxJava 프로그래밍3 제 7장, 디버깅과 예외 처리 디버깅 doOnNext, doOnComplete, doOnError 함수 doOnEach 함수 : notification 객체를 전달받아서 이벤트별로 처리 doOnSubscribe, doOnDispose, doOnLifeCycle(doOnSubscribe, doOnDispose 모두 호출) doOnTerminate : onComplete or OnError 이벤트 발생 직전에 실행하는 함수 예외처리 onErrorReturn : 예외 발생이 예상되는 부분을 선언하여 처리. Observable을 생성하는 측과 구독하는 측이 서로 다를 수 있다는 점에서 구독자는 Observable에서 발생할 수 있는 예외를 구독한 이후에 모두 파악하기가 어려움. Observable을 생성하는 측.. 2020. 7. 20.
[안드로이드 개발자를 위한 Kotlin(코틀린) 제대로 배우기 Part.1_기초1 [11장에서 20장까지] 함수 사용하기 함수: 명령어들을 담는 상자 For : in 1..10, in 1 until 10 , step, downTo 키워드 제공 Unit 타입, 디폴트 인수 Fun aa(x : Int) = x * 1.2 + 20 Unit : 반환형이 없는 타입 ( = Void ) 한 줄 짜리 함수는 반환 타입 없이 =로 작성 가능하다 디폴트인수 : 매개변수 값 지정하거나 디폴트 값을 설정 가능하다 (자바에는 있을 수 없지!) 가변인수, 오버로딩 가변인수 : varage 키워드로 개수가 정해지지 않은 매개변수를 사용 일반 변수와 같이 사용시 오른쪽에는 가변인수 함수 시그니처 : 매개변수 타입, 개수가 같으면 안됨 오버로딩 : 같은 이름의 함수를 매개변수를 다르게 여러개 정의하는 것 지역변수.. 2020. 5. 16.
RxJava 프로그래밍2 제 5장, 스케줄러 뉴 스레드 스케줄러 : Schedulers.newThread(), 특수한 상황에서만 사용 권장 계산 스케줄러 : interval() 함수, 스레드 개수가 기본적으로 프로세서 개수와 동일 IO 스케줄러 : 네트워크상의 요청을 처리하거나 각종 입출력 작업을 실행하기 위한 스케줄러, 기본적으로 생성되는 스레드 개수가 다름. Schedulers.io() 트램펄린 스케줄러 : 새로운 스레드를 생성하지 않고 현재 스레드에 무한한 크기의 대기행렬을 생성함, 큐에 작업을 놓은 후 1개씩 꺼내어 동작하므로 첫 번째 구독과 두 번째 구독의 실행 순서가 바뀌는 경우는 발생 하지 않는다. Schedulers.trampoline() 싱글 스레드 스케줄러 : 단일 스레드만 사용, 리액티브 프로그래밍에서는 싱글.. 2020. 5. 3.
[안드로이드 개발자를 위한 Kotlin(코틀린) 제대로 배우기 Part.1_기초1 [1장에서 10장까지] 코틀린 기초 2017년 공식 언어로 채택 JAVA의 대체 언어로 떠오름 자바 프로젝트를 코틀린으로 개발하는 추세 JVM 위에서 동작, 간결하고 자유롭다 개발 환경 구축 JDK 1.8 설치 환경 설정 인텔리J 설치 Ultimate 코틀린 코드 작성하기 문자열 찍기 변수 var 표현식과 키워드 원시 타입이 없고 클래스 타입이 기본이다. 변수와 연산자 상수 val 산술 연산자 증감 연산자 후위 연산자 데이터 타입(숫자) Byte Int(4 Byte), Long(8 Byte) - 정수형 Double(8 Byte), Float(16 Byte) - 실수형 데이터 타입(문자) Char : 한 글자를 담는 바이트 유니코드 2바이트 \u String : 문자열 나열 $문자열변수 : 값 참조 whe.. 2020. 5. 3.
RxJava 프로그래밍 1 RxJava 프로그래밍 제 1장, 리액티브 프로그래밍 소개 기존의 PULL방식의 프로그래밍 개념을 PUSH 방식의 프로그래밍 개념으로 바꾼다. 함수형 프로그래밍의 지원을 받는다. 동시성을 적극적으로 끌어안을 필요가 있다. 마블다이어그램 제 2장, Observable 처음 만들기 Observable, Maybe, Flowable Observable 클래스는 옵저버 패턴을 구현한다. 다양한 팩토리 함수를 가지고 있다. RxJava 1.x 기본 팩토리 함수 : create, just, from RxJava 2.x 기본 팩토리 함수 : fromArray, fromInterable, fromCallable, fromFuture, fromPublisher Single Class : 발행과 동시에 종료됨 Maybe .. 2020. 2. 22.
개발자가 반드시 정복해야 할 객체 지향과 디자인패턴 2 Part3. 주요 디자인 패턴 GOF의 디자인패턴 전략패턴/ 템플릿 메서드 패턴 / 상대패턴 데코레이터 패턴 / 프록시 패턴 / 어댑터 패턴 옵저버 패턴 / 미디에이터 패턴 / 파사드 패턴 추상팩토리패턴 / 컴포지턴 패턴 널(Null) 객체 패턴 전략(Strategy) 패턴 완전히 동일한 기능을 제공하지만 성능의 장단점에 따라 알고리즘을 선택해야 하는 경우에도 전략 패턴을 사용한다. 일반적으로 if-else로 구성된 코드 블록이 비슷한 기능(비슷한 알고리즘)을 수행하는 경우에 전략 래턴을 적용함으로써 코드를 확장하도록 변경할 수 있다. Ex) 첫 손님 할인 정책과 저녁 시간대에 신선도가 떨어진 과일에 대한 덜 신선한 과일 할인 정책에 대한 가격 계산 모듈 탬플릿 메서드(Template Method) 패턴.. 2020. 2. 22.
개발자가 반드시 정복해야 할 객체 지향과 디자인패턴 1 개발자가 반드시 정복해야 할 객체 지향과 디자인패턴 Part1. 객체지향 클래스 구조도 공통의 기능 단위를 추출 절차 지향 : 프로시저를 이용한 프로그래밍 방법 / 데이터를 공유 객체 지향 : 객체를 이용한 프로그래밍 방법 / 데이터와 관련된 프로시저를 객체 단위 객체의 책임과 크기는 작을 수록 좋다 의존 : 의존하고 있는 코드나 타입에 영향을 준다. (UML 참고) 캡슐화 : 기능 구현을 캡슐화하여 내부 구현이 변경되더라도 다른 영향을 최소화 상속 : 기능을 확장해서 새로운 기능을 구현할 때 사용 다형성 : 타입 상속을 통해서 다형성을 구현, 다중 상속을 위해서는 interface를 이용 추상 타입과 유연함 : 추상화가 되어 있지 않은 코드는 주로 동일 구조로 갖는 if-else 블록으로 드러난다. 요.. 2020. 2. 22.
이것이 자바다 - NIO 기반 입출력 및 네트워킹 이것이 자바다 - NIO 기반 입출력 및 네트워킹 NIO 자바4에서부터 java.nio 패키지에 포함됨 자바7에서 비동기 채널 등의 네트워크 지원을 대폭 강화하면서 NIO.2 API를 추가함 NIO는 채널 기반이다. 스트림과 달리 채널은 양방향으로 입출력이 가능하다. NIO는 기본적으로 버퍼를 사용해서 IO보다는 입출력 성능이 좋다. IO는 블록킹 된다면 NIO는 블로킹과 논블로킹 둘다 지원. 블로킹은 인터럽트가 지원됨. 대용량 데이터를 전송하는 경우는 IO, 연결 클라이언트가 많고 입출력 처리가 작은것은 NIO을 권장 파일과 디렉토리 Paths.get() : 파일의 경로 반환 FileSystems.getDefault() : 파일 시스템 정보 반환 Files : 파일 속성 읽기, 파일 및 디렉토리 생성/.. 2020. 2. 22.
반응형