Tags๐Ÿท๏ธ

android

LiveData vs Flow

์†Œํ”„ํ‹ฐ์–ด ๋ถ€ํŠธ์บ ํ”„ ํ•  ๋•Œ ์•ˆ๋“œ๋กœ์ด๋“œ ์Šคํ„ฐ๋””์—์„œ flow๋ฅผ ๊ณต๋ถ€ํ–ˆ๋˜๊ฒŒ ์ƒ๊ฐ๋‚ฌ๋Š”๋ฐ ๋…ธ์…˜์—๋งŒ ๋‘๊ธฐ ์•„๊นŒ์›Œ์„œ ํฌ์ŠคํŒ…ํ•œ๋‹ค.

M-V-Whatever, MV์‹œ๋ฆฌ์ฆˆ ์ •๋ฆฌ

๋””์ž์ธ ํŒจํ„ด์€ ๋งค๋ฒˆ ์‚ฌ์šฉํ•˜๋Š” ํŒจํ„ด๋งŒ ์ž˜ ๊ธฐ์–ตํ•˜๊ณ  ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒƒ์€ ์žŠ์–ด๋ฒ„๋ฆฌ๋Š”๊ฒŒ ์ผ์ƒ์ด๋ผ ๋‹ค์Œ์— ์žŠ์–ด๋ฒ„๋ ธ์„๋•Œ ๋น ๋ฅด๊ฒŒ ๊ธฐ์–ต์„ ๋˜๋Œ๋ฆฌ๊ธฐ ์œ„ํ•ด์„œ ์ •๋ฆฌ๋ฅผ ํ–ˆ๋‹ค.

์ปค์Šคํ…€ ๋‹ค์ด์–ผ๋กœ๊ทธ ์ œ์ž‘๊ธฐ(XML View)

์ด ํฌ์ŠคํŒ…์€ ์‚ฌ์‹ค ์†Œํ”„ํ‹ฐ์–ด ๋ถ€ํŠธ์บ ํ”„ ํ•  ๋•Œ ๋ ˆํฌ ์œ„ํ‚ค์— ์ ์—ˆ๋˜ ๊ฑด๋ฐ ๋ ˆํฌ๊ฐ€ private์œผ๋กœ ๋ณ€๊ฒฝ๋˜๋ฉฐ ๊ฐœ์ธ ๋ธ”๋กœ๊ทธ์— ๋‹ค์‹œ ํฌ์ŠคํŒ…ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.

@JvmName์œผ๋กœ JVM Signiture ํƒ€์ž…์†Œ๊ฑฐ ๊ด€๋ จ ์˜ค๋ฒ„๋กœ๋”ฉ ์ด์Šˆ ํ•ด๊ฒฐ

์ปดํฌ์ฆˆ๋กœ UI๋ฅผ ๋งŒ๋“ค๋‹ค๊ฐ€ ํŠน์ • ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ธ์Šคํ„ด์Šคํ™” ํ•˜์ง€ ๋ชปํ•ด์„œ ํ”„๋ฆฌ๋ทฐ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์–ด๋ ค์›Œ์กŒ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋”๋ฏธ ๋ฐ์ดํ„ฐ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์—†๋Š” ํ•ด๋‹น ๋งค๊ฐœ ๋ณ€์ˆ˜ ๋ถ€๋ถ„์„ ๋ฌธ์ž์—ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ”๊พธ๋Š” ๋ž˜ํ•‘ ์ปดํฌ์ €๋ธ”์„ ์•„๋ž˜์™€ ๊ฐ™์ด ๋งŒ๋“ค์—ˆ๋‹ค.

[android][kotlin] ROOM ๊ฐœ๋… ๋ฐ ์‚ฌ์šฉ๋ฒ•

์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๋ถ๋งˆํฌ ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•ด์„œ DB๋ฅผ ์‚ฌ์šฉํ•ด๋ณด๊ธฐ๋กœํ–ˆ๋‹ค. ์˜ˆ์ „์—๋Š” SQL ์ฟผ๋ฆฌ๋ฌธ์œผ๋กœ DB๋ฅผ ๋‹ค๋ค˜์—ˆ๋Š”๋ฐ ๋„ˆ๋ฌด ๋ถˆํŽธํ–ˆ์–ด์„œ ์ด๋ฒˆ์—๋Š” jetpack Room์„ ์‚ฌ์šฉํ•ด์„œ DB๋ฅผ ์‚ฌ์šฉํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

algorithm

๋งจ ์œ„๋กœ ์ด๋™ ↑

kotlin

๋งจ ์œ„๋กœ ์ด๋™ ↑

java

๋งจ ์œ„๋กœ ์ด๋™ ↑

compose

@JvmName์œผ๋กœ JVM Signiture ํƒ€์ž…์†Œ๊ฑฐ ๊ด€๋ จ ์˜ค๋ฒ„๋กœ๋”ฉ ์ด์Šˆ ํ•ด๊ฒฐ

์ปดํฌ์ฆˆ๋กœ UI๋ฅผ ๋งŒ๋“ค๋‹ค๊ฐ€ ํŠน์ • ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ธ์Šคํ„ด์Šคํ™” ํ•˜์ง€ ๋ชปํ•ด์„œ ํ”„๋ฆฌ๋ทฐ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์–ด๋ ค์›Œ์กŒ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋”๋ฏธ ๋ฐ์ดํ„ฐ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์—†๋Š” ํ•ด๋‹น ๋งค๊ฐœ ๋ณ€์ˆ˜ ๋ถ€๋ถ„์„ ๋ฌธ์ž์—ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ”๊พธ๋Š” ๋ž˜ํ•‘ ์ปดํฌ์ €๋ธ”์„ ์•„๋ž˜์™€ ๊ฐ™์ด ๋งŒ๋“ค์—ˆ๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

Beakjoon

๋งจ ์œ„๋กœ ์ด๋™ ↑

JetpackCompose

@JvmName์œผ๋กœ JVM Signiture ํƒ€์ž…์†Œ๊ฑฐ ๊ด€๋ จ ์˜ค๋ฒ„๋กœ๋”ฉ ์ด์Šˆ ํ•ด๊ฒฐ

์ปดํฌ์ฆˆ๋กœ UI๋ฅผ ๋งŒ๋“ค๋‹ค๊ฐ€ ํŠน์ • ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ธ์Šคํ„ด์Šคํ™” ํ•˜์ง€ ๋ชปํ•ด์„œ ํ”„๋ฆฌ๋ทฐ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์–ด๋ ค์›Œ์กŒ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋”๋ฏธ ๋ฐ์ดํ„ฐ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์—†๋Š” ํ•ด๋‹น ๋งค๊ฐœ ๋ณ€์ˆ˜ ๋ถ€๋ถ„์„ ๋ฌธ์ž์—ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ”๊พธ๋Š” ๋ž˜ํ•‘ ์ปดํฌ์ €๋ธ”์„ ์•„๋ž˜์™€ ๊ฐ™์ด ๋งŒ๋“ค์—ˆ๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

programmers

๋งจ ์œ„๋กœ ์ด๋™ ↑

DP

๋งจ ์œ„๋กœ ์ด๋™ ↑

BOJ

๋งจ ์œ„๋กœ ์ด๋™ ↑

DFS

๋งจ ์œ„๋กœ ์ด๋™ ↑

issue

๋งจ ์œ„๋กœ ์ด๋™ ↑

withIndex

๋งจ ์œ„๋กœ ์ด๋™ ↑

stream

๋งจ ์œ„๋กœ ์ด๋™ ↑

์ข…๋งŒ๋ถ

๋งจ ์œ„๋กœ ์ด๋™ ↑

climbup

๋งจ ์œ„๋กœ ์ด๋™ ↑

project

๋งจ ์œ„๋กœ ์ด๋™ ↑

1463

๋งจ ์œ„๋กœ ์ด๋™ ↑

ํ˜„๋Œ€

๋งจ ์œ„๋กœ ์ด๋™ ↑

์†Œํ”„ํ‹ฐ์–ด๋ถ€ํŠธ์บ ํ”„

๋งจ ์œ„๋กœ ์ด๋™ ↑

์†Œํ”„ํ‹ฐ์–ด

๋งจ ์œ„๋กœ ์ด๋™ ↑

๋ถ€ํŠธ์บ ํ”„

๋งจ ์œ„๋กœ ์ด๋™ ↑

2๊ธฐ

๋งจ ์œ„๋กœ ์ด๋™ ↑

linkedin

Github Action๊ณผ Make๋ฅผ ํ™œ์šฉํ•œ LinkedIn ์ž๋™ ํฌ์ŠคํŒ…

๊ทธ๋Ÿฐ์˜๋ฏธ๋กœ ์„ธ์ƒ์—์„œ ์ œ์ผ ๊ท€์ฐฎ์€ ๋งํฌ๋“œ์ธ ํฌ์ŠคํŒ…์“ฐ๊ธฐ๋ฅผ ๊นƒํ—ˆ๋ธŒ ์•ก์…˜๊ณผ Make(๊ตฌ Integromat)๋ผ๋Š” ์ž๋™ํ™” ํˆด์„ ์‚ฌ์šฉํ•ด์„œ ์ž๋™ํ™” ํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

auto-posting

Github Action๊ณผ Make๋ฅผ ํ™œ์šฉํ•œ LinkedIn ์ž๋™ ํฌ์ŠคํŒ…

๊ทธ๋Ÿฐ์˜๋ฏธ๋กœ ์„ธ์ƒ์—์„œ ์ œ์ผ ๊ท€์ฐฎ์€ ๋งํฌ๋“œ์ธ ํฌ์ŠคํŒ…์“ฐ๊ธฐ๋ฅผ ๊นƒํ—ˆ๋ธŒ ์•ก์…˜๊ณผ Make(๊ตฌ Integromat)๋ผ๋Š” ์ž๋™ํ™” ํˆด์„ ์‚ฌ์šฉํ•ด์„œ ์ž๋™ํ™” ํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

ํฌ์ŠคํŒ…

Github Action๊ณผ Make๋ฅผ ํ™œ์šฉํ•œ LinkedIn ์ž๋™ ํฌ์ŠคํŒ…

๊ทธ๋Ÿฐ์˜๋ฏธ๋กœ ์„ธ์ƒ์—์„œ ์ œ์ผ ๊ท€์ฐฎ์€ ๋งํฌ๋“œ์ธ ํฌ์ŠคํŒ…์“ฐ๊ธฐ๋ฅผ ๊นƒํ—ˆ๋ธŒ ์•ก์…˜๊ณผ Make(๊ตฌ Integromat)๋ผ๋Š” ์ž๋™ํ™” ํˆด์„ ์‚ฌ์šฉํ•ด์„œ ์ž๋™ํ™” ํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

make

Github Action๊ณผ Make๋ฅผ ํ™œ์šฉํ•œ LinkedIn ์ž๋™ ํฌ์ŠคํŒ…

๊ทธ๋Ÿฐ์˜๋ฏธ๋กœ ์„ธ์ƒ์—์„œ ์ œ์ผ ๊ท€์ฐฎ์€ ๋งํฌ๋“œ์ธ ํฌ์ŠคํŒ…์“ฐ๊ธฐ๋ฅผ ๊นƒํ—ˆ๋ธŒ ์•ก์…˜๊ณผ Make(๊ตฌ Integromat)๋ผ๋Š” ์ž๋™ํ™” ํˆด์„ ์‚ฌ์šฉํ•ด์„œ ์ž๋™ํ™” ํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

permission

๋งจ ์œ„๋กœ ์ด๋™ ↑

๊ถŒํ•œ

๋งจ ์œ„๋กœ ์ด๋™ ↑

GlobalAIBootcamp

[23.03.03] Global AI Bootcamp 2023 in Busan

์ด๋ฒˆ ๊ธˆ์š”์ผ์—๋Š” ์„ผํ…€์—์„œ ์—ด๋ฆฌ๋Š” Global AI bootcamp ์— ๋‹ค๋…€์™”๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

AI

[23.03.03] Global AI Bootcamp 2023 in Busan

์ด๋ฒˆ ๊ธˆ์š”์ผ์—๋Š” ์„ผํ…€์—์„œ ์—ด๋ฆฌ๋Š” Global AI bootcamp ์— ๋‹ค๋…€์™”๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

microsoft

[23.03.03] Global AI Bootcamp 2023 in Busan

์ด๋ฒˆ ๊ธˆ์š”์ผ์—๋Š” ์„ผํ…€์—์„œ ์—ด๋ฆฌ๋Š” Global AI bootcamp ์— ๋‹ค๋…€์™”๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

SmartFactory+AutomationWorld2023

[23.03.09] Smart Factory + Automation World 2023

์ด๋ฒˆ์—๋Š” ์„œ์šธ ์ฝ”์—‘์Šค์—์„œ ์—ด๋ฆฌ๋Š” smart factory + automation world 2023์— ์ฐธ์—ฌํ–ˆ๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

smart_factory

[23.03.09] Smart Factory + Automation World 2023

์ด๋ฒˆ์—๋Š” ์„œ์šธ ์ฝ”์—‘์Šค์—์„œ ์—ด๋ฆฌ๋Š” smart factory + automation world 2023์— ์ฐธ์—ฌํ–ˆ๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

vision

[23.03.09] Smart Factory + Automation World 2023

์ด๋ฒˆ์—๋Š” ์„œ์šธ ์ฝ”์—‘์Šค์—์„œ ์—ด๋ฆฌ๋Š” smart factory + automation world 2023์— ์ฐธ์—ฌํ–ˆ๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

digital_tween

[23.03.09] Smart Factory + Automation World 2023

์ด๋ฒˆ์—๋Š” ์„œ์šธ ์ฝ”์—‘์Šค์—์„œ ์—ด๋ฆฌ๋Š” smart factory + automation world 2023์— ์ฐธ์—ฌํ–ˆ๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

room

[android][kotlin] ROOM ๊ฐœ๋… ๋ฐ ์‚ฌ์šฉ๋ฒ•

์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๋ถ๋งˆํฌ ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•ด์„œ DB๋ฅผ ์‚ฌ์šฉํ•ด๋ณด๊ธฐ๋กœํ–ˆ๋‹ค. ์˜ˆ์ „์—๋Š” SQL ์ฟผ๋ฆฌ๋ฌธ์œผ๋กœ DB๋ฅผ ๋‹ค๋ค˜์—ˆ๋Š”๋ฐ ๋„ˆ๋ฌด ๋ถˆํŽธํ–ˆ์–ด์„œ ์ด๋ฒˆ์—๋Š” jetpack Room์„ ์‚ฌ์šฉํ•ด์„œ DB๋ฅผ ์‚ฌ์šฉํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

ROOM

[android][kotlin] ROOM ๊ฐœ๋… ๋ฐ ์‚ฌ์šฉ๋ฒ•

์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๋ถ๋งˆํฌ ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•ด์„œ DB๋ฅผ ์‚ฌ์šฉํ•ด๋ณด๊ธฐ๋กœํ–ˆ๋‹ค. ์˜ˆ์ „์—๋Š” SQL ์ฟผ๋ฆฌ๋ฌธ์œผ๋กœ DB๋ฅผ ๋‹ค๋ค˜์—ˆ๋Š”๋ฐ ๋„ˆ๋ฌด ๋ถˆํŽธํ–ˆ์–ด์„œ ์ด๋ฒˆ์—๋Š” jetpack Room์„ ์‚ฌ์šฉํ•ด์„œ DB๋ฅผ ์‚ฌ์šฉํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

jetpack

[android][kotlin] ROOM ๊ฐœ๋… ๋ฐ ์‚ฌ์šฉ๋ฒ•

์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๋ถ๋งˆํฌ ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•ด์„œ DB๋ฅผ ์‚ฌ์šฉํ•ด๋ณด๊ธฐ๋กœํ–ˆ๋‹ค. ์˜ˆ์ „์—๋Š” SQL ์ฟผ๋ฆฌ๋ฌธ์œผ๋กœ DB๋ฅผ ๋‹ค๋ค˜์—ˆ๋Š”๋ฐ ๋„ˆ๋ฌด ๋ถˆํŽธํ–ˆ์–ด์„œ ์ด๋ฒˆ์—๋Š” jetpack Room์„ ์‚ฌ์šฉํ•ด์„œ DB๋ฅผ ์‚ฌ์šฉํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

associate

๋งจ ์œ„๋กœ ์ด๋™ ↑

interface

๋งจ ์œ„๋กœ ์ด๋™ ↑

Iterable

๋งจ ์œ„๋กœ ์ด๋™ ↑

IndexingIterable

๋งจ ์œ„๋กœ ์ด๋™ ↑

Iterator

๋งจ ์œ„๋กœ ์ด๋™ ↑

IndexingIterator

๋งจ ์œ„๋กœ ์ด๋™ ↑

IndexedValue

๋งจ ์œ„๋กœ ์ด๋™ ↑

two point algorithm

๋งจ ์œ„๋กœ ์ด๋™ ↑

binarySearch

๋งจ ์œ„๋กœ ์ด๋™ ↑

mac

๋งจ ์œ„๋กœ ์ด๋™ ↑

mac mini

๋งจ ์œ„๋กœ ์ด๋™ ↑

m2 pro

๋งจ ์œ„๋กœ ์ด๋™ ↑

mac mini m2 pro

๋งจ ์œ„๋กœ ์ด๋™ ↑

unboxing

๋งจ ์œ„๋กœ ์ด๋™ ↑

tutorial

๋งจ ์œ„๋กœ ์ด๋™ ↑

2021GoogleIO

๋งจ ์œ„๋กœ ์ด๋™ ↑

woori

๋งจ ์œ„๋กœ ์ด๋™ ↑

contest

๋งจ ์œ„๋กœ ์ด๋™ ↑

coding festival

๋งจ ์œ„๋กœ ์ด๋™ ↑

compose_essential_4

๋งจ ์œ„๋กœ ์ด๋™ ↑

Predicate

๋งจ ์œ„๋กœ ์ด๋™ ↑

Function

๋งจ ์œ„๋กœ ์ด๋™ ↑

Cunsumner

๋งจ ์œ„๋กœ ์ด๋™ ↑

filtering

๋งจ ์œ„๋กœ ์ด๋™ ↑

mapping

๋งจ ์œ„๋กœ ์ด๋™ ↑

sorting

๋งจ ์œ„๋กœ ์ด๋™ ↑

cloudApplicationDeveloperTrainingCource

๋งจ ์œ„๋กœ ์ด๋™ ↑

kmooc

๋งจ ์œ„๋กœ ์ด๋™ ↑

matchup

๋งจ ์œ„๋กœ ์ด๋™ ↑

set

๋งจ ์œ„๋กœ ์ด๋™ ↑

pair

๋งจ ์œ„๋กœ ์ด๋™ ↑

1012

๋งจ ์œ„๋กœ ์ด๋™ ↑

BFS

๋งจ ์œ„๋กœ ์ด๋™ ↑

googleI/O

๋งจ ์œ„๋กœ ์ด๋™ ↑

material3

๋งจ ์œ„๋กœ ์ด๋™ ↑

m3

๋งจ ์œ„๋กœ ์ด๋™ ↑

jetpackCompose

๋งจ ์œ„๋กœ ์ด๋™ ↑

materialCompose 1.1

๋งจ ์œ„๋กœ ์ด๋™ ↑

build

๋งจ ์œ„๋กœ ์ด๋™ ↑

ksp

๋งจ ์œ„๋กœ ์ด๋™ ↑

kapt

๋งจ ์œ„๋กœ ์ด๋™ ↑

JVM

๋งจ ์œ„๋กœ ์ด๋™ ↑

JVMToolChain

๋งจ ์œ„๋กœ ์ด๋™ ↑

JDK

๋งจ ์œ„๋กœ ์ด๋™ ↑

subsequence

๋งจ ์œ„๋กœ ์ด๋™ ↑

maxsum

๋งจ ์œ„๋กœ ์ด๋™ ↑

์‹œ๊ฐ„๋ณต์žก๋„

๋งจ ์œ„๋กœ ์ด๋™ ↑

๊ณ„์‚ฐ๋ณต์žก๋„

๋งจ ์œ„๋กœ ์ด๋™ ↑

๊ณ„์‚ฐ๋ณต์žก๋„ํด๋ž˜์Šค

๋งจ ์œ„๋กœ ์ด๋™ ↑

p๋ฌธ์ œ

๋งจ ์œ„๋กœ ์ด๋™ ↑

n๋ฌธ์ œ

๋งจ ์œ„๋กœ ์ด๋™ ↑

n-hard

๋งจ ์œ„๋กœ ์ด๋™ ↑

n-complete

๋งจ ์œ„๋กœ ์ด๋™ ↑

SAT

๋งจ ์œ„๋กœ ์ด๋™ ↑

ํ™˜์‚ฐ

๋งจ ์œ„๋กœ ์ด๋™ ↑

reduction

๋งจ ์œ„๋กœ ์ด๋™ ↑

Oํ‘œ๊ธฐ๋ฒ•

๋งจ ์œ„๋กœ ์ด๋™ ↑

์ด๋™ํ‰๊ท 

๋งจ ์œ„๋กœ ์ด๋™ ↑

movingAverage

๋งจ ์œ„๋กœ ์ด๋™ ↑

selectionSort

๋งจ ์œ„๋กœ ์ด๋™ ↑

insertionSort

๋งจ ์œ„๋กœ ์ด๋™ ↑

sort

๋งจ ์œ„๋กœ ์ด๋™ ↑

viewmodel

๋งจ ์œ„๋กœ ์ด๋™ ↑

preview

๋งจ ์œ„๋กœ ์ด๋™ ↑

githubAction

Github Action๊ณผ Make๋ฅผ ํ™œ์šฉํ•œ LinkedIn ์ž๋™ ํฌ์ŠคํŒ…

๊ทธ๋Ÿฐ์˜๋ฏธ๋กœ ์„ธ์ƒ์—์„œ ์ œ์ผ ๊ท€์ฐฎ์€ ๋งํฌ๋“œ์ธ ํฌ์ŠคํŒ…์“ฐ๊ธฐ๋ฅผ ๊นƒํ—ˆ๋ธŒ ์•ก์…˜๊ณผ Make(๊ตฌ Integromat)๋ผ๋Š” ์ž๋™ํ™” ํˆด์„ ์‚ฌ์šฉํ•ด์„œ ์ž๋™ํ™” ํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

integromat

Github Action๊ณผ Make๋ฅผ ํ™œ์šฉํ•œ LinkedIn ์ž๋™ ํฌ์ŠคํŒ…

๊ทธ๋Ÿฐ์˜๋ฏธ๋กœ ์„ธ์ƒ์—์„œ ์ œ์ผ ๊ท€์ฐฎ์€ ๋งํฌ๋“œ์ธ ํฌ์ŠคํŒ…์“ฐ๊ธฐ๋ฅผ ๊นƒํ—ˆ๋ธŒ ์•ก์…˜๊ณผ Make(๊ตฌ Integromat)๋ผ๋Š” ์ž๋™ํ™” ํˆด์„ ์‚ฌ์šฉํ•ด์„œ ์ž๋™ํ™” ํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

state

๋งจ ์œ„๋กœ ์ด๋™ ↑

github.io

๋งจ ์œ„๋กœ ์ด๋™ ↑

jekyll

๋งจ ์œ„๋กœ ์ด๋™ ↑

minimal-mistake

๋งจ ์œ„๋กœ ์ด๋™ ↑

vertical

๋งจ ์œ„๋กœ ์ด๋™ ↑

category

๋งจ ์œ„๋กœ ์ด๋™ ↑

vertical category

๋งจ ์œ„๋กœ ์ด๋™ ↑

css

๋งจ ์œ„๋กœ ์ด๋™ ↑

js

๋งจ ์œ„๋กœ ์ด๋™ ↑

html

๋งจ ์œ„๋กœ ์ด๋™ ↑

liquid

๋งจ ์œ„๋กœ ์ด๋™ ↑

draw

๋งจ ์œ„๋กœ ์ด๋™ ↑

canvas

๋งจ ์œ„๋กœ ์ด๋™ ↑

drawing modifier

๋งจ ์œ„๋กœ ์ด๋™ ↑

DrawingScope

๋งจ ์œ„๋กœ ์ด๋™ ↑

offset

๋งจ ์œ„๋กœ ์ด๋™ ↑

compileSdk

๋งจ ์œ„๋กœ ์ด๋™ ↑

dependency

๋งจ ์œ„๋กœ ์ด๋™ ↑

error

๋งจ ์œ„๋กœ ์ด๋™ ↑

errorlog

๋งจ ์œ„๋กœ ์ด๋™ ↑

annotation

@JvmName์œผ๋กœ JVM Signiture ํƒ€์ž…์†Œ๊ฑฐ ๊ด€๋ จ ์˜ค๋ฒ„๋กœ๋”ฉ ์ด์Šˆ ํ•ด๊ฒฐ

์ปดํฌ์ฆˆ๋กœ UI๋ฅผ ๋งŒ๋“ค๋‹ค๊ฐ€ ํŠน์ • ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ธ์Šคํ„ด์Šคํ™” ํ•˜์ง€ ๋ชปํ•ด์„œ ํ”„๋ฆฌ๋ทฐ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์–ด๋ ค์›Œ์กŒ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋”๋ฏธ ๋ฐ์ดํ„ฐ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์—†๋Š” ํ•ด๋‹น ๋งค๊ฐœ ๋ณ€์ˆ˜ ๋ถ€๋ถ„์„ ๋ฌธ์ž์—ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ”๊พธ๋Š” ๋ž˜ํ•‘ ์ปดํฌ์ €๋ธ”์„ ์•„๋ž˜์™€ ๊ฐ™์ด ๋งŒ๋“ค์—ˆ๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

@jvmName

@JvmName์œผ๋กœ JVM Signiture ํƒ€์ž…์†Œ๊ฑฐ ๊ด€๋ จ ์˜ค๋ฒ„๋กœ๋”ฉ ์ด์Šˆ ํ•ด๊ฒฐ

์ปดํฌ์ฆˆ๋กœ UI๋ฅผ ๋งŒ๋“ค๋‹ค๊ฐ€ ํŠน์ • ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ธ์Šคํ„ด์Šคํ™” ํ•˜์ง€ ๋ชปํ•ด์„œ ํ”„๋ฆฌ๋ทฐ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์–ด๋ ค์›Œ์กŒ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋”๋ฏธ ๋ฐ์ดํ„ฐ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์—†๋Š” ํ•ด๋‹น ๋งค๊ฐœ ๋ณ€์ˆ˜ ๋ถ€๋ถ„์„ ๋ฌธ์ž์—ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ”๊พธ๋Š” ๋ž˜ํ•‘ ์ปดํฌ์ €๋ธ”์„ ์•„๋ž˜์™€ ๊ฐ™์ด ๋งŒ๋“ค์—ˆ๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

overloading

@JvmName์œผ๋กœ JVM Signiture ํƒ€์ž…์†Œ๊ฑฐ ๊ด€๋ จ ์˜ค๋ฒ„๋กœ๋”ฉ ์ด์Šˆ ํ•ด๊ฒฐ

์ปดํฌ์ฆˆ๋กœ UI๋ฅผ ๋งŒ๋“ค๋‹ค๊ฐ€ ํŠน์ • ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ธ์Šคํ„ด์Šคํ™” ํ•˜์ง€ ๋ชปํ•ด์„œ ํ”„๋ฆฌ๋ทฐ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์–ด๋ ค์›Œ์กŒ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋”๋ฏธ ๋ฐ์ดํ„ฐ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์—†๋Š” ํ•ด๋‹น ๋งค๊ฐœ ๋ณ€์ˆ˜ ๋ถ€๋ถ„์„ ๋ฌธ์ž์—ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ”๊พธ๋Š” ๋ž˜ํ•‘ ์ปดํฌ์ €๋ธ”์„ ์•„๋ž˜์™€ ๊ฐ™์ด ๋งŒ๋“ค์—ˆ๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

softeer

์ปค์Šคํ…€ ๋‹ค์ด์–ผ๋กœ๊ทธ ์ œ์ž‘๊ธฐ(XML View)

์ด ํฌ์ŠคํŒ…์€ ์‚ฌ์‹ค ์†Œํ”„ํ‹ฐ์–ด ๋ถ€ํŠธ์บ ํ”„ ํ•  ๋•Œ ๋ ˆํฌ ์œ„ํ‚ค์— ์ ์—ˆ๋˜ ๊ฑด๋ฐ ๋ ˆํฌ๊ฐ€ private์œผ๋กœ ๋ณ€๊ฒฝ๋˜๋ฉฐ ๊ฐœ์ธ ๋ธ”๋กœ๊ทธ์— ๋‹ค์‹œ ํฌ์ŠคํŒ…ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

custom dialog

์ปค์Šคํ…€ ๋‹ค์ด์–ผ๋กœ๊ทธ ์ œ์ž‘๊ธฐ(XML View)

์ด ํฌ์ŠคํŒ…์€ ์‚ฌ์‹ค ์†Œํ”„ํ‹ฐ์–ด ๋ถ€ํŠธ์บ ํ”„ ํ•  ๋•Œ ๋ ˆํฌ ์œ„ํ‚ค์— ์ ์—ˆ๋˜ ๊ฑด๋ฐ ๋ ˆํฌ๊ฐ€ private์œผ๋กœ ๋ณ€๊ฒฝ๋˜๋ฉฐ ๊ฐœ์ธ ๋ธ”๋กœ๊ทธ์— ๋‹ค์‹œ ํฌ์ŠคํŒ…ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

dialog

์ปค์Šคํ…€ ๋‹ค์ด์–ผ๋กœ๊ทธ ์ œ์ž‘๊ธฐ(XML View)

์ด ํฌ์ŠคํŒ…์€ ์‚ฌ์‹ค ์†Œํ”„ํ‹ฐ์–ด ๋ถ€ํŠธ์บ ํ”„ ํ•  ๋•Œ ๋ ˆํฌ ์œ„ํ‚ค์— ์ ์—ˆ๋˜ ๊ฑด๋ฐ ๋ ˆํฌ๊ฐ€ private์œผ๋กœ ๋ณ€๊ฒฝ๋˜๋ฉฐ ๊ฐœ์ธ ๋ธ”๋กœ๊ทธ์— ๋‹ค์‹œ ํฌ์ŠคํŒ…ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

view

์ปค์Šคํ…€ ๋‹ค์ด์–ผ๋กœ๊ทธ ์ œ์ž‘๊ธฐ(XML View)

์ด ํฌ์ŠคํŒ…์€ ์‚ฌ์‹ค ์†Œํ”„ํ‹ฐ์–ด ๋ถ€ํŠธ์บ ํ”„ ํ•  ๋•Œ ๋ ˆํฌ ์œ„ํ‚ค์— ์ ์—ˆ๋˜ ๊ฑด๋ฐ ๋ ˆํฌ๊ฐ€ private์œผ๋กœ ๋ณ€๊ฒฝ๋˜๋ฉฐ ๊ฐœ์ธ ๋ธ”๋กœ๊ทธ์— ๋‹ค์‹œ ํฌ์ŠคํŒ…ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

mvvm

M-V-Whatever, MV์‹œ๋ฆฌ์ฆˆ ์ •๋ฆฌ

๋””์ž์ธ ํŒจํ„ด์€ ๋งค๋ฒˆ ์‚ฌ์šฉํ•˜๋Š” ํŒจํ„ด๋งŒ ์ž˜ ๊ธฐ์–ตํ•˜๊ณ  ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒƒ์€ ์žŠ์–ด๋ฒ„๋ฆฌ๋Š”๊ฒŒ ์ผ์ƒ์ด๋ผ ๋‹ค์Œ์— ์žŠ์–ด๋ฒ„๋ ธ์„๋•Œ ๋น ๋ฅด๊ฒŒ ๊ธฐ์–ต์„ ๋˜๋Œ๋ฆฌ๊ธฐ ์œ„ํ•ด์„œ ์ •๋ฆฌ๋ฅผ ํ–ˆ๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

mvc

M-V-Whatever, MV์‹œ๋ฆฌ์ฆˆ ์ •๋ฆฌ

๋””์ž์ธ ํŒจํ„ด์€ ๋งค๋ฒˆ ์‚ฌ์šฉํ•˜๋Š” ํŒจํ„ด๋งŒ ์ž˜ ๊ธฐ์–ตํ•˜๊ณ  ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒƒ์€ ์žŠ์–ด๋ฒ„๋ฆฌ๋Š”๊ฒŒ ์ผ์ƒ์ด๋ผ ๋‹ค์Œ์— ์žŠ์–ด๋ฒ„๋ ธ์„๋•Œ ๋น ๋ฅด๊ฒŒ ๊ธฐ์–ต์„ ๋˜๋Œ๋ฆฌ๊ธฐ ์œ„ํ•ด์„œ ์ •๋ฆฌ๋ฅผ ํ–ˆ๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

mvp

M-V-Whatever, MV์‹œ๋ฆฌ์ฆˆ ์ •๋ฆฌ

๋””์ž์ธ ํŒจํ„ด์€ ๋งค๋ฒˆ ์‚ฌ์šฉํ•˜๋Š” ํŒจํ„ด๋งŒ ์ž˜ ๊ธฐ์–ตํ•˜๊ณ  ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒƒ์€ ์žŠ์–ด๋ฒ„๋ฆฌ๋Š”๊ฒŒ ์ผ์ƒ์ด๋ผ ๋‹ค์Œ์— ์žŠ์–ด๋ฒ„๋ ธ์„๋•Œ ๋น ๋ฅด๊ฒŒ ๊ธฐ์–ต์„ ๋˜๋Œ๋ฆฌ๊ธฐ ์œ„ํ•ด์„œ ์ •๋ฆฌ๋ฅผ ํ–ˆ๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

designPattern

M-V-Whatever, MV์‹œ๋ฆฌ์ฆˆ ์ •๋ฆฌ

๋””์ž์ธ ํŒจํ„ด์€ ๋งค๋ฒˆ ์‚ฌ์šฉํ•˜๋Š” ํŒจํ„ด๋งŒ ์ž˜ ๊ธฐ์–ตํ•˜๊ณ  ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒƒ์€ ์žŠ์–ด๋ฒ„๋ฆฌ๋Š”๊ฒŒ ์ผ์ƒ์ด๋ผ ๋‹ค์Œ์— ์žŠ์–ด๋ฒ„๋ ธ์„๋•Œ ๋น ๋ฅด๊ฒŒ ๊ธฐ์–ต์„ ๋˜๋Œ๋ฆฌ๊ธฐ ์œ„ํ•ด์„œ ์ •๋ฆฌ๋ฅผ ํ–ˆ๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

template

๋งจ ์œ„๋กœ ์ด๋™ ↑

github

๋งจ ์œ„๋กœ ์ด๋™ ↑

PR

๋งจ ์œ„๋กœ ์ด๋™ ↑

LiveData

LiveData vs Flow

์†Œํ”„ํ‹ฐ์–ด ๋ถ€ํŠธ์บ ํ”„ ํ•  ๋•Œ ์•ˆ๋“œ๋กœ์ด๋“œ ์Šคํ„ฐ๋””์—์„œ flow๋ฅผ ๊ณต๋ถ€ํ–ˆ๋˜๊ฒŒ ์ƒ๊ฐ๋‚ฌ๋Š”๋ฐ ๋…ธ์…˜์—๋งŒ ๋‘๊ธฐ ์•„๊นŒ์›Œ์„œ ํฌ์ŠคํŒ…ํ•œ๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

Flow

LiveData vs Flow

์†Œํ”„ํ‹ฐ์–ด ๋ถ€ํŠธ์บ ํ”„ ํ•  ๋•Œ ์•ˆ๋“œ๋กœ์ด๋“œ ์Šคํ„ฐ๋””์—์„œ flow๋ฅผ ๊ณต๋ถ€ํ–ˆ๋˜๊ฒŒ ์ƒ๊ฐ๋‚ฌ๋Š”๋ฐ ๋…ธ์…˜์—๋งŒ ๋‘๊ธฐ ์•„๊นŒ์›Œ์„œ ํฌ์ŠคํŒ…ํ•œ๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

livedata

LiveData vs Flow

์†Œํ”„ํ‹ฐ์–ด ๋ถ€ํŠธ์บ ํ”„ ํ•  ๋•Œ ์•ˆ๋“œ๋กœ์ด๋“œ ์Šคํ„ฐ๋””์—์„œ flow๋ฅผ ๊ณต๋ถ€ํ–ˆ๋˜๊ฒŒ ์ƒ๊ฐ๋‚ฌ๋Š”๋ฐ ๋…ธ์…˜์—๋งŒ ๋‘๊ธฐ ์•„๊นŒ์›Œ์„œ ํฌ์ŠคํŒ…ํ•œ๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

flow

LiveData vs Flow

์†Œํ”„ํ‹ฐ์–ด ๋ถ€ํŠธ์บ ํ”„ ํ•  ๋•Œ ์•ˆ๋“œ๋กœ์ด๋“œ ์Šคํ„ฐ๋””์—์„œ flow๋ฅผ ๊ณต๋ถ€ํ–ˆ๋˜๊ฒŒ ์ƒ๊ฐ๋‚ฌ๋Š”๋ฐ ๋…ธ์…˜์—๋งŒ ๋‘๊ธฐ ์•„๊นŒ์›Œ์„œ ํฌ์ŠคํŒ…ํ•œ๋‹ค.

๋งจ ์œ„๋กœ ์ด๋™ ↑

docker

๋งจ ์œ„๋กœ ์ด๋™ ↑

azure

๋งจ ์œ„๋กœ ์ด๋™ ↑

runtime-permission

๋งจ ์œ„๋กœ ์ด๋™ ↑

๋Ÿฐํƒ€์ž„ ๊ถŒํ•œ

๋งจ ์œ„๋กœ ์ด๋™ ↑

BackHandler

๋งจ ์œ„๋กœ ์ด๋™ ↑

Chain of Responsibility

๋งจ ์œ„๋กœ ์ด๋™ ↑

์ฑ…์ž„์—ฐ์‡„

๋งจ ์œ„๋กœ ์ด๋™ ↑

OnBackPressedCallback

๋งจ ์œ„๋กœ ์ด๋™ ↑

OnBackPressedDispatcher

๋งจ ์œ„๋กœ ์ด๋™ ↑

bluetooth

๋งจ ์œ„๋กœ ์ด๋™ ↑

bluetooth classic

๋งจ ์œ„๋กœ ์ด๋™ ↑

๋ธ”๋ฃจํˆฌ์Šค

๋งจ ์œ„๋กœ ์ด๋™ ↑

๋ธ”๋ฃจํˆฌ์Šค ํด๋ž˜์‹

๋งจ ์œ„๋กœ ์ด๋™ ↑