Slide 1

Slide 1 text

߅ਊӂ ঌইفݶ ॶؘ੓ח ௏ౣܽ

Slide 2

Slide 2 text

https://www.southernliving.com/culture/difference-between-road-street-avenue-boulevard ੉ঠӥѢܻ ۄڍח݈੉ঠ ૑धನ౟ಫܻয় ঌইفݶॶؘ੓ח௏ౣܽ ௏ౣܽਸ੊൤ח࢖ױ҅

Slide 3

Slide 3 text

߅ਊӂ.apply { ࣗࣘ = "׼Ӕ݃௄ / झ೐݂۞ց" ౠ૚ = "݈ ݆਺, nߓࣘ ੤ࢤ" }

Slide 4

Slide 4 text

https://www.inven.co.kr/board/lostark/4811/2938402

Slide 5

Slide 5 text

https://blog.outsider.ne.kr/456

Slide 6

Slide 6 text

https://www.callicoder.com/java-lambda-expression-tutorial/

Slide 7

Slide 7 text

https://www.ebay.co.uk/itm/235001704718

Slide 8

Slide 8 text

https://webkul.com/ios-app-development/ https://developer.apple.com/tutorials/swiftui

Slide 9

Slide 9 text

૑ध ನ౟ಫܻয়ী ઱ӝ੸ਵ۽ ై੗ೞۄ

Slide 10

Slide 10 text

*5࢑স਷Ր੐হ੉߸ചೞחౠࢿਸо૑ݴ য়טഝਊغחӝࣿ੉ղੌ਷ࢎਊغ૑ঋ ਸࣻ੓Ҋ ߈؀۽੉੹ীח઱ݾ߉૑ঋ؍ӝࣿ੉઺ਃ೧૕ࣻ੓णפ׮׮নೠӝࣿী ੊ࣼ೧૑ݶ੉۞ೠ߸ചীਬোೞѱ؀਽ೡࣻ੓णפ׮ژೠ ׮নೠ૑धҗמ۱਷ѐ ੋ੄੹ޙࢿਸ࢚थदఃݴ ࢜۽਍૒সӝഥܳ঳חؘীب௾ب਑੉ؾפ׮ بࢲ पਊ઱੄೐۽Ӓېݠীࢲਃডߊ஀

Slide 11

Slide 11 text

ݒ֙࢜۽਍঱যܳ୭ࣗೞաחߓਕۄ https://www.studyandgoabroad.com/meaningful-travel/language-travel/long-does-learn-foreign-language/

Slide 12

Slide 12 text

׮নೠҙ੼җޙઁ೧Ѿߑध http://www.iscicommunications.com/each-persons-truth-depends-on-their-perspective/

Slide 13

Slide 13 text

߸ചػജ҃ী੸਽ೡࣻ੓חמ۱ https://www.goodwin.edu/enews/seven-qualities-of-adaptable-people/

Slide 14

Slide 14 text

https://flic.kr/p/2mv5Gg5 ೙ਃীٮۄԁղॳחبҳ࢚੗

Slide 15

Slide 15 text

ӝഥоয়ݶ੟חמ۱ https://flic.kr/p/2mv5Gg5

Slide 16

Slide 16 text

೐۽؋౟ূ૑פযܳೱೠߊѦ਺ https://www.classicinformatics.com/blog/how-to-hire-full-stack-developer

Slide 17

Slide 17 text

Ӓېࢲ ަ ߓ਋ۄҊ https://www.focusonthefamily.com/parenting/how-to-cope-with-an-angry-baby-or-toddler/

Slide 18

Slide 18 text

https://survey.stackoverflow.co/2023/ .PTU QPQVMBS UFDIOPMPHJFT

Slide 19

Slide 19 text

https://programmers.co.kr/pages/2023-dev-survey о੢ ߓ਋Ҋर਷ ೐۽Ӓې߁঱য https://programmers.co.kr/pages/2023-dev-survey

Slide 20

Slide 20 text

KotlinConf 23 Keynote Kotlin Handy to Know ,PUMJO$POGs,FZOPUF Github projects use Kotlin as their primary language Increase in Multiplatform libraries in 2002 of Android users are satisfied with Kotlin of the top 1,000 Android apps use Jetpack Compose of all kotlin users are satisfied with Kotlin of the top 1,000 Android apps are in Kotlin 1M 86 95 60 97 23 of the all daangn projects use Multiplatform 1 of the all daangn projects use Kotlin 10

Slide 21

Slide 21 text

https://blog.kotzilla.io/koin-kotlinconf-2023/ ঌইفݶ ॶؘ੓ח ௏ౣܽ

Slide 22

Slide 22 text

] ҍ׮۝੄௏٘о୹ށ೤פ׮

Slide 23

Slide 23 text

] ௏ౣܽ੄୍೟ ,PUMJOJO"DUJPO %NJUSZ+FNFSPWBOE4WFUMBOB*TBLPWB https://www.manning.com/books/kotlin-in-action ௏ౣܽ਷੗߄৬੄࢚ഐ਍ਊࢿীୡ੼ਸݏ୸पਊ੸੉ҊрѾೞݴ উ੹ೠ঱য੉׮

Slide 24

Slide 24 text

KotlinConf 23 Keynote Kotlin Handy to Know ௏ౣܽ਷੗߄৬੄࢚ഐ਍ਊࢿীୡ੼ਸݏ୸पਊ੸੉ҊрѾೞݴউ੹ೠ঱য੉׮ /* ೐۽ಌ౭ী ؀ೠ getter(), setter(), equals(), hashCode(), toString(), * copy(), componentN() ݫࣗ٘ܳ ஹ౵ੌ द੼ী ੗زਵ۽ ࢤࢿೠ׮ */ data class Person(val firstname: String, val lastname: String, val address: Address) // ಴ળ ۄ੉࠳۞ܻ੄ ೂࠗೠ API৬ Ҋର ೣࣻ੄ ب਑ਸ ߉ই рѾೞѱ ݾ੸ਸ ׳ࢿೡ ࣻ ੓׮ val filteredPersons = Persons.findByLastname("Matthews").filter { it.address.city == "Seoul" } // ױੌ಴അ ೣࣻח ١ഐ۽ ೣࣻ ੿੄৬ ߄٣ܳ ҳ࠙ೞৈ ૣѱ ಴അೡ ࣻ ੓׮ fun double(x: Int): Int = x * 2 val beDoubled = double(2) // օnull੉ ؼ ࣻ হח чਸ ୶੸ೞݴ, NullPointException ߊࢤਸ ߑ૑ೠ׮ val nullable: String? = null // օ੉ ؼ ࣻ ੓਺ val nonNullable: String = "" // օ੉ ؼ ࣻ হ਺ // ఋੑ Ѩࢎ৬ நझ౟о ೠ ো࢑੗ী ੄೧ ੉ܞ૑ݴ, ClassCastException ߊࢤਸ ߑ૑ೠ׮ val data = loadData() if (data is String) { data.uppercase(Locale.getDefault()) } // break ޙ੉ হযب غݴ, ৌѢഋ э਷ ౠ߹ೠ ఋੑҗ ೣԋ ॳݶ ݽٚ ч੉ ಣоغ঻ח૑ ഛੋೠ׮ val scoreRange = when(CreditScore.EXCELLENT) { CreditScore.BAD -> 300..629 CreditScore.FAIR -> 630..689 CreditScore.GOOD -> 690..850 } enum class CreditScore { BAD,FAIR,GOOD } Kotlin Showcase

Slide 25

Slide 25 text

] ௏ܖ౯ https://www.xenonstack.com/insights/coroutines

Slide 26

Slide 26 text

KotlinConf 23 Keynote Kotlin Handy to Know ࠺زӝ೐۽Ӓې߁ਸਤೠ௏ܖ౯ // GitHub API۽ ࢎਊ੗, ઑ૒, ੷੢ࣗ ؘ੉ఠܳ ஂٙೞӝ ਤೠ ஹನք౟੉׮ class GitHubOperations(val accessToken: String) { suspend fun fetchUser(username: String): User {..} suspend fun fetchOrganizations(user: User): List {..} suspend fun fetchRepositories(user: User): List {..} } Kotlin Showcase // GitHub ࢎਊ੗੄ ੿ࠁܳ ࠺زӝ੸ਵ۽ оઉয়ח ௏ܖ౯ ೣࣻ੉׮ suspend fun getGithubInfo(username: String, accessToken: String) = coroutineScope { val operations = GitHubOperations(accessToken) // ࢎਊ੗ ੿ࠁܳ оઉৡ׮ val user = operations.fetchUser(username) // ࢎਊ੗о ࣗࣘػ ઑ૒ٜҗ ੷੢ٜࣗਸ زदী ࠺زӝ੸ਵ۽ оઉৡ׮ val organizations = async { operations.fetchOrganizations(user) } val repositories = async { operations.fetchRepositories(user) } // ݽٚ ࠺زӝ ੘স੉ ৮ܐػ റ GithubInfo ё୓ܳ ࢤࢿ೧ࢲ ߈ജೠ׮ GithubInfo(user, organizations.await(), repositories.await()) }

Slide 27

Slide 27 text

] ݣ౭ಁ۞׮੐ https://magdamiu.com/2022/02/03/high-performance-with-idiomatic-kotlin/

Slide 28

Slide 28 text

KotlinConf 23 Keynote Kotlin Handy to Know ݣ౭ಁ۞׮੐ // GitHub API۽ ࢎਊ੗, ઑ૒, ੷੢ࣗ ؘ੉ఠܳ ஂٙೞӝ ਤೠ ੋఠಕ੉झ৬ ҳഅ୓ٜ੉׮ interface GithubOperations { fun fetchUser(username: String): User fun fetchOrganizations(user: User): List fun fetchRepositories(user: User): List } class MockGithubOperations : GithubOperations { ... } class KtorGithubOperations(httpClient: HttpClient) : GithubOperations { ... } Kotlin Showcase // Ҋର ೣࣻܳ ࢎਊ೧ࢲ GitHub ੿ࠁܳ ઑ݀೧ࢲ ߈ജೠ׮ fun getGithubInfo( username: String, operations: GithubOperations, assemble: (User, List, List) -> T): T { val user = operations.fetchUser(username) val organizations = operations.fetchOrganizations(user) val repositories = operations.fetchRepositories(user) return assemble(user, organizations, repositories) } // ೣࣻо ز੘ೞחؘ ೙ਃೠ ੄ઓҙ҅ܳ ੹׳ೞҊ, ۈ׮ܳ ా೧ GitHub ੿ࠁܳ ਗೞח ߑधਵ۽ ઑ൩ೠ׮ getGithubInfo("jumpit", KtorGithubOperations(ktor())) { user, orgs, repos -> // ױࣽೠ ৘: ࢎਊ੗ ੉ܴҗ ઑ૒੄ ࣻ, ୭Ӕ ழ޿੉ ੓ח ੷੢ࣗ੄ ࣻܳ ߈ജ "User: ${user.name}, Orgs: ${orgs.size}, Repos: ${repos.count { it.hasRecentCommit }}" }

Slide 29

Slide 29 text

] ݣ౭೒ۖಬ https://kotlinlang.org/docs/multiplatform.html

Slide 30

Slide 30 text

KotlinConf 23 Keynote Kotlin Handy to Know ݣ౭೒ۖಬ // Common Kotlin: ݽٚ ೒ۖಬী ҕਬغח ௏٘੉׮ interface GithubOperations { fun fetchUser(username: String): User fun fetchOrganizations(user: User): List fun fetchRepositories(user: User): List } class HttpClientGithubOperations(private val httpClient: HttpClient) : GithubOperations { ... } Kotlin Showcase // Android ೒ۖಬ ҳഅ ௏٘: Okhttp ۽ ز੘ೠ׮ actual class HttpClient(okhttp: OkHttpClient) { ... } // iOS ೒ۖಬ ҳഅ ௏٘: Ktor Client for Native ਵ۽ ز੘ೠ׮ actual class HttpClient(ktor: io.ktor.client.HttpClient) { ... } // JS ೒ۖಬ ҳഅ ௏٘: Ktor Client for JavaScript ۽ ز੘ೠ׮ actual class HttpClient(ktor: io.ktor.client.HttpClient) { ... } // JVM ೒ۖಬ ҳഅ ௏٘: Spring RestTemplate ۽ ز੘ೠ׮ actual class HttpClient(restTemplate: RestTemplate) { ... } // expect৬ actual ಁఢਸ ࢎਊೞݶ ೒ۖಬ ౠ੿ ҳഅਸ ҕਬ ۽૒ীࢲ ܻ࠙ೡ ࣻ ੓׮ // ੉ܳ ా೧ ௏٘ ੤ࢎਊࢿਸ ਬ૑ೞݶࢲ ೒ۖಬ ౠ੿ࢿਸ ࠁઓೡ ࣻ ੓׮ expect class HttpClient { fun exchage(request: Request): Response }

Slide 31

Slide 31 text

] য়೑ࣗझ https://www.govwebworks.com/2019/10/29/improving-process-with-open-source-technologies/

Slide 32

Slide 32 text

ழޭפ౭ ӝ߈ ߊ੹

Slide 33

Slide 33 text

https://lermagazine.com/issues/june/short-breaks-help-the-brain-learn-new-skills ௏ౣܽਸ੊൤ח࢖ױ҅

Slide 34

Slide 34 text

঄Ҋ https://www.inflearn.com/course/코틀린-끝내기 оߺѱ

Slide 35

Slide 35 text

ڳҊ https://www.jetbrains.com/ko-kr/academy/ नաѱ

Slide 36

Slide 36 text

https://www.manning.com/books/kotlin-in-action ݍࠁҊ ԝԝ൤

Slide 37

Slide 37 text

&/%

Slide 38

Slide 38 text

2" https://www.flickr.com/photos/seandreilinger/2326448445/

Slide 39

Slide 39 text

ଵҊ੗ܐ ✔ 도서, 실용주의 프로그래머 ✔ 도서, Kotlin in Action ✔ KotlinConf 2023 - Keynote