๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ
-
[Java] Java IO, NIOAndroid/Java 2021. 2. 22. 14:47
์ด ๊ธ์ "์๋ฐ ์จ๋ผ์ธ ์คํฐ๋"์์ ๊ณต๋ถํ ๋ด์ฉ์ ์ ๋ฆฌํ์ฌ ์์ฑํ์์ต๋๋ค. Java IO ๋ชจ๋ ํ๋ก๊ทธ๋จ์์๋ ๋ฐ์ดํฐ ์ฃผ๊ณ ๋ฐ๋ ๊ณผ์ ์ ํ์ฐ์ ์ ๋๋ค. ์ฌ์ฉ์๊ฐ ๋ง์ฐ์ค๋ ํค๋ณด๋๋ฅผ ํตํด ์ง์ ์ ๋ ฅ์ ํ์ฌ ํ๋ก๊ทธ๋จ์๊ฒ ์ ์ก์ ํ๊ฑฐ๋, ํ๋ก๊ทธ๋จ์์ ์ฌ์ฉ์์๊ฒ ๋ชจ๋ํฐ๋ ํ์ผ ๋ฑ์ผ๋ก ๋ณด๋ด์ด ์ถ๋ ฅํ ์๋ ์์ต๋๋ค. ์๋ฐ์์๋ ๋ฐ์ดํฐ๋ฅผ ์คํธ๋ฆผ(stream) ํํ๋ก ์ ์ถ๋ ฅ์ ํ๊ฒ ๋ฉ๋๋ค. ์คํธ๋ฆผ์ด๋ ์ถ๋ฐ์ ์์ ๋์ฐฉ์ ๊น์ง ์ฐ์์ ์ผ๋ก ํ๋ฌ๊ฐ๋ค๋ ๊ฐ๋ ์ ๋ปํฉ๋๋ค. ํ๋์ ์คํธ๋ฆผ์ ๊ฐ์ง๊ณ ์ ๋ ฅ๊ณผ ์ถ๋ ฅ์ ๋์์ ํ ์๋ ์์ต๋๋ค. ํ๋ก๊ทธ๋จ์ด ์ก์ ์ธก์ธ์ง, ์์ ์ธก์ธ์ง์ ๋ฐ๋ผ ์คํธ๋ฆผ์ ์ข ๋ฅ๊ฐ ๊ฒฐ์ ๋ฉ๋๋ค. ํ๋ก๊ทธ๋จ์ด ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ฒ ๋ ๋๋ InputStream์ ์ฌ์ฉํ๊ณ , ํ๋ก๊ทธ๋จ์ด ๋ฐ์ดํฐ๋ฅผ ์ก์ ํ ๋๋ OutputStream์ ์ฌ์ฉ..
-
[Java] Annotation, Meta data๋?Android/Java 2021. 2. 19. 18:27
์ด ๊ธ์ "์๋ฐ ์จ๋ผ์ธ ์คํฐ๋"๋ฅผ ํตํด ๊ณต๋ถํ ๋ด์ฉ์ ์์ฑํ์์ต๋๋ค. Annotation์ด๋? Anntation์ JDK 1.5๋ถํฐ ๋์ ๋ ๊ฒ์ผ๋ก ์๋ฐ ์์ค ์ฝ๋์ ์ถ๊ฐํ์ฌ ์ฌ์ฉํ ์ ์๋ ๋ฉํ๋ฐ์ดํฐ์ ์ผ์ข ์ ๋๋ค. ๋๋ถ๋ถ์ด ๋ง์ด ๋ดค์ ๋งํ @Override, @Deprecated ๊ฐ Annotation ์๋ก Annotation์ ๊ตฌํ๋ ์ ๋ณด์ ๋ฐ๋ผ ์ฐ๊ฒฐ๋๋ ๋ฐฉํฅ์ด ๊ฒฐ์ ๋ฉ๋๋ค. ์ฆ, ์ ์ฒด์ ์ธ ์์ค์ฝ๋์ ๋ก์ง์ ๋ฐ๊พธ์ง ์์ง๋ง Annotation์ ํ๊ฒ์ ์ฐ๊ฒฐ ๋ฐฉ๋ฒ์ด๋ ์์ค์ฝ๋์ ๊ตฌ์กฐ๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. Annotation์ ๊ธฐ๋ฅ์ ์ ํ์ฉํ๋ค๋ฉด ๋น์ฆ๋์ค ๋ก์ง๊ณผ ๋ณ๋์ ์์คํ ์ค์ ์ Annotation์๊ฒ ์์ํจ์ผ๋ก์จ ๊ฐ๋ฐ์๋ค์ ๋ก์ง ๊ตฌํ์๋ง ์ง์คํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ Annotation์ ํตํด AOP(..
-
[Android] Robelctric Test๋Android 2021. 2. 17. 09:35
Android Test ์ฐธ์กฐ(https://meetup.toast.com/posts/187) Local Unit Test ํ ์คํธ ์คํ ์๊ฐ์ ์ต์ํํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ํ ์คํธ์ธ ์ ๋ ํ ์คํธ๋ JVM์์ ์คํ๋ฉ๋๋ค. Unit Test๋ฅผ ์ํํ๊ธฐ ์ํด์๋ module-name/src/test/java ํด๋์ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํด์ผ ํฉ๋๋ค. ์๋๋ก์ด๋ ํ๋ ์์ํฌ ์ข ์์ฑ์ด ์๋ ํ ์คํธ ์ฝ๋์ ์ฃผ๋ก ์ฌ์ฉ๋ฉ๋๋ค. ๋ง์ฝ Android ์ปดํฌ๋ํธ๋ค์ Unit Test ์ฝ๋์ ์ฌ์ฉํ๊ฒ ๋๋ฉด ํ ์คํธ๋ ์คํจํฉ๋๋ค. Unit Test์์ ์ฌ์ฉํ๋ ์๋๋ก์ด๋ ์ปดํฌ๋ํธ๋ค์ android-stubs-src.jar ํ์ผ์ ์ฐธ์กฐํ๋๋ฐ ์ค์ ์ด ํ์ผ๋ค์ ๋น ๊ป๋ฐ๊ธฐ๋ค๋ง ๋ชจ์ฌ ์์ด ์คํ๋ ์ ์์ต๋๋ค. ์ด๋ก ์ธํด Instrumentation ..
-
[Android] Unit Test, JUnit4Android 2021. 2. 16. 23:52
Unit Test Unit Test๋ ๋ง ๊ทธ๋๋ ๋จ์ ํ ์คํธ๋ก, Test Driven Development๋ก ๊ฐ๋ฐํ๊ฒ ๋๋ฉด ๊ธฐ๋ฅ ๋จ์๋ณ๋ก ํ ์คํธ ์ฝ๋๋ฅผ ๊ตฌ์ฑํด์ผ ํฉ๋๋ค. ๋ํ์ ์ธ Unit Test Tool๋ก JUnit์ด ์์ผ๋ฉฐ, ์๋ฐ ํ๋ก๊ทธ๋๋ฐ์ฉ ๋จ์ํ ์คํธ ํ๋ ์์ํฌ์ ๋๋ค. ์ฃผ๋ก ์๋๋ก์ด๋ ํ๋ ์์ํฌ์์ dependency๊ฐ ์๋ ํ ์คํธ ์ฝ๋์ ์ฌ์ฉ๋๋ฉฐ, ๋ก์ปฌ JVM์์ ์คํ๋ฉ๋๋ค. ๋ง์ฝ, ์๋๋ก์ด๋ ํ๋ ์์ํฌ์์ ๋ณต์กํ ์ํธ์์ฉ์ ํ๋ dependecny๊ฐ ์๋ค๋ฉฐ Robolectric ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๊ณ , ํ ์คํธ์ ์ต์ํ์ ์๋๋ก์ด๋ ํ๋ก์ ํธ์ dependency๋ผ๋ฉด Mockito์ ๊ฐ์ ๋ชจ์ ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. Gradle ์ค์ Unit Test์ ์์ค ํ์ผ์ module-nam..
-
[Java] Enum์ด๋?Android/Java 2021. 2. 14. 18:43
์ด ๊ธ์ "์๋ฐ ์จ๋ผ์ธ ์คํฐ๋" ๋ด์ฉ์ ๊ณต๋ถํ์ฌ ์์ฑํ ๊ธ์ ๋๋ค. ์์์ ํํ ๊ธฐ์กด์ ์์๋ฅผ ํํํ ๋๋ ํด๋น ํด๋์ค ๋ด๋ถ์ final static String, final static int์ ๊ฐ์ด ์ ์๋ฅผ ํ์์ต๋๋ค. ์ด์ฒ๋ผ ์ ์ํ๋ ๋ฐฉ์์ ์์๊ฐ ๋ง์์ง ๊ฒฝ์ฐ ๊ฐ๋ ์ฑ์ด ๋จ์ด์ง๊ณ , ์ด๋ค ๊ฒ์ ๊ดํ ์์์ธ์ง ํ์ ํ๊ธฐ๊ฐ ์ด๋ ต์ต๋๋ค. ๊ทธ๋์ ์๋ก์ด ์์ ํด๋์ค ๋๋ ์์ ์ธํฐํ์ด์ค๋ฅผ ๋ง๋ค์ด์ ์ ์๋ฅผ ํ์ง๋ง ์ด ์ญ์๋ ์ฌ๋ฌ๊ฐ์ง ๋ถํธํจ์ด ์กด์ฌํ์์ต๋๋ค. interface UNIVERSITY{ int SEOUL = 1; int YONSEI = 2; int KOREA = 3; } interface MAJOR{ int KOREAN = 1; int MATH = 2; int ENGLISH = 3; int SCIENCE =..
-
[Git] Repo ์ค์น ๋ฐ ์ฌ์ฉGit 2021. 2. 12. 21:05
Repo๋? Repo๋ ํ์์ ์ฌ๋ฌ๊ฐ์ง Git repository๋ฅผ ํตํฉํ์ฌ Android ๊ฐ๋ฐ workflow๋ฅผ ์๋ํํฉ๋๋ค. Repo๋ Git์ ๋์ฒดํ๋ ๊ฒ์ด ์๋ Android์ ์ปจํ ์คํธ์์ Git์ ์ฝ๊ฒ ์์ ํ ์ ์๋๋ก ํ๋๋ฐ ๋ชฉ์ ์ด ์์ต๋๋ค. Repo๋ manifest ํ์ผ์ ์ด์ฉํ์ฌ Android ํ๋ก์ ํธ์ Git ํ๋ก์ ํธ๋ฅผ ๋ชจ์๋ก๋๋ค. repo ๋ช ๋ น์ด๋ ๊ฒฝ๋ก ์ด๋์๋ ์ฝ์ ํ ์ ์๋ ์คํ ๊ฐ๋ฅํ Python ์คํฌ๋ฆฝํธ์ ๋๋ค. ์ฐธ์กฐ(https://source.android.com/setup/develop#installing-repo) Repo ์ค์น # Debian/Ubuntu $ sudo apt-get install repo # Gentoo. $ sudo emerge dev-vcs/repo๋ง์..
-
[Android] ์๋๋ก์ด๋ ์คํ๋์ค NDK ์ฌ์ฉ๋ฒAndroid 2021. 2. 12. 07:41
NDK๋? ์๋๋ก์ด๋ ์คํ๋์ค์์ ๋ฐ์ดํธ ์ฝ๋๊ฐ ์๋ ๋ค์ดํฐ๋ธ ์ฝ๋(C/C++)๋ฅผ ์ฌ์ฉํด์ผ ํ ๋๊ฐ ์์ต๋๋ค. ์๋ฐ ์ด์ธ์ ๋ค์ดํฐ๋ธ ์ฝ๋(C/C++)์ ์ฌ์ฉํ๊ธฐ ์ํด์๋ JNI(Java Native Interface)๋ผ๋ ์ธํฐํ์ด์ค๊ฐ ์์ด์ผ ํฉ๋๋ค. NDK(Native Development Kit)๋ ์๋๋ก์ด๋ ํ๊ฒฝ์์ JNI๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ๊ตฌ์ฑ๋ ํคํธ์ ๋๋ค. NDK ์ค์น ์๋๋ก์ด๋ ์คํ๋์ค ์๋จ๋ฐ์ Tools -> SDK Manager๋ฅผ ํด๋ฆญํฉ๋๋ค. ์ดํ Android SDK์ SDK Tools์์ NDK๋ฅผ ์ค์นํ ์ ์์ต๋๋ค. Show Package Detail์ ๋๋ฌ ์์ธํ ๋ฒ์ ์ NDK๋ ์ค์น๊ฐ๋ฅํฉ๋๋ค. NDK ์์น ์ค์ ์๋๋ก์ด๋ ์๋จ๋ฐ์ File -> Project Structure๋ฅผ ํด๋ฆญํฉ..
-
[Ubuntu] Ubuntu ์ค์น ๋ฐ ํ๊ฒฝ ์ค์ Ubuntu 2021. 2. 12. 00:27
์ด ๊ธ์ Ubuntu ์ค์น ๋ฐฉ๋ฒ๊ณผ ๊ธฐ๋ณธ์ ์ธ ํ๊ฒฝ ์ค์ ์ ๋ํ ์ค๋ช ์ ๋๋ค. VMware Fusion ์ค์น VMware Fusion ๊ณต์ ํํ์ด์ง ์ ๊ฐ๋ฉด ๋ค์ด๋ก๋๋ฅผ ๋ฐ์ ์ ์์ต๋๋ค. VMWare Fusion์์ ๋ฌด๋ฃ ๋ผ์ด์ผ์ค ํค๋ฅผ ๋ฐ์์ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค. Ubuntu ์ค์น ๊ฐ์๋จธ์ ์ ์ค์นํ ์ดํ์ ์ด์์ฒด์ ๋ ์ค์นํด์ผ ํฉ๋๋ค. Ubuntu๋ฅผ ์ค์นํ๊ธฐ ์ํด์๋ ๊ณต์ ํํ์ด์ง์ ๊ฐ์ ์ํ๋ ๋ฒ์ ์ ์ด๋ฏธ์ง ํ์ผ(.iso)๋ฅผ ๋ค์ด๋ก๋ ๋ฐ์ต๋๋ค. VMware๋ฅผ ์์ํ์ฌ ์ฐ๋ถํฌ ์ด๋ฏธ์ง๋ฅผ ์ ํํ๋๋ก ํฉ๋๋ค. Customize Setting์ ๋๋ฌ์ Cpu ์ฝ์ด ์, ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ, ์ฉ๋์ ๋๋ฆด ์ ์์ต๋๋ค. Ubuntu์ Chrome ์ค์น Firefox์ ๋ค์ด๊ฐ์ Chrome ํํ์ด์ง์ ๊ฐ์ ๋ค์ด๋ก๋๋ฅผ ํฉ๋๋ค. save..