๋ชฉ๋กDEVELOPE (113)
๐ฑ dreaming DiNO
Uri๋ฅผ String์ผ๋ก ๋ฐ๊พธ๊ธฐ Uri uri; String str = uri.toString(); String์ Uri๋ก ๋ฐ๊พธ๊ธฐ String str = "๋ฌธ์์ด"; Uri uri = Uri.parse(str);

2. data ์์ ๋ญ๋ญ ์๋์ง ํ์ธํ๋ ค๊ณ log๋ฅผ ์ฐ๊ธฐ์ ๋๋ฌด ๋ฒ๊ฑฐ๋ก์... ๊ทธ๋์ ํ ๊ฒ ๋ชจ๋ค? + ๋๋ฌ์ ๋ณ์๋ฅผ ๊ฒ์ํ๋ค. ex) auth.current.email ๊ทธ๋ฌ๋ฉด ์์ ๋ด๊ธด data ๋ฅผ ํ์ธ ํ ์ ์๋ค! WoW! 3. ๋๋ signOut() ํจ์ ์ดํ์ ์ ๋ง ์ ์ ์ ๋ณด๊ฐ ์ฌ๋ผ์ก๋์ง ํ์ธํ๊ธฐ ์ํด Debug๋ฅผ ์ฐ์ด ๋ดค๋ค. ๋ค ๋๊ณ ๋์ auth.currentUser.email ์ด ๊ณ์ ์ด ์์๋ค๊ฐ Null ๋ก ๋ณ๊ฒฝ๋์์์ ํ์ธ!

[๋ฌธ์ ๋ฐ์] ๋ก๊ทธ์ธํ ๊ตฌ๊ธ ๊ณ์ ์ด ์ฌ๋ฌ๊ฐ ๋จ๊ธด ํ๋๋ฐ, ์ ํํ๋ฉด ํ๋ฉด์ ํ์ด ์๋๊ณ ์๋ฌด ๋ฐ์์ด ์์์ [๋ฌธ์ ํด๊ฒฐ] SHA-1 ์ถ๊ฐ 1. SHA-1 ํ์ธํ๊ธฐ Terminal ์๋ ๋ช ๋ น์ด ์คํ ./gradlew signingReport ์๋์ ์ฌ์ง์ฒ๋ผ ๋ค์๊ณผ ๊ฐ์ด ๋์จ๋ค๋ฉด ์ฑ๊ณต์ ๋๋ค. ์ฌ๊ธฐ์ ํ์ํ SHA-1์ ์ ๋ณด๋ฅผ Firebase๋ ๋ ๋ค๋ฅธ๊ณณ์์ ํ์๋กํ๋ ๊ณณ์์ ํ์ํ ์ ๋ณด๋ฅผ ๊ฐ์ ธ๋ค๊ฐ ์ฌ์ฉํ์๋ฉด ๋๊ฒ ์ต๋๋ค. ./gradlew signingReport ๋ช ๋ น์ด ์คํํ ๋ชจ์ต 2. SHA1 ๋ณต์ฌ -> Firebase console ๋์งํธ ์ง๋ฌธ ์ถ๊ฐ

๋ชจ๋ฐ์ผ ์๋ฒ๋ฅผ ๊ฐ๋ฐํ๊ธฐ ์ํด์๋ ์ธ์ฆ, ๋ฐ์ดํฐ๋ฒ ์ด์ค, ํธ์ ์๋, ์คํ ๋ฆฌ์ง, API ๋ฑ ๋ชจ๋ ๊ฒ์ ๊ฐ๋ฐํด์ผ ํ๋ค. ํ์ง๋ง ๋ชจ๋ฐ์ผ ์๋ฒ๋ ์ด๋ฐ ๋ชจ๋ ๊ฒ์ ๊ตฌ์ฑํ๋๋ฐ ๊ตฌ์ฑํ๋ ๋ฒ์๊ฐ ๋งค๋ฒ ์๋ก์ด ์ฑ๋ค๊ณผ ์ฐจ์ด ๋์ง ์๊ธฐ ๋๋ฌธ์ ๋ฆฌ๋ ์ค๋ฅผ ์ค์นํ๊ณ , FTP๋ฅผ ์ค์นํ๊ณ , ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ค์นํ๊ณ , ๋ ธ๋ ์๋ฒ๋ ์คํ๋ง ์๋ฒ๋ฅผ ์ฌ๋ฆฌ๊ณ , ๋ฐฉํ๋ฒฝ์ ์ฌ๋ฆฌ๊ณ , ๋๋ฉ์ธ์ ๊ตฌ์ ํ๋ ๋ฑ ๋ฐ๋ณต์ ์ธ ์์ ์ ์ฑ ๊ฐ๋ฐํ ๋๋ง๋ค ํ๋ ๊ฒ์ ์๊ฐ๋ญ๋น! FireBase๋ ์ด ๋ชจ๋ ํ๋ซํผ์ ํ๋ก์ ํธ ๊ตฌ์ถ ์ ์๋์ ์ผ๋ก ๋ง๋ค์ด ์ค๋ค. ๋ํ ์๋ฒ๋ฅผ ๊ตฌ์ถํ๊ธฐ ์ํด์ ๋ฆฌ๋ ์ค ๋ช ๋ น์ด๋ฅผ ์ ํ์๋ ์์ผ๋ฉฐ ๋๋ฉ์ธ์ ๊ตฌ์ ํ ํ์๋ ์๊ณ ๊ฐ๋ฐํ๋ ๋์์๋ ์๋ฒ๋ฅผ ๊ตฌ์ ํ ํ์๋ ์๋ค! Firebase๋? Firebase๋ 14๋ ๋์ ๊ตฌ๊ธ์์ ์ธ์ํ ๋ชจ๋ฐ์ผ, ์น ์ ..

๐ฅบ ์๋ฌ ๋ฐ์ java.lang.RuntimeException: Exception while computing database live data. at androidx.room.RoomTrackingLiveData$1.run(RoomTrackingLiveData.java:92) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at java.lang.Thread.run(Thread.java:764) Caused by: java.lang.NullPointerExc..

๐ก Fragment ์์ ๊ฐค๋ฌ๋ฆฌ ์ด๋ฏธ์ง ๋ค์ค ์ ํํ์ฌ Uri Data ์ป์ ํ์์ฑ : ๊ฐค๋ฌ๋ฆฌ๋ฅผ Intent๋ก 1. gradle ์ถ๊ฐ //EventBus implementation 'org.greenrobot:eventbus:3.2.0' 2. ๊ฐค๋ฌ๋ฆฌ ์ฌ์ง ์ ํ ๋์ฐ๊ธฐ // ์ฌ์ง ์ถ๊ฐ ๋ฒํผ binding.addPhotoBtn.setOnClickListener { // CropImage.activity() // .start(requireContext(), this) // ๊ฐค๋ฌ๋ฆฌ ๋ค์ค์ด๋ฏธ์ง ์ ํ ๋์ฐ๊ธฐ val intent = Intent(Intent.ACTION_PICK) intent.type = MediaStore.Images.Media.CONTENT_TYPE intent.putExtra(Intent.EXTR..

ํ ์ด๋ธ์ ์ฌ์ฉ์๊ฐ ์ถ๊ฐํ ์ฌ์ง์ ์ ์ฅํ๊ธฐ ์ํด image column ์ด ์ถ๊ฐ๋ ํ์์ฑ ์๊น 1. Room์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๋๋ ๊ธฐ๋ณธ์ ์ผ๋ก primitive type๊ณผ ๊ทธ wrapping ํ์ ๋ง ์ง์ ํ์ง๋ง ๋๋ image uri์ path๋ฅผ List๋ก ์ ์ฅ์ ํ๋ ค๊ณ ํ๋ค 2. Gson ์ด์ฉํ์ฌ TypeConverter ํด๋์ค ์์ฑ TypeConverter Room์ primitive type์ด ์๋ ๋ค๋ฅธ ํ์ ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํด์ Room์์ ์ ๊ณตํ๋ TypeConverter ์ด๋ ธํ ์ด์ ์ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค. class Converters { @TypeConverter fun fromTimestamp(value: Long?): Date? { return value?.let { Date(it) } }..

์ ๊ฐ empty์ blank๊ฐ ๋งค์ผ ํท๊ฐ๋ ค์ ํ์คํ๊ฒ ์ง๊ณ ๋์ด๊ฐ๋ ค๊ณ ํฉ๋๋ค. String Validation ํ์ธ ์ค, ์์ฃผ ์ฌ์ฉํ๋ Null, Empty, Blank์ ์ฐจ์ด๋ฅผ ์์๋ณด๊ฒ ์ต๋๋ค. ์๋์ ์ฝ๋๋ค์ group: org.apache.commons, name: commons-lang3, version: 3.11 ์ ๋๋ค. Null ๋ณ์์ ์๋ฌด๊ฒ๋ ํ ๋น๋์ง(์ฐธ์กฐํ์ง) ์์ ์ํ๋ฅผ ์๋ฏธํฉ๋๋ค. Empty empty(๋น์ด์๋) : ๋ฌธ์์ด์ ๊ธธ์ด๊ฐ 0์์ ์๋ฏธํฉ๋๋ค. ์๋๋ StringUtils.isEmpty ์ฝ๋์ ๋๋ค. ๋์ฌ๊ฒจ ๋ณด์ค ์ ์ ""๊ณผ " "์ ์ฐจ์ด์ ๋๋ค. empty๋ length = 0์ ์๋ฏธํ๊ธฐ ๋๋ฌธ์ " "๊ฐ์ false๋ก ๋ฐํ ๋ฉ๋๋ค. StringUtils.isEmpty // Empty..
ํ์ผ ์ญ์ ํ๊ธฐ abc.txt ํ์ผ์ ์ญ์ rm abc.txt ํ์ฅ์๊ฐ txt์ธ ๋ชจ๋ ํ์ผ์ ์ญ์ ํฉ๋๋ค. ๊ฐ ํ์ผ์ ๋ํด์ ์ญ์ ํ ๊ฑด์ง ๋ฌป์ต๋๋ค. rm *.txt ํ์ฌ ๋๋ ํ ๋ฆฌ์ ์๋ ๋ชจ๋ ํ์ผ์ ์ญ์ ํฉ๋๋ค. ๊ฐ ํ์ผ์ ๋ํด์ ์ญ์ ํ ๊ฑด์ง ๋ฌป๊ณ , ๋๋ ํ ๋ฆฌ๊ฐ ์๋ค๋ฉด ์ญ์ ํ ์ ์๋ค๋ ๋ฉ์์ง๊ฐ ๋์ต๋๋ค. rm * -f ์ต์ ์ ๋ถ์ด๋ฉด ์ญ์ ํ ๊ฑด์ง ๋ค์ ๋ฌป์ง ์๊ณ ๋ฐ๋ก ์ญ์ ํฉ๋๋ค. rm -f abc.txt ํ์ฌ ๋๋ ํ ๋ฆฌ์ ์๋ ๋ชจ๋ ํ์ผ์ ๋ฐ๋ก ์ญ์ ํฉ๋๋ค. ๋๋ ํ ๋ฆฌ๋ ์ญ์ ํ์ง ์์ต๋๋ค. rm -f * ๋๋ ํ ๋ฆฌ ์ญ์ ํ๊ธฐ dir1 ๋๋ ํ ๋ฆฌ๋ฅผ ์ญ์ ํฉ๋๋ค. ๋๋ ํ ๋ฆฌ๋ฅผ ์ญ์ ํ ๋๋ -r ์ต์ ์ ๋ถ์ ๋๋ค. rm -r dir1 f ์ต์ ์ ์ถ๊ฐํ๋ฉด ์ญ์ ํ ๊ฑด์ง ๋ฌป์ง ์๊ณ ๋ฐ๋ก ์ญ์ ํฉ๋๋ค. rm -rf dir1 ํ์ฌ ๋๋ ํ ๋ฆฌ์ ..

1. ๋งฅ๋ถ -------> ssh ๋ก ์ฐ๊ฒฐ๋ ์๋ฒ์ปดํจํฐ - ๋งฅ๋ถ์ Downloads ํด๋์ ์์นํ aaa.tar ํ์ผ์, ์๋ฒ์ปดํจํฐ์ AAA ํด๋๋ก ์ฎ๊ธฐ๊ธฐ scp -p aaa.tar server_computer_name@172.XX.XXX.XX:~/Desktop/AAA server_computer_name - ๋งฅ๋ถ์ Downloads ํด๋์ ์์นํ bbb ํด๋๋ฅผ, ์๋ฒ์ปดํจํฐ์ AAA ํด๋๋ก ์ฎ๊ธฐ๊ธฐ scp -r bbb server_computer_name@172.XX.XXX.XX:~/Desktop/AAA 2. ๋งฅ๋ถ