본문 바로가기

전체 글163

이것이 자바다 - IO 기반 입출력 및 네트워킹 이것이 자바다 - IO 기반 입출력 및 네트워킹 자바에서 데이터는 스트림(Stream)을 통해 입출력되므로 스트립의 특징을 잘 이해해야 한다. 프로그램이 데이터를 입력 받을 때 입력 스트림(Input Stream)이라고 부르고 프로그램이 데이터를 내 보낼때에는 출력 스트림(Output Stream)이라고 부른다. InputStream 바이트 기반 입력 스트림의 최상위 클래스로 추상 클래스다. read 바이트를 읽을 수 없을때 -1를 반환 OutputStream 바이트 기반 출력 스트림의 최상위 클래스로 추상 클래스다. Write Reader 문자 기반 입력 스트림의 최상위 클래스로 추상 클래스다. read() : 입력 스트림으로부터 한개의 문자(2바이트)씩 읽는다. Writer 문자 기반 출력 스트림의 .. 2020. 2. 22.
Java9 Java10 특징 찾아보기 Java9부터 자바 릴리즈 주기를 6개월로 변경하여 매월 3월, 9월에 출시된다. JCP(Java Community Process) - 자바 기술 표준 기술 명세서를 개발하는 체제 JSR(Java Specification Requests Java) - 자바 플랫폼에 제안된 실제 명세서와 최종 결정된 명세서 JEP(JDK Enhancement Proposal) - Java Development kit과 OpenJDK를 향상 시키기 위해 제안들을 모으는 오라클의 밑그림 # Java9의 특징 새로운 툴인 JShell을 제공 모듈 시스템의 변화 직소 프로젝트(jigsaw project) Modular JDK Modular Java source Code Modular Run-Time Images Encapsula.. 2020. 2. 22.
이것이 자바다 - 스트림과 병렬처리 스트림 - 자바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.
반응형