분류 전체보기70 코틀린 익히기 11 - 컬렉션 프레임워크 컬렉션 프레임워크컬렉션 프레임워크는 배열처럼 다수의 데이터를 한 묶음으로 보관, 처리할 수 있는 구조를 의미합니다. 배열보다 많은 기능을 가지고 있어 자주 사용됩니다.jdk1.2에 등장했으며 자바는 컬렉션 프레임워크를 위한 다양한 인터페이스와 클래스들을 제공하고 있습니다. 인터페이스와 클래스들은 java.util 패키지에 포함되어 있으며 핵심 인터페이스는 List, Set, Map입니다. 사용하려면 해당 클래스를 import 해주어야 합니다.컬렉션 프레임워크의 큰 틀은 모두 인터페이스로 설계되어 있고 이를 구현한 클래스들을 인스턴스화해 사용합니다. 각 인터페이스와 클래스들의 주요 메서드 위주로 알아봅시다. 컬렉션 인터페이스의 구조도인터페이스특징List /MutableList순서가 있는 데이터의 집합으로.. 2023. 10. 4. 코틀린 익히기 10 - 배열 배열 Array배열자바의 배열은 같은 타입의 여러 데이터를 하나로 묶어 보관하는 구조였습니다. 하지만, 코틀린의 배열은 여러 가지 타입의 데이터를 묶을 수 있습니다. 데이터들은 Index라는 번호를 통해 구분됩니다. 배열 생성배열을 생성하는 여러 가지 방법이 있습니다. 배열은 한 번 생성되고 나면 그 길이를 수정할 수 없습니다. arrayOf(), arrayOfNulls() arrayOf()를 사용하면 배열을 직접 입력해 생성할 수 있습니다. arrayOfNulls()를 사용하면 null로 구성된 배열을 만들 수 있습니다.val|var 배열이름 = arrayOf(배열)val|var 배열이름 = arrayOfNulls(사이즈) val numbers = arrayOf(1, 2, 3, 4)// [1, 2,.. 2023. 10. 1. 코틀린 익히기 9 - 변성 Variance 코틀린 익히기 8 - 제네릭제네릭 제네릭은 jdk 1.5부터 도입되었습니다. 타입을 미리 지정하지 않고 컴파일할 때 체크할 수 있도록 하는 기능입니다. 미리 타입을 지정해 두면 타입을 형변환하거나 체크해야 하는 번거로devdharu.tistory.com지난 글 제네릭에 이어서 변성에 대해 살펴보겠습니다. 지난 글에서 설명드린 것처럼 제네릭의 다형성은 제한을 갖습니다. 대입된 타입이 상속관계라 할지라도 다형성이 성립되지 않았죠. 변성을 사용하면 이러한 제한을 해제할 수 있습니다. 변성은 어려운 개념입니다. 아직 이해하기 어렵다면 건너뛰셔도 좋습니다! 변성 Variance변성이란 형식 매개변수가 클래스 계층에 영향을 주는 것을 말합니다.어떻게 영향을 미치는지에 따라 공변성, 반공변성, 무변성으로 분류됩니.. 2023. 9. 30. 코틀린 익히기 8 - 제네릭 제네릭제네릭은 jdk 1.5부터 도입되었습니다. 타입을 미리 지정하지 않고 컴파일할 때 체크할 수 있도록 하는 기능입니다. 미리 타입을 지정해 두면 타입을 형변환하거나 체크해야 하는 번거로움이 있습니다. 제네릭을 사용하면 이와 같은 부담에서 벗어날 수 있습니다. 제네릭은 클래스와 메서드에 선언할 수 있습니다. 어떻게 선언하고 사용하는지 살펴봅시다. 제네릭에서 사용하는 형식 매개변수 관례E요소K키N숫자T형식V값 1. 제네릭 클래스제네릭 클래스는 형식 매개변수를 사용하는 클래스입니다.일반 클래스 Genericclass Generic (var property: Any?) { // 주 생성자 var variabe: Any? = null // 프로퍼티 constructor(property.. 2023. 9. 28. 코틀린 익히기 7 - 다양한 클래스와 인터페이스 코틀린의 다양한 클래스 - 추상 클래스, 데이터 클래스, 내부 클래스, 열거형 클래스, 실드 클래스추상 클래스 abstract class : 추상 프로퍼티, 추상 메서드, 일반 프로퍼티, 일반 메서드 abstract class 클래스명 ( /* 주생성자 */ ) { ... abstract (val|var) 프로퍼티명 : 자료형 abstract fun play()}추상 프로퍼티나 메서드가 하나라도 있다면 추상 클래스로 선언해야 합니다.추상 프로퍼티와 메서드는 선언만 합니다. 프로퍼티의 경우 초기화 하지 않고, 메서드의 경우 본문을 구현하지 않습니다. 추상 클래스와 추상 클래스의 프로퍼티, 메서드는 상속을 위해 open 키워드를 사용할 필요가 없습니다. 데이터 클래스 data classda.. 2023. 9. 27. 코틀린 익히기 6 - 프로퍼티와 object 프로퍼티지난 글에서 공부했던 프로퍼티에 대해 더 자세히 알아봅시다. 프로퍼티는 객체의 구성요소로서 객체가 가지는 데이터들을 뜻합니다.코틀린의 프로퍼티는 자동으로 게터와 세터가 생성되어 인스턴스.프로퍼티 로 객체에 접근하거나 값을 변경하는 것이 가능합니다.만약, 게터와 세터를 직접 지정하고 싶다면 다음과 같은 방법을 사용합니다.value : 외부로부터 받아온 값field : 프로퍼티를 참조하는 변수var 프로퍼티명: 프로퍼티타입 = 매개변수로 받아온 프로퍼티 get() = field set(value) { field = value } 지연 초기화 lateinit, lazy코틀린 익히기 2 - 자료형, 연산자에서 짧게 다뤘던 지연초기화를 기억하시나요? 생성과 동시에 초기화하기 어려운 경우 lateinit과.. 2023. 9. 25. 코틀릭 익히기 5 - 클래스와 객체 자바 쉽게 배우기 6 - 클래스와 객체의 도입부를 자바 > 코틀린으로 고쳐서 인용하겠습니다.이번글에서는 클래스와 객체에 대해 알아봅시다. 그전에 왜 코틀린에서는 클래스와 객체를 사용하는 지부터 살펴봅시다. 코틀린은 객체지향 프로그래밍 언어입니다. 객체가 무엇일까요? 넓은 의미에서 객체는 이 세상에 존재하는 모든 것들을 의미합니다. 형상이 있는 것과 없는 것 모두 객체가 될 수 있습니다. 컴퓨터에게 실제 세계를 이해시키기 위해서는 현실의 사물을 컴퓨터가 이해할 수 있는 방식으로 해석해 주는 과정이 필요합니다. 우리는 그 과정에서 객체를 사용하게 되죠. 철수라는 객체를 만들어 봅시다. 철수 객체에는 나이, 성별, 직업, 하는 행동 (블로그 포스팅, 개발, 유튜브 시청) 등의 정보가 포함되어 있습니다. 물.. 2023. 9. 21. 코틀린 익히기 4 - 함수형 프로그래밍 함수형 프로그래밍함수형 프로그래밍은 함수형 기능들을 사용해 변수의 사용을 최소화한 프로그래밍입니다. 코틀린은 함수형 프로그래밍이 가능한 언어로, 함수를 사용해 간략하고 우아한 프로그래밍을 할 수 있습니다.함수형 프로그래밍에서는 순수함수, 람다식, 고차함수를 다룹니다. 일단 코틀린에서 사용하는 함수의 문법부터 함수형 프로그래밍을 구현하는 방법까지 차근차근 알아가 보도록 합시다.함수 문법fun 함수명 ( 매개변수: 매개변수 타입, ... ): 반환타입 { ...} fun sum(a: Int, b: Int): Int { var sum = a + b return sum} 함수 코드 생략// {} 안의 코드가 한 줄일 경우 중괄호와 return문 생략 가능fun sum(a: Int, b: Int): Int .. 2023. 9. 20. 코틀린 익히기 3 - 조건문과 반복문 코틀린에서의 프로그램 흐름제어 방법에 대해 알아보겠습니다. 흐름 제어에는 조건문과 반복문이 사용됩니다. 범위 연산자 in조건문과 반복문에서 자주 사용되는 범위 연산자 in입니다. 변수가 시작값과 마지막값 사이 범위에 있는지 확인하여 true / false를 리턴합니다. 변수명 in 시작값..마지막값// 변수 >= 시작값 && 변수 = 시작값 && 변수 조건문if조건식이 성립할 경우 수행할 문장을 {} 블록 안에 적습니다. 조건에 해당하지 않을 경우 else if 조건식을 검사합니다. else if 조건식의 개수에는 제한이 없습니다. 모든 조건식에 해당하지 않을 때는 else {} 블록 안의 문장이 수행됩니다.else if와 else 블록은 생략할 수 있습니다.if (조건식) { ...} else if.. 2023. 9. 19. 자바 쉽게 배우기 22 - 입출력 스트림 스트림 스트림은 물줄기를 의미합니다. 입출력 스트림 또한 입출력을 위한 흐름을 의미합니다. 데이터는 출발지에서 목적지로 향합니다. 이 향하는 길을 이어주는 것이 입출력 스트림입니다. 프로그램이 입력을 받을 때 입력 스트림을, 프로그램에서 출력을 할 때 출력 스트림을 사용합니다. 입출력 스트림은 java.io 패키지에서 사용할 수 있습니다. 스트림은 바이트 단위의 전송이 이뤄지는 바이트 기반 스트림과 문자 단위의 전송이 이뤄지는 문자 기반 스트림으로 구분됩니다. 바이트 기반 스트림 바이트 단위의 데이터 전송이 이뤄지는 스트림입니다. 입력 : InputStream 바이트 기반 입력 스트림의 최상위 클래스입니다. 주요 메서드 메서드 설명 abstract int read () 1byte를 읽고 읽은 byte를 .. 2023. 9. 19. 자바 쉽게 배우기 21 - 람다 잠시 쉬어가는 글로 람다에 대해서 설명드릴까 합니다. 사실 람다가 자바에 도입된 것은 jdk1.8부터(2014년)입니다. 비교적 최근에 추가된 것이죠. 람다가 도입되면서 객체 지향 언어인 자바가 함수형 언어로의 성격까지 갖게 되었습니다. ❓ 함수형 언어란 무엇인가요? 함수형 언어는 함수형 기능들을 사용해 변수의 사용을 최소화한 프로그래밍에 사용되는 언어입니다. 람다 람다가 무엇이기에 함수형 언어로의 성격을 더해준 것일까요? 람다란 메서드를 하나의 식으로 표현한 것입니다. 람다를 사용하면 메서드를 간략한 방식으로 표현할 수 있습니다. 또한 람다식을 매개변수로 전달하거나 메서드의 결과로 반환하는 것도 가능합니다. 메서드를 람다식으로 변환하기 일반 메서드 반환타입 메서드명 (매개변수) { ... return .. 2023. 9. 18. 자바 쉽게 배우기 20 - 스레드 스레드 스레드를 이해하기 위해서는 프로세스를 알아야 합니다. 자바 쉽게 배우기 1 - 자바란 무엇인가? 에서 멀티 스레드와, 프로세스, 스케쥴링에 대해 설명드렸었는데 기억하시는 분이 있으실까요? - 자바의 멀티스레드는 시스템과 관계없이 구현이 가능합니다. - 멀티 스레드 라이브러리를 제공합니다. - 여러 스레드에 대한 스케쥴링을 자바 인터프리터가 담당합니다. ❓ 멀티스레드란 무엇인가요? - 멀티스레드는 한 프로세스 안에서 여러 개의 일이 동시에 진행되는 것을 의미합니다. ❓ 스케쥴링은 무엇인가요? - 스케쥴링이란 프로세스가 생성되어 실행될 때 필요한 자원들을 할당하는 작업을 뜻합니다. ❓ 프로세스란 무엇인가요? - 일반적으로 실행 중인 프로그램을 의미하고, 작업(Job) 혹은 태스크(Task)라고 불리기.. 2023. 9. 15. 이전 1 2 3 4 5 6 다음