https://yamanf.medium.com/cracking-the-android-code-interview-android-basics-5739efe98431
1. ์๋๋ก์ด๋์ ๊ธฐ๋ณธ ๊ฐ๋ ์ ๋ฌด์์ธ๊ฐ?
์คํ ์์ค์, ๋ฆฌ๋ ์ค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ์ด์์ฒด์ ๋ก ์ค๋งํธํฐ๊ณผ ํ๋ธ๋ฆฟ๊ณผ ๊ฐ์ ํฐ์น์คํฌ๋ฆฐ ๋ชจ๋ฐ์ผ ์ฅ์น๋ฅผ ์ํด ์ค๊ณ๋์๋ค.
๊ฐ๋ฐ์๋ค์๊ฒ๋ ํ์ ์ ์์ฉ ํ๋ก๊ทธ๋จ๋ค์ ๊ฐ๋ฐํ๋ ํ๋ซํผ์ ์ ๊ณตํ๊ณ ์ฌ์ฉ์๋ค์๊ฒ๋ ํ๋ถํ ์ฑ๊ณผ ์๋น์ค ์ํ๊ณ๋ฅผ ์ ๊ณตํ๋ค.
2. ์๋๋ก์ด๋์ ์ํคํ ์ฒ
๋ฆฌ๋ ์ค ์ปค๋, ๋ค์ดํฐ๋ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค, ์๋๋ก์ด๋ ๋ฐํ์ด, ์ ํ๋ฆฌ์ผ์ด์ ํ๋ ์์ํฌ, ์ด 4๊ฐ์ง ์ฃผ์ ๊ตฌ์ฑ ์์๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
๋ฆฌ๋ ์ ์ปค๋ : ํต์ฌ ์์คํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
๋ค์ดํฐ๋ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค : ์ ์์ค ๊ธฐ๋ฅ๋ค์ ์ ๊ณตํ๋ค.
์๋๋ก์ด๋ ๋ฐํ์ : ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋๋ฅผ ์คํํ๊ณ ๊ด๋ฆฌํ๋ค.
์ ํ๋ฆฌ์ผ์ด์ ํ๋ ์์ํฌ : ๊ณ ์์ค ์๋น์ค(์กํฐ๋นํฐ ๊ด๋ฆฌ, ๋ฆฌ์์ค ์ฒ๋ฆฌ ๋ฑ)๋ฅผ ์ ๊ณตํ๋ค.
3. ์๋๋ก์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ฑํ๋ ์์๋ค
์๋๋ก์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์กํฐ๋นํฐ, ์๋น์ค, ๋ธ๋ก๋์บ์คํธ ๋ฆฌ์๋ฒ, ์ฝํ ํธ ํ๋ก๋ฐ์ด๋๋ก ๊ตฌ์ฑ๋๋ค.
์กํฐ๋นํฐ : ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ ๊ฐ๋ณ์ ์ธ ํ๋ฉด์ ์ ๊ณตํ๋ค.
์๋น์ค : ๋ฐฑ๊ทธ๋ผ์ด๋ ์์ ์ ์คํํ๋ค.
๋ธ๋ก๋์บ์คํธ ๋ฆฌ์๋ฒ : ์์คํ ์ ์ฒด์ ์ด๋ฒคํธ์ ๋ฐ์ํ๋ค.
์ฝํ ํธ ํ๋ก๋ฐ์ด๋ : ๊ณต์ ๋ฐ์ดํฐ๋ค์ ๊ด๋ฆฌํ๋ค.
4. ์กํฐ๋นํฐ์ ํ๋๊ทธ๋จผํธ์ ์ฐจ์ด
์กํฐ๋นํฐ๋ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๊ฐ์ง๋ ๊ฐ๋ณ ํ๋ฉด์ ๋ํ๋ด๊ณ , ํ๋๊ทธ๋จผํธ๋ ์กํฐ๋นํฐ ์์์ ๋ชจ๋์์ด๊ณ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๊ตฌ์ฑ์์์ด๋ค. ํ๋๊ทธ๋จผํธ๋ ์ ์ฐํ UI ๋์์ธ, ์ฑ ๋ ์ด์์์ ๋ ๋์ ๊ตฌ์ฑ๊ณผ ๊ด๋ฆฌ๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ๋ค.
5. AndroidManifest.xml ํ์ผ์ ์ฉ๋๋ ๋ฌด์์ธ๊ฐ
AndroidManifest.xml ํ์ผ์ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๊ด๋ จ๋ ํ์ ์ ๋ณด๋ค์ ๋ด๊ณ ์๋ค. ํ์ ์ ๋ณด๋ค๋ก๋ ํจํค์ง ์ด๋ฆ, ๋ฒ์ , ๊ถํ, ์กํฐ๋นํฐ๋ค์ด ์๋ค. ์ด๊ฒ์ ์๋๋ก์ด๋ ์์คํ ์ด ๋ฐํ์ ๋์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์กฐ์ ๋์์ ์ดํดํ๋ ๋ฐ ์ฒญ์์ง์ผ๋ก์์ ์ญํ ์ ํ๋ค.
6. Android ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ช ์ฃผ๊ธฐ
Android ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ช ์ฃผ๊ธฐ๋ ์ฌ๋ฌ ๋จ๊ณ๋ค๊ณ ๊ตฌ์ฑ๋๋ค.
onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy()๋ก ๊ตฌ์ฑ๋๋ค.
์ด ์๋ช ์ฃผ๊ธฐ๋ฅผ ์ดํดํ๋ ๊ฑด ๋ฆฌ์์ค๋ค์ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ๊ณ , ์ค์ (๊ตฌ์ฑ/configuration) ๋ณ๊ฒฝ์ ์ฒ๋ฆฌํ๊ณ , ์ ํ๋ฆฌ์ผ์ด์ ์ํ ์ ์ง์ ์ค์ํ๋ค.
7. Android์์ R.layout, R.id์ ์์์์ R
์๋๋ก์ด๋ ๊ฐ๋ฐ์์ 'R'์ ์๋์ผ๋ก ์์ฑ๋๋ ์๋ฐ ํด๋์ค๋ฅผ ๋ํ๋ธ๋ค. ์ด ํด๋์ค๋ ๋ ์ด์์, ๋ฌธ์์ด, ๋๋ก์ด๋ธ ์ด๋ฏธ์ง๋ค๊ณผ ๊ฐ์ ๋ฆฌ์์ค๋ค์ ์ฐธ์กฐ๋ฅผ ๋ด๊ณ ์๋ค. R์ ๋ฆฌ์์ค ๊ด๋ฆฌ๋ฅผ ๋จ์ํ์ํค๊ณ , ๊ฐ๋ฐ์๋ค์ด ๊ณ ์ ํ ์๋ณ์๋ค์ ์ด์ฉํด ํ๋ก๊ทธ๋๋ฐ๋ฐฉ์์ผ๋ก ๋ฆฌ์์ค๋ค์ ์ ๊ทผํ ์ ์๋๋ก ํ๋ค.
8. setContentView() ๋ฉ์๋์ ์ญํ
setContentView()๋ ์กํฐ๋นํฐ์์ ๋ ์ด์์์ ์ธํ ํ๋๋ฐ ์ฌ์ฉ๋๊ณ , ํ๋ฉด ์์์ ๋ณด์ฌ์ง๋ UI ์์๋์ ์ ์ํ๋๋ฐ ์ฐ์ธ๋ค. XML ๋ ์ด์์ ํ์ผ์ ์ธํ๋ ์ดํธํ๊ณ ์ฌ์ฉ์ ์ธํฐํ์ด์ค์ ์๊ฐ์ ๊ณ์ธต๊ตฌ์กฐ๋ฅผ ๋ง๋ค์ด ์ฌ์ฉ์์์ ์ธํฐ๋ ์ ์ ๊ฐ๋ฅํ๊ฒ ํ๋ค.
9. ๋ค์ํ ํ๋ฉด ํฌ๊ธฐ ๊ด๋ฆฌ ์ ๋ต
Android์์ ๋ค์ํ ํ๋ฉด ํฌ๊ธฐ ๊ด๋ฆฌ ์ ๋ต์ผ๋ก๋ ๋ฐ์ํ ๋ ์ด์์ ๋์์ธ, constraint layout, ๋ฆฌ์์ค ํ์ ์(qulifier, ์ : mdpi, hdpi, xhdpi) ์ฌ์ฉ ๋ฑ์ด ์๋ค. ๋ ์ด์์์ ์ต์ ํํ๊ณ density-independent pixels(dp)๋ฅผ ์ฌ์ฉํด ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ค์ํ ํ๋ฉด ํฌ๊ธฐ์ ํด์๋์ ์ํํ ๋์ํ ์ ์๋ค.
'๋น ๊ตฌ๋ฉ ์ฑ์ฐ๊ธฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Sample] PictureInPictureKotlin ์ฝ๋ ์ดํผ๊ธฐ - 1 (0) | 2024.06.26 |
---|---|
[API ๋ฌธ์ํ] API ๋ฌธ์ ๊ธฐ์ ๋ธ๋ก๊ทธ ๊ธ (0) | 2024.04.22 |
[Android][GridLayoutManager] view item ์ผํฐ ์ ๋ ฌ ์๋ ๊ฒฝ์ฐ (1) | 2023.10.28 |
[๋์์ธ ํจํด] Repository Pattern (0) | 2023.10.28 |
[ํ๋ก๊ทธ๋๋จธ์ ๋] ๋ณ์ ์ญํ (0) | 2023.09.03 |