CS
31
์ด์์ฒด์ ํ๋ก์ธ์ค ๋ ๋ญ๋ฐ .. .
2024.12.01
0. ํ๋ก์ธ์คํ๋ก์ธ์ค๋ ์คํ์ค์ธ ํ๋ก๊ทธ๋จ์ด๋ค. ์ฐ๋ฆฌ๊ฐ ์ปดํจํฐ๋ก ์นดํก์ด๋ ํฌ๋กฌ์ ์คํํ๋ฉด ๊ทธ ํ๋ก๊ทธ๋จ์ ๊ฐ์ง๊ณ ์์
์ ์ํํ ์ ์๋ค. ์ฆ ์ด๋ฐ ์นดํก์ด๋ ํฌ๋กฌ ๋ชจ๋ ํ๋ก์ธ์ค์ด๋ค. ๊ทธ๋ฐ๋ฐ ์ด์ ์ฐ๋ฆฌ๋ ์ปดํจํฐ๋ก ์น์ํ์ ํ๊ฒ ๋ค๊ณ ์๋์ ์ผ๋ก ํฌ๋กฌ ํ๋๋ง ๋์๋๊ณ ํ์ง ์๋๋ค. ๋
ธ๋๋ฅผ ๋ค์ผ๋ฉด์ ์น์ํ์ ํ๊ฒ ๋ค๋ฉด ์์
ํ๋ก๊ทธ๋จ๋ ์คํ์์ผ๋๊ณ ์ฌ์ฉํ๋ค. ์ฆ, ๋ณดํต ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ๋์์ ์คํ๋๋ ๊ตฌ์กฐ์ด๋ค. ๊ทธ๋์ ์ด๋ฒ ํฌ์คํ
์์๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒ๋ค์ ์์๋ณด๋ ค๊ณ ํ๋ค.๊ทธ๋์ ํ๋ก์ธ์ค๊ฐ ๋ญ๋ฐ..?ํ๋ก์ธ์ค ๋์์ ์คํ๋๊ธฐ ์ํด์๋ ๋ญ๊ฐ ํ์ํ ๊น? 1. ํ๋ก์ธ์ค ๋ ๋ญ๋ฐ ...๋ณดํต ํ๋ก๊ทธ๋จ์ ๋์คํฌ์ ๊ณ ์ด ์ ๋ค์ด ์๋ ์ฝ๋+๋ฐ์ดํฐ ๋ฉ์ด๋ฆฌ์ด๋ค. ์ด ํ๋ก๊ทธ๋จ์ด ์คํ๋๊ธฐ ์ํด์๋ ์ผ๋จ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์์ผ ๋๊ณ , CPU๊ฐ ์ผํ๊ธฐ ..
์ด์์ฒด์ ์๊ฒ ์๋น์ค ์๊ตฌํ๊ธฐ (Command Interpreter, API)
2024.11.07
์ฐธ๊ณ ์์ - ์ด์์ฒด์ ๊ณต๋ฃก ์ฑ
์์ฑํ ๋ ๋
ธ๋์๋ก ํ์๋ ๋
ธ๋.. ^.^ - https://youtu.be/YrlnU1ogdEU?si=sqY-8iNOv2m6z_BB 0. ๊ฐ์์ฐ๋ฆฌ๋ ์ปดํจํฐ, ํด๋ํฐ ๋ฑ ๋ง์ ์ ์๊ธฐ๊ธฐ๋ฅผ ์ฌ์ฉํ๋ค. ์ด ๊ธฐ๊ธฐ๋ก ๊ฐ๋จํ ์์ฉํ๋ก๊ทธ๋จ์ ์ฐ๋ค๊ณ ๊ฐ์ ํด๋ณด์. ์ฐ๋ฆฌ๊ฐ ๋ณด๋ ๊ฒ์ ํน์ ์ ๋ณด๋ฅผ ๋ํ๋ด๋ UI์ผ ๊ฒ์ด๋ค. ํ์ง๋ง ์ด UI๋ฅผ ๋์ฐ๊ธฐ ์ํด ์ด์์ฒด์ ๋ ์๋ง์ ์๋น์ค๋ฅผ ์ ๊ณตํ๊ณ ์๋ค. ์ด๋ฒ ๊ธ์์๋ ์ด์์ฒด์ ๊ฐ ์ ๊ณตํ๋ค๋ ์๋น์ค๊ฐ ๊ทธ๋์ ๋ญ๊ณ , ์๋น์ค๋ฅผ ์์ฒญํ๊ธฐ ์ํด์๋ ์ด๋ป๊ฒ ํด์ผ๋๋์ง ์์๋ณผ ๊ฒ์ด๋ค. ์ด์์ฒด์ ์ ๋๋ถ๋ถ ์๋น์ค๋ค์ ์ปค๋์์ ์ด๋ค์ง๋ค. ๋ฐ๋ผ์ ์ด์์ฒด์ ์๊ฒ ์๋น์ค ์๊ตฌ == ์ปค๋์๊ฒ ์๋น์ค ์๊ตฌ์ ์ ์ฌํ๋ค. ํ์ง๋ง ์ด ์ปค๋์ ์๋ชป ๊ฑด๋๋ฆฌ๋ฉด ์ปดํจํฐ ์์คํ
์ด ๋ง๊ฐ์ง ์..
[Android] BottomNavigationView Custom
1
2023.12.03
๋ด๊ฐ ์ปค์คํ
ํด์ผ ๋๋ ๊ฒ ์ํ์ ๊ด๊ณ ์์ด ์์ด์ฝ vector GNB background color ๊ฐ ๊ฐ๊ฒฉ ์ค์ active, deactive ์ํ์ ์์ด์ฝ ์์ ํ
์คํธ ์์ ์ ๋๋ฉ์ด์
์ ๊ฑฐ ์์ด์ฝ ๋ฒกํฐ ์ปค์คํ
→ ๊ทธ๋ฅ menu ๊ด๋ จ xml file์์ ์ค์ ํด์ฃผ๋ฉด ๋จ. GNB Background Color? // ์์ ๋ฃ์ด์ฃผ์ด์ผ ํจ. android:background="@color/Gray_1" app:itemBackground="@color/Gray_1" ๋ ๋ค ์ค์ ํด์ฃผ์ด์ผ ๋จ. ์์ดํ
๋ง ์ค์ ํ๋ฉด ๋น ๊ณต๊ฐ์ด ์๋ ๊ฒฝ์ฐ ์์น ์๋ ์์์ด ๋ณด์ด๊ฒ ๋จ. ์์ด์ฝ & text ์์ ์ปค์คํ
? // ์์ ๋ฃ์ด์ฃผ์ด์ผ ํจ. app:itemIconTint="@color/selector_menu_home_color" a..
[Android] Hilt
2023.05.09
Dependency ํ๋์ ํด๋์ค๊ฐ ๋ค๋ฅธ ํ๋์ ํด๋์ค์ ์์กดํ๋ ๊ฒ์ ์๋ฏธํจ. A ํด๋์ค๊ฐ ๊ฐ์ฒด๋ฅผ ๋ง๋ค๊ธฐ ์ํด B ํด๋์ค๋ฅผ ํ์๋ก ํ ๋ B๋ A์ ์์กด ๋์์ด ๋จ. ์๋ฅผ ๋ค์ด ์๋ฌ๋๋ฅผ ๋ง๋ค๊ธฐ ์ํด ๋๋ ์ฑ์ด ํ์ํจ. ์๋ฌ๋๋ ๋๋ ์ฑ์ ์์กดํ๊ณ ์์. ๋ฐ๋ผ์ ์๋ฌ๋ ← ๋๋ ์ฑ ๊ด๊ณ๊ฐ ๋จ. ์ฌ๊ธฐ์ ๋๋ ์ฑ์ด ์์กด์ ๋์, Dependency๊ฐ ๋จ. Injection ์์ ์๋ฅผ ๊ณ์ ์ฌ์ฉํด์ ์๊ฐํด๋ณด๋ฉด ์๋ฌ๋ ํด๋์ค, ๋๋ ์ฑ ํด๋์ค๊ฐ ์์ ๋ ์๋ฌ๋ ๊ฐ์ฒด๋ฅผ ๋ง๋ค๊ธฐ ์ํด์๋ ๋๋ ์ฑ์ ๊ฐ์ฒด๊ฐ ํ์ํจ. ํ์ง๋ง ์ด ๋๋ ์ฑ ๊ฐ์ฒด๋ฅผ ์๋ฌ๋ ํด๋์ค ๋ด๋ถ์์ ๋ง๋๋ ๊ฒ์ด ์๋๋ผ ์ธ๋ถ์์ ๋ง๋ค์ด์ ๊ฑด๋ค์ฃผ๋ ๋ฐฉ๋ฒ๋ ์์. ์ด๋ ๊ฒ ์ธ๋ถ์์ ์์กด๊ด๊ณ๊ฐ ์๋ ๋์์ ๊ฐ์ ธ์ค๋ ๊ฒ์ ์์กด์ฑ(Dependency)์ ์ธ๋ถ์์ ์ฃผ์
(Inje..
[Android] Base Activity, Fragment
2023.04.16
๋ฐฑ์
์ฉ๋๋ก ์์ฑ import android.os.Bundle import androidx.annotation.LayoutRes import androidx.appcompat.app.AppCompatActivity import androidx.databinding.DataBindingUtil import androidx.databinding.ViewDataBinding import androidx.lifecycle.ViewModel abstract class BaseActivity(@LayoutRes val layoutRes: Int) : AppCompatActivity() { /*@LayoutRes abstract fun getLayoutRes(): Int*/ abstract val viewModel: ..
[Android] OKHttp3๋ฅผ ์ฌ์ฉํ ํค๋ ์ถ๊ฐ, Retrofit2๋ฅผ ์ฌ์ฉํ http ํต์
2023.04.16
OKHttp3, Retrofit2 square์ฌ์์ ๊ฐ๋ฐํ ์คํ์์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ. http ํด๋ผ์ด์ธํธ๋ก ์ฝ๊ฒ request, response๊ฐ ๊ฐ๋ฅํ๊ฒ ํจ. Retrofit ํน์ง ์ฑ๋ฅ์ด ์ข์. (Volley, AsyncTask์ ๋นํด) annotation์ ์ฌ์ฉํด HTTP ์์
์ ํ๋ ๋ฉ์๋๋ฅผ ์ ์ํ๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฐ์๋ค์ด ํ์๋ฅผ ์์ฝ๊ฒ ์์๋ณผ ์ ์์. (๊ฐ๋
์ฑ ๐) ์ฃผ๊ณ ๋ฐ๋ ๋ฐ์ดํฐ(JSON)๋ฅผ ์๋์ผ๋ก ํ์ฑํด์ฃผ๊ธฐ ๋๋ฌธ์ ์ ์ง๋ณด์๊ฐ ํธ๋ฆฌํจ. ์บ์ฑ์ด ๋ถ๊ฐ๋ฅํจ image loading์ด ๋ถ๊ฐ๋ฅํ์ฌ glide์ ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํด์ผ ํจ. OKHttp3 - ๋ด๊ฐ ์ฌ์ฉํ ๋ถ๋ถ ๋ด๊ฐ ์ฌ์ฉํ ๋ถ๋ถ์ ํด๋ผ์ด์ธํธ์์ request๋ฅผ ๋ ๋ฆด ๋ ํค๋๋ฅผ ๋ฃ์ด์ฃผ๋๋ก ๋ง๋ค์์. // header ์ถ๊ฐ private val ok..