profile
๐Ÿฅ

Effective Kotlin #7 ๋น„์šฉ ์ค„์ด๊ธฐ (Make it cheap)

item 45. ๋ถˆํ•„์š”ํ•œ ๊ฐ์ฒด ์ƒ์„ฑ์„ ํ”ผํ•˜๋ผ

2022๋…„ 12์›” 10์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

Effective Kotlin #6 ํด๋ž˜์Šค ์„ค๊ณ„

์ƒ์†is-a ๊ด€๊ณ„์˜ ๊ฐ์ฒด ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์„ค๊ณ„is-a(is a relationship, inheritance)๋Š” ์ผ๋ฐ˜์ ์ธ ๊ฐœ๋…๊ณผ ๊ตฌ์ฒด์ ์ธ ๊ฐœ๋…์˜ ๊ด€๊ณ„ex. ์‚ฌ๋žŒ์€ ๋™๋ฌผ์ด๋‹ค. ์†Œ๋Š” ๋™๋ฌผ์ด๋‹ค.์ผ๋ฐ˜ ํด๋ž˜์Šค๋ฅผ ๊ตฌ์ฒดํ™” ํ•˜๋Š” ์ƒํ™ฉ์—์„œ ์ƒ์†์„ ์‚ฌ์šฉhas-a(has a re

2022๋…„ 12์›” 8์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

Effective Kotlin #5 ๊ฐ์ฒด ์ƒ์„ฑ

์ฝ”ํ‹€๋ฆฐ์˜ ์ฝ”๋“œ๋Š” ์ˆœ์ˆ˜ ํ•จ์ˆ˜ํ˜• ์Šคํƒ€์ผ๋กœ ์ž‘์„ฑํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ์ž๋ฐ”์ฒ˜๋Ÿผ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(OOP) ์Šคํƒ€์ผ๋กœ๋„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.OOP๋Š” ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด์„œ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ, ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •์˜ํ•ด์•ผ ํ•œ๋‹ค.๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ์„œ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋‹ค๋ฅธ ํŠน์ง•์ด ์ƒ๊ธด๋‹ค. ๋”ฐ๋ผ์„œ

2022๋…„ 12์›” 2์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

Guide to Android app modularization

https://developer.android.com/topic/modularization

2022๋…„ 11์›” 19์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

Effective Kotlin #4 ์ถ”์ƒํ™” ์„ค๊ณ„

์ถ”์ƒํ™”(Abstraction) : ๋ณตํ•ฉํ•œ ์ž๋ฃŒ, ๋ชจ๋“ˆ ์‹œ์Šคํ…œ ๋“ฑ์œผ๋กœ๋ถ€ํ„ฐ ํ•ต์‹ฌ์ ์ธ ๊ฐœ๋… ๋˜๋Š” ๊ธฐ๋Šฅ์„ ๊ฐ„์ถ”๋ ค ๋‚ด๋Š” ๊ฒƒ

2022๋…„ 11์›” 19์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

Effective Kotlin #3 ์žฌ์‚ฌ์šฉ์„ฑ

ใ…‡

2022๋…„ 11์›” 19์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

Effective Kotlin #2 ๊ฐ€๋…์„ฑ

์ฝ”ํ‹€๋ฆฐ์€ ๊ฐ„๊ฒฐ์„ฑ์„ ๋ชฉํ‘œ๋กœ ์„ค๊ณ„๋œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๊ฐ€ ์•„๋‹ˆ๋ผ, ๊ฐ€๋…์„ฑ(readability)์„ ์ข‹๊ฒŒ ํ•˜๋Š” ๋ฐ ๋ชฉํ‘œ๋ฅผ ๋‘” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๊ฐœ๋ฐœ์ž๊ฐ€ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐ๋Š” 1๋ถ„์ด ๊ฑธ๋ฆฌ์ง€๋งŒ, ์ด๋ฅผ ์ฝ๋Š” ๋ฐ๋Š” 10๋ถ„์ด ๊ฑธ๋ฆฐ๋‹ค.ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ์“ฐ๊ธฐ๋ณด๋‹ค ์ฝ๊ธฐ๊ฐ€ ์ค‘์š”ํ•˜๋‹ค.์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋‹ค๊ฐ€ ์˜ค

2022๋…„ 11์›” 11์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

Effective Kotlin #1 ์•ˆ์ •์„ฑ

์ฝ”ํ‹€๋ฆฐ์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ? : ์•ˆ์ •์„ฑ(safety)kotlin์€ ๋‹ค์–‘ํ•œ ์„ค๊ณ„ ์ง€์›์„ ํ†ตํ•ด์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ž ์žฌ์ ์ธ ์˜ค๋ฅ˜๋ฅผ ์ค„์—ฌ์ค€๋‹ค.kotlin์ด ์•ˆ์ •์„ฑ์„ ์œ„ํ•ด ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ๋“ค์„ ์‚ดํŽด๋ณผ ์ˆ˜ ์žˆ๋‹ค.๊ฐ€๋ณ€์„ฑ ์ œํ•œ์˜ ํ•„์š”์„ฑstatus ๋ณ€๊ฒฝ์ด ๋งŽ์•„์ง€๋ฉด ํ”„๋กœ๊ทธ๋žจ ์ดํ•ด์™€ ๋””๋ฒ„๊น… ํž˜๋“ค๋‹ค

2022๋…„ 11์›” 2์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

Channel, receiveAsFlow ์ฐจ์ด

Channel๋กœ ๊ฐ’์„ ์ „์†ก/์ˆ˜์‹  ํ•˜๋ ค๋ฉด ๊ฐ™์€ CoroutineScope๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.ํ•˜์ง€๋งŒ, Channel์„ Flow๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐฉ์ถœํ•œ๋‹ค๋ฉด ๋‹ค๋ฅธ CoroutineScope๋ฅผ ์‚ฌ์šฉํ•ด๋„ ์ž˜ ๋™์ž‘ํ•œ๋‹ค.Flow๋กœ ๋ณ€ํ™˜ํ•˜์ง€ ์•Š๊ณ  Channel๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ?

2022๋…„ 9์›” 12์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

Fragment์—์„œ StateFlow, SharedFlow, ChannelAsFlow ๋ฐฉ์ถœ ํ™•์ธ

sharedflow๋Š” ๋ฐ›๋˜์ง€ ์•ˆ๋ฐ›๋˜์ง€ ์ƒ๊ด€์—†์ด ํ˜๋ ค๋ณด๋‚ด๋ฉด ๋์ž„channel์€ blocking queue์ฒ˜๋Ÿผ ๋™์ž‘ํ•˜์—ฌ ๋ฐฉ์ถœ๋˜์ง€ ์•Š๊ณ  ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ๋‹ค๊ฐ€ ์ค€๋น„๋˜๋ฉด ๋ฐฉ์ถœํ•˜๊ธฐ์— ์ž˜ ๋‚˜์˜ด๋ฒˆ์™ธ)stateflow๋Š” ์ด๋ฏธ ๋ฐฉ์ถœ๋˜์—ˆ์ง€๋งŒ ๋‹ค์‹œ ๊ฐ’์„ ์š”๊ตฌํ•˜์—ฌ ์ตœ์‹ ๊ฐ’์„ ๋ณด์—ฌ์ฃผ๊ธฐ์— ๋ทฐ์—์„œ ๋ณด์ž„์ฝ”

2022๋…„ 9์›” 5์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

Fragment LiveData observe ์ƒํ™ฉ์—์„œ์˜viewLifecycleOwner ์‚ฌ์šฉ

Fragment LiveData์™€ viewLifecycleOwner Fragment์—์„œ LiveData observe ์‹œ ๋„˜๊ธฐ๋Š” ์ธ์ž์— ๋”ฐ๋ผ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ ์ƒํ™ฉ 2๊ฐ€์ง€ LifecycleOwner ์ธ์ž์— requireActivity()๋ฅผ ๋„˜๊ธฐ๋Š” ์ƒํ™ฉ โ†’ Exc

2022๋…„ 8์›” 19์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

๋‚ด repository๊ฐ€ ์•„๋‹Œ ๊ณณ์— commit ํ•  ๋•Œ ์ž”๋”” ์‹ฌ๋Š” ๋ฐฉ๋ฒ•

๊นƒํ—ˆ๋ธŒ์— ์ž”๋””๋ฅผ ์‹ฌ์„ ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ค€ GitHub ๊ณ„์ •๊ณผ commit ์ด๋ฉ”์ผ ๊ณ„์ •์ด ๋™์ผํ•ด์•ผ ํ•œ๋‹ค. Forkํ•œ repository๊ฐ€ ์•„๋‹Œ ๋‚ด repository์—์„œ commitํ•ด์•ผ ํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ๊ธฐ์ค€ ๋•Œ๋ฌธ์— ์•„๋ž˜์™€ ๊ฐ™์€ ์ผ€์ด์Šค์—์„œ๋Š” ์ž”๋””๊ฐ€ ์‹ฌ๊ธฐ์ง€ ์•Š๋Š”๋‹ค. Organiz

2022๋…„ 3์›” 22์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

Received status code 502 from server: Bad Gateway Disable Gradle 'offline mode' and sync project ๋นŒ๋“œ ์—๋Ÿฌ ํ•ด๊ฒฐ

Received status code 502 from server: Bad Gateway Disable Gradle 'offline

2022๋…„ 1์›” 24์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

JavaScript features for ReactNative

imports and exports๋ชจ๋“ˆ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ, ๋‚ด๋ณด๋‚ด๊ธฐnode_modules ๋‚ด์—์„œ ๋ชจ๋“ˆ์˜ ๋””๋ ‰ํ† ๋ฆฌ ์ด๋ฆ„์„ ๊ฐ€์ ธ์˜จ๋‹ค.block-scoped declarationslet, constconstants with mutable values -> reassigning(x),

2021๋…„ 7์›” 27์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

React Native Execution failed for task ':app:compileDebugJavaWithJavac'.

react-native run-android jdk ๊ฒฝ๋กœ ์ง€์ •

2021๋…„ 7์›” 21์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

Study React Native :: Basic

react-native ๊ฐœ๋… ์ •๋ฆฌ

2021๋…„ 7์›” 19์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

git commit ๋‚ ์•„๊ฐ„ ๋ฌธ์ œ ํ•ด๊ฒฐ

๊นƒ ํƒ€์ž„๋ผ์ธ์— ์žˆ๋˜ ์ปค๋ฐ‹ ๊ธฐ๋ก์ด ์‚ฌ๋ผ์กŒ์„ ๋•Œ

2021๋…„ 7์›” 12์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

์—˜๋ผ์Šคํ‹ฑ์„œ์น˜ ์‹ค๋ฌด ๊ฐ€์ด๋“œ :: Elastic Search์™€ Lucene ์ด์•ผ๊ธฐ - ๋‚ด์šฉ ์ •๋ฆฌ

์—˜๋ผ์Šคํ‹ฑ์„œ์น˜ ์‹ค๋ฌด ๊ฐ€์ด๋“œ ์ฑ… ๋‚ด์šฉ ์ •๋ฆฌ

2021๋…„ 7์›” 4์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

Gradle task ๋ชป์ฐพ๋Š” ๊ฒฝ์šฐ ์ƒ์„ฑ ๋ฐฉ๋ฒ• signingReport

์•ˆ๋“œ๋กœ์ด๋“œ ๋ฒ„์ „ 4.1๊นŒ์ง€๋Š” gradle ํƒญ์—์„œ task๊ฐ€ ๋ฐ”๋กœ ์žกํ˜”์ง€๋งŒ4.2 ๋ถ€ํ„ฐ๋Š” task๋ฅผ ์žก์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ๋‹ค.run/debug configuration์—์„œ ์ง์ ‘ task๋ฅผ ์ƒ์„ฑํ•ด์„œ ์žก์•„์ฃผ์–ด SHA1์„ ์ฐพ์•˜๋‹ค.

2021๋…„ 6์›” 17์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

unable to load class 'javax.xml.bind.JAXBException'.

์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค์—์„œ JDK1_8 ์ž˜ ์žกํ˜€์žˆ๋˜ ์ƒํ™ฉJDK8 ์žฌ์„ค์น˜์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค์—์„œ JDK๊ฒฝ๋กœ ์„ค์น˜ํ•œ ๊ฒฝ๋กœ๋กœ ๋‹ค์‹œ ์žฌ์„ค์ •ํ•˜์—ฌ ํ•ด๊ฒฐ (mac os ๊ธฐ์ค€ /Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Hom

2021๋…„ 5์›” 11์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท