목록분류 전체보기 (107)
백고등어 개발 블로그
10강: 실전 프로젝트와 모범 사례코틀린 코딩 규칙명명 규칙// 클래스와 인터페이스: PascalCaseclass UserRepositoryinterface DataSource// 함수와 변수: camelCasefun calculateTotal()val userName = "김코틀린"// 상수: UPPER_SNAKE_CASEconst val MAX_COUNT = 100const val API_KEY = "your-api-key"// 패키지: 소문자, 점으로 구분package com.example.myapp.domain코드 구조// 1. 패키지 선언package com.example.myapp// 2. Import 문import kotlinx.coroutines.*import java.time.LocalD..
9강: 코루틴 기초코루틴이란?코루틴(Coroutine)은 비동기 프로그래밍을 쉽게 작성할 수 있게 해주는 코틀린의 핵심 기능입니다. 경량 스레드라고 불리며, 수천 개의 코루틴을 동시에 실행해도 성능 저하가 거의 없습니다.코루틴 시작하기의존성 추가코루틴을 사용하려면 먼저 의존성을 추가해야 합니다. Gradle의 경우:dependencies { implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3")}첫 번째 코루틴import kotlinx.coroutines.*fun main() = runBlocking { // 메인 스레드를 차단하는 코루틴 빌더 launch { // 새로운 코루틴 시작 delay(1000L) ..
8강: 제네릭제네릭이란?제네릭(Generics)은 타입을 파라미터화하여 코드의 재사용성을 높이고 타입 안정성을 보장하는 기능입니다. 컬렉션에서 이미 제네릭을 사용해왔습니다: List, Map 등.제네릭 클래스기본 제네릭 클래스class Box(val value: T) { fun get(): T = value}fun main() { val intBox = Box(10) val stringBox = Box("Kotlin") println(intBox.get()) // 10 println(stringBox.get()) // Kotlin // 타입 추론 val doubleBox = Box(3.14) // Box로 추론 println(double..
7강: 예외 처리예외란?예외(Exception)는 프로그램 실행 중에 발생하는 비정상적인 상황을 나타냅니다. 파일을 찾을 수 없거나, 네트워크 연결이 끊기거나, 0으로 나누기를 시도하는 등의 상황에서 예외가 발생합니다.try-catch-finally기본 문법fun main() { try { val result = 10 / 0 // ArithmeticException 발생 println(result) } catch (e: ArithmeticException) { println("0으로 나눌 수 없습니다: ${e.message}") } finally { println("finally 블록은 항상 실행됩니다") }}finally 블록은 ..
6강: 컬렉션컬렉션 개요코틀린은 자바의 컬렉션을 기반으로 하되, 불변(immutable)과 가변(mutable) 컬렉션을 명확히 구분합니다. 이는 함수형 프로그래밍 스타일을 지원하고 안전성을 높이기 위함입니다.List불변 리스트(Immutable List)// listOf: 읽기 전용 리스트 생성val fruits = listOf("사과", "바나나", "오렌지")println(fruits[0]) // 사과println(fruits.size) // 3println(fruits.first()) // 사과println(fruits.last()) // 오렌지// fruits.add("포도") // 컴파일 오류! 불변 리스트// 빈 리스트val emptyList = emptyLi..
5강: 클래스와 객체클래스 선언코틀린에서 클래스는 class 키워드로 선언합니다.기본 클래스class Person { var name: String = "" var age: Int = 0 fun introduce() { println("안녕하세요, 저는 $name이고 ${age}세입니다.") }}fun main() { val person = Person() person.name = "김코틀린" person.age = 25 person.introduce() // 안녕하세요, 저는 김코틀린이고 25세입니다.}생성자주 생성자(Primary Constructor)클래스 헤더에 선언하는 생성자입니다:class Person(val name: Strin..
4강: 함수와 람다 표현식함수 선언코틀린에서 함수는 fun 키워드로 선언합니다.기본 함수fun greet(name: String): String { return "안녕하세요, $name님!"}fun main() { val message = greet("김코틀린") println(message) // 출력: 안녕하세요, 김코틀린님!}단일 표현식 함수함수 본문이 단일 표현식인 경우 중괄호와 return을 생략할 수 있습니다:fun add(a: Int, b: Int): Int = a + b// 반환 타입도 생략 가능 (타입 추론)fun multiply(a: Int, b: Int) = a * bfun main() { println(add(3, 5)) // 8 println..
3강: 연산자와 제어문연산자코틀린의 연산자는 자바와 유사하지만, 몇 가지 편리한 기능이 추가되었습니다.산술 연산자val a = 10val b = 3println(a + b) // 13 (덧셈)println(a - b) // 7 (뺄셈)println(a * b) // 30 (곱셈)println(a / b) // 3 (나눗셈)println(a % b) // 1 (나머지)증감 연산자var count = 10count++ // 후위 증가: 11++count // 전위 증가: 12count-- // 후위 감소: 11--count // 전위 감소: 10비교 연산자val x = 5val y = 10println(x == y) // false (같음)println(x != y) // true (..
2강: 변수와 자료형변수 선언의 두 가지 방법코틀린에서 변수를 선언하는 방법은 크게 두 가지입니다: val과 var입니다.val: 불변(Immutable) 변수val은 value의 약자로, 한 번 값을 할당하면 변경할 수 없는 읽기 전용 변수입니다. 자바의 final 키워드와 유사합니다.val name: String = "김코틀린"val age: Int = 25// name = "이자바" // 컴파일 오류! val은 재할당 불가코틀린은 타입 추론(Type Inference)을 지원하므로 타입을 생략할 수 있습니다:val name = "김코틀린" // String 타입으로 자동 추론val age = 25 // Int 타입으로 자동 추론var: 가변(Mutable) 변수var는 varia..
1강: 코틀린 소개 및 개발 환경 설정코틀린이란?코틀린(Kotlin)은 JetBrains에서 개발한 현대적인 프로그래밍 언어로, 2011년에 처음 공개되어 2016년 정식 버전이 출시되었습니다. 2017년 구글이 안드로이드 공식 언어로 채택하면서 급속도로 성장했으며, 현재는 서버 사이드 개발, 멀티플랫폼 개발 등 다양한 분야에서 활용되고 있습니다.코틀린의 주요 특징간결성(Conciseness): 코틀린은 자바에 비해 훨씬 적은 코드로 같은 기능을 구현할 수 있습니다. 보일러플레이트 코드를 대폭 줄여 개발자의 생산성을 높입니다.안전성(Safety): Null 안전성을 언어 차원에서 지원하여 NullPointerException을 컴파일 단계에서 방지할 수 있습니다. 이는 런타임 오류를 크게 줄여줍니다.상호..