본문 바로가기

All181

이것이 자바다 - 스트림과 병렬처리 스트림 - 자바8에 추가된 컬렉션의 저장 요소를 하나씩 참조해서 람다식으로 처리할 수 있게 해주는 반복자 스트림 특징 람다식으로 요소 처리 코드를 제공한다, 내부 반복자를 사용하므로 병렬 처리가 쉽다. 스트림은 중간 처리와 최종 처리를 할 수 있다. 병렬(parallel) 처리란 한 가지 작업을 서브 작업을 나누고, 서브 작업들을 분리된 스레드에서 병렬적으로 처리하는 것을 말한다. 스트림의 종류 Stream, IntStream, LongStream, DoubleStream 스트림 파이프라인 리덕션(Reduction) 대량의 데이터를 가공해서 축소하는 것 리덕션의 결과물로 바로 집계할 수 없을 경우 필터, 매핑, 정렬, 그룹핑 등의 중간 처리를 통해 결과물을 처리 할 수 있다. 리턴 타입이 스트림이라면 중.. 2020. 2. 22.
이것이 자바다 - 컬렉션 프레임워크 컬렉션 프레임워크 - 객체를 수집하고 저장하는 역할을 미리 정해 놓은 라이브러리 대표적으로는 List, Set, Map이 있다. List - 순서를 유지하고 저장, 중복 저장 가능 Set - 순서를 유지하지 않고 저장, 중복 저장 불가 Map - 키와 값의 쌍으로 저장, 키는 중복 저장 불가 List Collection ArrayList 인덱스로 객체를 관리하는 면으로 배열과 비슷 저장 용량을 초과한 객체들이 들어오면 자동적으로 저장 용량이 늘어난다. 객체의 삽입 삭제가 자주 일어나는 경우에는 LinkedList 사용을 권장 검색이나 객체를 마지막에 추가하는 경우에는 ArrayList가 더 좋은 성능을 발휘한다. Vector 동기화된 메소드로 구성이 되어있음 멀티 스레드 환경에서 안전하게 객체를 추가, .. 2020. 2. 22.
이것이 자바다 - 제네릭 & 람다 타입변환이 빈번해지면 프로그램 성능에 좋지 않다. 이를 위해 제네릭을 사용한다. 제네릭의 장점 컴파일 시 강한 타입 체크를 할 수 있다. 타입 변환을 제거한다. 제네릭의 특징 제네릭 타입은 두가지 class, interface 두 개 이상의 멀티 타입 파라미터를 사용할 수 있고, 각 타입 파라미터를 콤마로 구분 제네릭 메소드 : 매개 타입과 리턴 타입으로 타입 파타미터를 갖는 메소드 Public 리턴타입 메소드명(매개변수…){ } public Box boxing(T t) { … } Box box = boxing(100); Box box = boxing(100); 제한된 타입 파라미터 : extends 상위타입 와일드카드 타입 제네릭 타입의 상속과 구현 람다 자바8부터 람다식을 지원 람다식은 익명 함수를 .. 2020. 2. 22.
이것이 자바다 - 멀티 스레드 이것이 자바다- 멀티 스레드 프로세스- 운영체제에서 실행되는 하나의 어플리케이션 스레드 - 하나의 코드 실행 흐름 멀티 스레드- 두가지 이상의 스레드가 동작하는 것 작업 스레드 생성과 실행 Thread 클래스로부터 직접 생성 Runnable 매개값으로 갖는 생성자를 호출 Thread 하위 클래스로부터 생성 Thread를 상속한 후 run 메소드를 재정의 스레드의 이름 setName, getName을 통해 이름을 정의할 수 있음 기본적으로 생성되는 스레드의 이름은 “Thread-n” 스레드 우선순위 우선순위 방식과 순환 할당 방식 두가지가 있다 우선순위 방식은 우선순위가 높은 스레드 실행 상태를 더 많이 가지도록 스케줄링하는 것이고 개발자가 우선순위를 매겨 코드로 제어할 수 있다. 순환 할당 방식은 시간 .. 2020. 2. 22.
코틀린 Kotlin IN ACTION 1장. 코틀린 특징 정적 타입 지정 언어, 컴파일러가 문맥을 고려해 타입 추론을 함 함수형 프로그래밍을 지원 실용성 : 다른 언어에서 채택한 성공적인 검증과 해법, 기능에 의존하여 만듦 간결성 : 부가적인 준비 코드를 묵시적으로 제공하기 때문에 간결 안정성 : NullPointerException 을 사전에 감지하여 알림 2장. 코틀린 기초 함수 fun 식이 본문인 함수와 블록 본문인 함수 변경 가능한 변수(var)와 변경 불가능한 변수(val) Set/get 함수를 만들지 않고 기본 프로퍼티를 사용 Package, import - 자바와 비슷 Enum은 프로퍼티와 메소드를 정의할 수 있다 When은 switch 보다도 강력 스마트캐스트 3장. 함수 정의와 호출 Collec.. 2020. 2. 22.
이미지 가공 및 Base64 데이타 획득하기 이미지 관련 UIImage *img = [UIImage imageNamed:@"logo.png"]; CGFloat width = img.size.width; CGFloat height = img.size.height; 이미지를 갤러리에 저장 UIImageWriteToSavedPhotosAlbum(UIImage, self, nil, nil); info.plist에 NSPhotoLibraryAddUsageDescription key Add Base64 스트링 얻기 [NSMutableData* base64EncodedStringWithOption:0]; [NSData* base64EncodedStringWithOption:0]; [NSData* base64EncodedString]; 2020. 2. 12.
그 시절 자부심 열정 보다는 나의 그 시절은막막하지만 하고싶다고 말하는 내게 용기내어 본 나날들 그때 너무 힘들어서 아찔한 상상도 했었던 그 날의 내게 미안해서 가끔 그런 시기를 보내고 있을 누군가에게 따뜻한 위로 보낼 수 있길 그리고 지금 더 행복하게 이 길위에 서 있을수 있길 기도한다 오늘도 모두 화이팅! 2020. 1. 17.
2019 02.28지금 회사에 만족스러운 건 정말 다양한 사람들이 있다는 것이다. 함께 장애를 대응해야 하는 사람들이기도 하고 보고 생각하고 배울만한 사람들도 있다. 그리고 내가 도움이 된다는 사실에 기쁘기도 하고, 혼자서 할 게 많지만 대리라면 이것도 이겨낼 수 있지! 무엇보다 잘하고 싶은 마음을 갖게 해. 내 안의 그런 욕심들도 있었겠지만 뭔가 나를 좋게 봐주는 사람들 때문인 것 같다. 04.04끝까지 잘 부탁한다고 응원을 해주셨다. 지금처럼 한 것대로 하면 된다고, 조금은 걱정이 되지만 그래도 또 내 역량으로 못하는 것 말씀 드리고 그러면 된다고 조언까지. 그래도 이곳에 와서 본받을 만한 사람과 함꼐 한 것만으로도 충분한 가치 있는 시간이지. 나도 누군가에게는 괜찮은 좋은 선례가 될 수 있기를. 너무 욕심도.. 2020. 1. 12.
대세를 따라가기 위한 Study DI - @NonNull, @PrimaryKey, @ColumnInfo - @Query(질의문) - @Entity(tableName="") - Dagger Langauage - RxJava2 - RxAndroid Test - junit - mock - espresso Architecture components - room - ViewModel - RecyclerView, RecyclerView.ViewHolder 새롭게 알게 된 사실들 - Flowable : Observable 과 비교하는 개념, 수요보다 공급이 많을 때 이슈를 OOME(out of Memory Exception) 과 같은 에러 발생에 버퍼를 이용하여 대응하는 기능이라고 함.보통 1000개 이하의 요소를 처리시에는 Observable을 .. 2019. 12. 23.
APNS 푸시 인증서 갱신 및 테스트 테스트 프로젝트로 APNS 만들어보기 http://monibu1548.github.io/2018/05/29/push-cert/ 인증서 갱신 https://ddirty.tistory.com/50 https://medium.com/@developer.kuu/ios-push-%EC%9D%B8%EC%A6%9D%EC%84%9C-%EA%B0%B1%EC%8B%A0-2dadfeb18dc0 최신 리뉴얼된 애플 개발자 홈페이지에 스크린샷이랑 조금 다르지만 거의 비슷하다. 마지막에 2가지 파일을 내보내기하여 P12 파일을 만들고 암호를 입력해야하는데 이부분에 대해서는 정확하게 나와있지 않았다. 업체에 문의를 해보니 여기서 입력하는 암호는 실제 서버 담당자가 암호해제 후 푸시 인증서 파일을 서버에 등록하는 것 같다. 2가지 .. 2019. 12. 23.
반응형