본문 바로가기
[Java8 In Action] #15 OOP 와 FP 의 조합 : 자바8과 스칼라 비교 [Java8 In Action] #15 OOP 와 FP 의 조합 : 자바8과 스칼라 비교 Java8 In Action 내용을 보며 정리한 내용입니다.정리자는 기존에 Java8 을 한차례 rough 하게 공부한 적이 있고, Kotlin 역시 공부한 적이 있습니다.위의 prerequisite 가 있는 상태에서 추가적인 내용만 정리한 내용이므로, 제대로 공부를 하고 싶다면 책을 구매해서 보길 권장합니다! -스칼라는 객체지향과 함수형 프로그래밍을 혼합한 언어다.스칼라는 자바에 비해 많은 기능을 제공한다.스칼라는 복잡한 형식 시스템, 형식 추론, 패턴 매칭, 도메인 전용 언어를 단순하게 정의할 수 있는 구조 등을 제공한다.스칼라 코드에서는 모든 자바 라이브러리를 사용할 수 있다. 자바8과 마찬가지로 스칼라는 컬렉.. 2019. 1. 4.
[Java8 In Action] #10 null 대신 Optional [Java8 In Action] #10 null 대신 Optional Java8 In Action 내용을 보며 정리한 내용입니다. 정리자는 기존에 Java8 을 한차례 rough 하게 공부한 적이 있고, Kotlin 역시 공부한 적이 있습니다. 위의 prerequisite 가 있는 상태에서 추가적인 내용만 정리한 내용이므로, 제대로 공부를 하고 싶다면 책을 구매해서 보길 권장합니다! 10.1. 값이 없는 상황을 어떻게 처리할까? 10.1.1. 보수적인 자세로 NullPointerException 줄이기 10.1.2. null 때문에 발생하는 문제 - 에러의 근원이다. : NullPointerException 은 자바에서 가장 흔히 발생하는 에러다. 코드를 어지럽힌다 : 중첩된 null 확인 코드. 아무 .. 2018. 12. 30.
[Effective Objective-C] #48 반복문에는 블록 열거를 사용하라 [Effective Objective-C] #48 반복문에는 블록 열거를 사용하라 출처 : Effective Objective-C -최신 오브젝티브-C 에는 열거하는 방법이 많다.표준 C 반복문부터 오브젝티브-C 1.0의 NSEnumerator, 그리고 오브젝티브-2.0 의 빠른 열거자(fast enumeration)도 있다. for 루프 -컬렉션을 열거하는 첫 번째 메서드는 훌륭하고 오래된 방법인 for 루프다.NSArray *anArray = …;for (int i=0; i < anArray.count; i++){ id object = anArray[i]; // do something} 이 방법은 쓸만하지만 사전이나 집합을 반복하면 훨씬 복잡해진다.NSDictionary *aDictionary = ….. 2017. 10. 15.
[Kotlin Tutorial] Operator overload 와 convention #2 [Kotlin Tutorial] Operator overload 와 convention #2 출처 : Kotlin in action 7.3. Destructuring declarations and component functions -val p = Point(10, 20)val (x, y) = p // destructuringprintln(x)println(y) -destructuring 도 convention 을 사용한다.componentN 이 호출된다. ( N 은 숫자 )val (a, b) = p // val a = p.component1()// val b = p.component2() -data class 는 compiler 가 primaryConstructor 에 정의된 모든 property 에 .. 2017. 8. 29.
[iOS Study] 병렬 프로그래밍 가이드 ( dispatch source ) [iOS Study] 병렬 프로그래밍 가이드 ( dispatch source ) https://developer.apple.com/library/ios/documentation/General/Conceptual/ConcurrencyProgrammingGuide/GCDWorkQueues/GCDWorkQueues.html#//apple_ref/doc/uid/TP40008091-CH103-SW1 About dispatch source -dispatch source 는 low-level system event 를 처리하기 위한 data type 이다. -Timer dispatch source 는 주기적인 noti 를 만든다. -Signal dispatch source 는 UNIX signal 이 도착하면 not.. 2017. 7. 3.
[git] 자주쓰는 branch 와 checkout 명령어들 [git] 자주쓰는 branch 와 checkout 명령어들 > git branch// local branch 를 볼 수 있다. > git branch -r// remote branch 를 볼 수 있다. > git branch -a // remote 와 local 모두 볼 수 있다. > git checkout [branchName] // 해당 branchName 으로 checkout 한다. // Remote branch 의 경우에는 Detached HEAD 상태라 이 녀석을 modify 하지는 못 한다. // 참고로 remote branch 는 보통 origin/branchName 의 형태를 갖는다. > git checkout -b [newBranchName] [branchName] // branchNa.. 2017. 5. 26.
[Android] Ok Google [Android] Ok Google # 안드로이드 단말의 화면이 켜져 있거나, 충전 중이면 "Ok Google" 이라고 외쳐보자. Ok Google 이라고 외치면 마이크 interface 가 나오고, 음성을 분석해서 원하는 정보를 찾아준다. # 이 Ok Google 은 KitKat 이상의 버전에서 작동을 한다. Google Search app version 3.5 이상이 필요하며, 해당 앱의 setting 에서 "Ok Google" detection 을 "From any screen" 으로 하면 된다. # 만약 더 높은 인식률을 갖게 하려면, Audio History 를 켜는 것이 좋다. Audio History 를 켜고 "Ok google" 을 3번 외치면, 조금 더 높은 인식률을 보여준다. 만약 단말.. 2016. 4. 9.
[iOS Study] 지역화 [iOS Study] 지역화 출처 : 아론 힐리가스의 iOS 프로그래밍 -국제화(internationalization)은 각 나라의 고유 문화 정보를 앱에 하드 코딩 없이 적용하는 것이다.(문화적 정보는 언어, 통화, 날짜 포맷, 숫자 포맷 등을 뜻한다.) -지역화(localization) 은 사용자의 언어와 지역 포맷 설정을 기반으로 앱에 적절한 데이터를 제공하는 과정이다.이러한 설정은 설정 앱에서 찾을 수 있다.[일반] 항목에서 [다국어] 열을 선택하면 된다. -internationalization 은 i18n 으로localization 은 l10n 으로 축약해서 쓰기도 한다. -국제화는 NSDateFormatter 와 같은 Formatter 를 사용해서 구현한다.NSDateFormatter 는 사용.. 2016. 3. 17.
[iOS Study] 자동 회전, 팝오버 컨트롤러, 모달 뷰 컨트롤러 [iOS Study] 자동 회전, 팝오버 컨트롤러, 모달 뷰 컨트롤러 출처 : 아론 힐리가스의 iOS 프로그래밍 -이 장에서는 아래의 주제를 다룬다. 장치 의존적인 코드를 작성하는 방법과 장치의 종류에 따라 테스트하는 방법 회전, 팝오버 컨트롤러, 모달 뷰 컨트롤러 -iOS 에서는 방향을 장치방향 (device orientation) 과 인터페이스 방향(interface orientation) 두 가지로 구분한다. -장치 방향은 장치 표면이나 후면에서 정방향, 뒤집힌 상태, 왼쪽 회전, 오른쪽 회전인지에 따른 물리적 방향을 나타낸다.UIDevice 클래스의 orientation 프로퍼티를 통해 장치의 방향에 접근할 수 있다. -인터페이스 방향은 실행 중인 프로그램의 프로퍼티이다. UIInterfaceOr.. 2016. 3. 5.
반응형