본문 바로가기

Study

(34)
Kotlin/ 알고리즘 스터디 새해맞이 코딩테스트 스터디 with erika https://blog.naver.com/hanerika_11/223321639319 2024 Kotlin 코테 스터디 운영, 규칙 새해 기념 코테 스터디를 하나 열었다. 코테 스터디는 처음인지라 최적점을 잘 몰라서...ㅎㅎ 아마 이 글은... blog.naver.com 1. 하루 2문제 프로그래머스 문제 풀기 2. 레벨 0~1 단계 -> 2,3단계 목표 3. 주 2회 온라인으로 만나서 회고하기 4. 깃헙, 블로그에 기록 남기기
Kotlin / 코루틴 처리 1. 코루틴 동시성 알아보기 코루틴은 코틀린에서 별도 패키지로 동시성 기능을 처리할 수 있도록 다양한 클래스와 함수를 지원한다. 서브루틴(subroutine) : 순수함수. 함수가 호출되면 결과를 반환한다. 순차적으로 처리할 때 사용한다. 코루틴(coroutine) : 함수이지만 상태를 관리하고 일시 중단했다가 다시 시작할 수 있는 일시중단 함수로 구성한다. 코루틴을 구성하는 규칙 코루틴은 코루틴이 실행되는 별도의 영역인 코루틴 스코프를 구성해야 한다. 이 코루틴 스코프에서 코루틴 빌더 함수와 일시중단 함수를 사용한다. 코루틴 기본 구성 1. 코루틴 패키지의 구성 요소 코루틴 스코프: GlobalScope, CoroutineScope는 코루틴 스코프를 구성해서 내부에 코루틴 빌더 함수로 코루틴 계층을 구..
Kotlin / 파일 입출력과 스레드 처리 1. 파일 I/O 처리 파일 처리는 Input과 Output에 대한 데이터 처리 -> 데이터가 계속 처리되어 흐르는 것과 같아서 스트림(Stream)이라고 한다. 바이트나 텍스트 단위로 처리해서 사람이 인식할 수 있게 만들어야 한다. - 버퍼(Buffer) : I/O 처리의 성능을 향상하기 위해 중간에 저장공간을 두고 처리하는 방식 가장 기본으로 파일을 읽고 쓰는 기반 : InputSteram, OutputStream => 이를 기반으로 바이트 단위로 처리하도록 지원 : ByteArrayInputStream, ByteArrayOutputStream 바이트 스트림은 기본적으로 데이터를 읽고 쓰는 것이다. - read 메서드로 바이트 단위 읽기 (순환하면서 모든 바이트 읽음) - write 메서드로 한 바이..
Kotlin / 제네릭 알아보기 1. 제네릭 알아보기 제네릭은 타입 매개변수를 지정해서 임의로 작성하고 호출할 때 타입 인자를 전달해서 처리하는 방식이다. 1. 제네릭 처리 기준 자료형을 특정 문자로 지정 -> 타입 매개변수와 타입 인자로 사용 타입 매개변수(Type Parameter) : 클래스나 함수의 자료형을 임의의 문자로 지정해서 컴파일 타임에 자료형 점검을 할 때 사용 타입 인자(Type Argument) : 객체 생성, 함수 호출할 때 실제 자료형을 지정해서 정해진 임의의 타입을 실제 타입으로 변경 제네릭 구성 가능 여부 함수, 클래스, 추상 클래스, 인터페이스, 확장함수, 확장 속성 하나의 객체만 만드는 object 정의, 동반 객체, object 표현식은 제네릭을 구성할 수 없다. 타입 매개변수와 타입 인자를 지정하는 위..
Kotlin / 위임(delegation) 알아보기 모든 객체지향 프로그래밍 언어에서는 클래스 간의 상속관계를 기본 문법으로 제공한다. 코틀린 역시 위임관계를 문법으로 제공해서 다양한 클래스의 관계를 쉽게 처리할 수 있도록 지원한다. 1. 클래스 위임 알아보기 클래스 위임 : 특정 클래스에 자기 클래스가 할 일을 다른 클래스에게 맡겨 처리하는 것 코틀린에서 위임 관계를 by를 사용해서 쉽게 구성할 수 있다. 보통 하나의 클래스에는 하나의 책임을 부여해서 설계하는 방식을 사용한다. 위임은 2개의 클래스가 동일한 책임을 가지고 나눠서 처리한다. 좋은점 : 다양한 기능을 하나의 클래스를 통해서 받고 처리할 수 있도록 구조화할 수 있다. interface Base { // 인터페이스 정의 fun say() } class BaseImpl(val x: Int) : ..
Kotlin / 함수 추가사항 알아보기 1. 함수형 프로그래밍이란 순수함수와 일급 객체 함수 함수는 참조 투명성(지역변수만 사용)을 갖춰야 항상 동일한 입력에 동일한 결과를 반환하는 순수 함수를 만들 수 있다. 순수 함수(pure function)의 조건 동일한 인자로 실행하면 항상 동일한 값 반환 함수 내부에서 반환값 이외의 결과로 부수효과가 발생하지 않는다 부수효과(side effect) 함수가 실행되는 과정에서 함수 외부의 데이터를 사용 및 수정하거나 외부의 다른 기능을 사용하는 것을 말한다 함수가 전역변수를 사용하거나 수정하는 것 함수가 표준 입출력을 사용해서 키보드 입력과 화면 등에 출력 함수가 파일을 읽고 쓰는 작업을 수행 함수를 사용해서 데이터베이스에 연결 fun purefunc(a:Int, b:Int):Int{ return a+..
Kotlin / 추상클래스, 인터페이스 알아보기 1. 추상클래스 추상클래스는 abstract 예약어로 지정한 클래스이다. 직접 객체를 생성할 수 없고, 항상 다른 클래스에서 상속해서 추상 메서드를 구현해야 한다. abstract class Person { // 추상 클래스 정의 abstract val name: String // 추상 속성 정의 abstract fun displayName() // 추상 메서드 정의 } class Woman : Person() { // 구현 클래스 정의 override val name: String = "은정" // 추상 속성 오버라이딩 override fun displayName() { // 추상 메서드 오버라이딩 println("이름 : $name") } } val woman = Woman() woman.displa..
Kotlin / 컬렉션 알아보기 1. 리스트, 세트, 맵 알아보기 컬렉션의 가변과 불변 가변(mutable) : 보통 컬렉션 객체는 추가, 수정, 삭제를 할 수 있다 불변(immutable) : 컬렉션 객체 중에 한 번 만들어지면 추가, 수정, 삭제를 할 수 없다. 리스트 클래스 ArrayList : 고정 길이로 리스트를 만든다. listOf, mutableListOf로 객체 생성 LinkedList : 가변 길이로 리스트를 만든다. 각 원소가 가지는 주소를 별도로 보관. LinkedList 클래스로 리스트 객체 생성 val list1 = listOf(1,2,3) // 불변 리스트 객체 생성 val list2 = mutableListOf(1,2,3) // 가변 리스트 객체 만들기 list2.add(10) // 원소 추가 list2.re..

반응형