๐ ๊ฐ๋ฐ98 [Android Studio] Run/Debug Configurations no module Android Studio Run/Debug Configurations ์ธ ๊ฒฝ์ฐ, ๋ง์น ๋ชจ์์ Build ์์ Add Configurations... ๊ฐ ์๋๋ฐ, ํด๋ฆญํ๋ฉด Run/Debug Configurations ์ฐฝ์ด ๋ฌ๋ค. ์ด ์ฐฝ ์ผ์ชฝ ์๋จ์์ + ๋ฅผ ๋๋ฌ Android App ์ ์๋ก์ด conf ๋ฅผ ์ถ๊ฐํด ์ฃผ๋ ์ค์ ์ ํ๋ฉด ๋๋ค~ ํ๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์๋ค. ์ด ๊ฒฝ์ฐ, Module ์ ๋ด๊ฐ ์คํํ ์ดํ๋ฆฌ์ผ์ด์ ์ ์ด๋ฆ.app ์ด ๋จ๋ ๊ฒ ๋ง๋๋ฐ. ๋๋ ์ฌ๊ธฐ์ ๋์ถฉ ์ด๋ฐ ๊ฒฝ์ฐ์์.. ๋ก ๋จ๋ ์ผ์ด์ค... ๋์ ๊ฒฝ์ฐ์๋, ๋ค๋ฅธ ์ฌ๋์ผ๋ก๋ถํฐ ์ฑ ํจํค์ง๊ฐ ๋์ด ์ฌ ๋ settings.gradle ์ด ์์ด์ ์๊ธด ๋ฌธ์ ์๋ค. ๋ค๋ฅธ ํจํค์ง์ ๋น๊ตํ๋ฉฐ settings.gradle ์ ๋ฃ์ด ์ฃผ์. (์ฑ์ ๋ง๋๋ ๋ฐฉ๋ฒ?.. 2021. 12. 28. SOP ์ CORS ๊ฐ๋จ ์ค๋ช SOP(Same-Origin Policy) CORS ๋ฅผ ์ค๋ช ํ๊ธฐ์ ์์ ๋ฐ๋(?) ๊ฐ๋ ์ธ SOP(Same-Origin Policy)๊ฐ ์๋ค. ๋์ผํ ์ถ์ฒ์์ ์จ ์์ฒญ๋ง ์ฒ๋ฆฌํ๋ ๊ฒ์ด๋ค. ๊ฐ๋ฐ์ ๊ด์ ์์ ๋ณด๋ฉด ์ด๋ ํ๋ก ํธ์์ ์ผ์ด๋๋ ๋ฌธ์ . ๋ธ๋ผ์ฐ์ ์ ๋ฌธ์ ์ด๋ค. (๋ณด์์ด ๋ถ์ผ๋ฉด ๊ฐ๋ฐ์๋ ๋ถํธํด์ง๊ฒ ๋๋ค.. ํํ) ์ฌ์ค ๋ฌธ์ ๋ ์๋๊ณ , ๋ธ๋ผ์ฐ์ ๋จ์์ ์ฌ์ฉ์๋ฅผ ๋ณดํธํ๋ ๊ฒ์ด๋ผ๊ณ ์ค๋ช ํ ์ ์๊ฒ ๋ค. ์๋ฅผ ๋ค๋ฉด ๋ด๊ฐ ์ฌ์ดํธ A์ ๋ด ๋ก๊ทธ์ธ ์ ๋ณด(์ธ์ฆ)๋ฅผ ๊ธฐ์ตํ๋๋ก ํ๋ค. ์ ์์ ์ธ ์ฌ์ดํธ B๋ ์ธ๊ด์์ผ๋ก ์ฌ์ดํธ A์ ์ฐจ์ด์ ์ด ์์ด ๋ณด์ธ๋ค. ์ ์์ ์ธ ์ฌ์ดํธ B์์ ์ฌ์ดํธ A์ ์๋ ๋ด ์ธ์ฆ ์ ๋ณด๋ฅผ ํ์ทจํด ๋์ ์ธ์ฆ์ ๋ณด๋ฅผ ์ด์ฉํด ๋ด๊ฐ ์ฌ์ดํธ B์ ๋ก๊ทธ์ธ์ ํ๊ฒ ๋๋ฉด ํฐ ํผํด๋ก ์ด์ด์ง ์ ์๋ค. ๋ฐ๋ผ์ ๋ธ๋ผ์ฐ์ ์์๋ .. 2021. 12. 22. [iOS. Objective-C] NSString null ์ฒดํฌ / NSLog, printf ๋ก ์ถ๋ ฅ ์๋ ์์ ์์ ๋ ๊ฐ์ง๋ฅผ ์ ๋ฆฌํ๋ค. 1. NSString ์ ๊ฐ์ด null ์ธ ๊ฒฝ์ฐ๋ฅผ ์ฒดํฌ. nsStr ์ด๋ผ๋ ๋ณ์์ ์๋ฃํ์ด null ์ธ์ง ํน์ nsStr ์ ๊ธธ์ด๊ฐ 0 ์ธ์ง ์ฒดํฌํ๋ค. 2. NSString ์๋ฃํ์ ๋ณ์ nsStr ์ NSLog ์ printf๋ก ์ถ๋ ฅํ๋ค. NSString *nsStr = nil; nsStr = @"This Vlaue is not null";// ์ด ๋ผ์ธ์ด ์์ด์ง๋ฉด else ๋ก ๋ถ๊ธฐ๋๋ค. if (nsStr == (id)[NSNull null] || nsStr.length == 0 ) { NSLog(@"This Value is null\n"); printf("This Value is null\n"); } else { NSLog(@"%@\n", nsStr); printf(.. 2021. 12. 21. 443 ํฌํธ์ 8443 ํฌํธ์ ์ฐจ์ด 443 ํฌํธ๋? 443 ํฌํธ๋ HTTPS ์๋น์ค์ ์ฌ์ฉ๋๋ค. HTTPS๋ HTTP์ ์ํธํ๋ฅผ ํ๊ณ ๋ณด์ ํฌํธ๋ก ์ ์ก์ ํ ์ ์๋๋ก ํ๋ค. ๋ค๋ฅธ ์ฌ๋์ด ํจํท์ ์บก์ฒํด ์ฌ์ฉํ ์ ์๋๋ก ์ํ์ด๋ ๋ณด์, ์ผํ ๋ฑ์์ ์ ๋ณด ๊ตํ ๋ฑ์ ์์ ํ ์ ์ก์ ๋ณด์ฅํ๊ธฐ ์ํด ์ฌ์ฉ ๋๋ค. (HTTPS ์ฌ์ฉ์ ์ํ well-known port : 443) 0~1023 -> well-known port ์ด๋ค. ์๋ฅผ ๋ค์ด 22๋ฒ tcp๋ ssh ๋ก ์ฌ์ฉ๋๋ค. 8443 ํฌํธ๋? 8443 ํฌํธ๋ ํฐ์บฃ์ SSL ๋ํดํธ ํฌํธ๋ก ์ฌ์ฉ๋๋ค.๊ธฐ๋ณธ ์ค์ ํ์ผ์ 8443์ผ๋ก ์ค์ ๋์ด ์๋ค. (ํฐ์บฃ์์ ์ง์ ํ registered port) Registered Port ๋ 1024๋ถํฐ 49151 ๊น์ง ์๋ค. 443 vs 8443 ํฐ์บฃ์ 8443์ผ.. 2021. 12. 9. [์๋๋ก์ด๋] ์ค๋ฅ ํด๊ฒฐ The minCompileSdk (31) specified in adependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties) ๊ทธ๋ฆฌ๊ณ ๋ฉํ๋ฐ์ดํฐ ์ค์ต ์ค๋ฅ ๋ด์ฉ : One or more issues found when checking AAR metadata values: The minCompileSdk (31) specified in a dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties) is greater than this module's compileSdkVersion (android-27). Dependency: androidx.appcompat:appcompat:1.4.0. AAR metadata file: C:\Users\shin\.gradle\caches\transforms-3\๋ญ๊ฐ์ ๋ํ ํด์๊ฐ ๊ฐ์... ์ฑ ์์ด๋์ ๋ํ ํด์๊ฐ์ธ๊ฐ?\t.. 2021. 11. 29. [์๋๋ก์ด๋] ๊ธ์ ์ ๋ฐ๊พธ๊ธฐ - SpannableString, SpannableStringBuilder build.gradle (:app) plugins { id 'com.android.application' } android { compileSdk 30 defaultConfig { applicationId "com.devshin93.spannabletest" minSdk 25 targetSdk 30 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rule.. 2021. 11. 26. [์๋๋ก์ด๋์คํ๋์ค/์ธํ ๋ฆฌ์ ์ด] ์ฝ๋ ์๋ ์ ๋ ฌ, ์ฌ์ฉํ์ง ์๋ import ์ ๊ฑฐ ๋จ์ถํค ์ฝ๋ ์๋ ์ ๋ ฌ ๋จ์ถํค: Ctrl + Alt + L ์ฌ์ฉํ์ง ์๋ import ์ ๊ฑฐ ๋จ์ถํค: Ctrl + Alt + o ๋ฌผ๋ก ๋จ์ถํค๋ ์ฌ์ฉ์ ์ค์ ์ ์ํด ๋ฐ๋ ์ ์๋ค. ์ถ๊ฐ. ๋ฒ ํ๋ ) File > Settings > Editor > Code Style > Hard wrap at ๊ธฐ๋ณธ์ด 80์ผ๋ก ๋์ด ์์ ๊ฒ ๊ฐ์๋ฐ.. ๋ณดํต 160 ์ผ๋ก ๋๊ณ ์ฌ์ฉํ๋ค๊ณ ํ๋ค. ํ ๋ด ๊ฐ๋ฐ ํ๊ฒฝ์ ๋ง์ถ์ด ํ์๋ค๊ณผ ์์ ํ ์ ํ ํ๋ค.. ์๊ธฐ๊ฐ ์ด๋ค์ง์ง ์์๋ค๋ฉด ํจ๋ถ๋ก ctrl+l ์ ์ฌ์ฉํ์ง ๋ง์...^^ ์ฝ๋ ์ ๋ฆฌํ๋ค๊ณ ์๋์ ๋ ฌ ์ฌ์ฉํ๋๋ฐ ํผ๋ฌ๋ค ใ SVN์ ์๋ ์ด์ด๋ ๋ง์ง ์์ ์๋์น ์๊ฒ ๋๊ตฐ๊ฐ๋ฅผ ํ๋๊ฒ ๋ง๋ค ์ ์๋ค... ^^; 2021. 11. 24. [Mac] zsh: permission denied: ./sample.sh ์ค๋ฅ ๋ด์ฉ # ./sample.sh zsh: permission denied: ./sample.sh ์ ์คํฌ๋ฆฝํธ ํ์ผ์ ์คํํ๋ ค๊ณ ํ๋๋ฐ, ์์ ๊ฐ์ด permission denied (๊ถํ์ด ๊ฑฐ๋ถ) ๋๋ ๊ฒฝ์ฐ... ๋ญ์ง root ๊ณ์ ์ผ๋ก ์คํ ํด์ผ ํ๋.. ์ถ์ด์ sudo(switch user do; ์ ์ ๋ฅผ ๋ฐ๊ฟ์ ๋ค์ ์ค๋ ๋ช ๋ น์ด๋ฅผ ์คํํ๋ค) ๋ช ๋ น์ด๋ ์ฌ์ฉํด ๋ณด๊ณ , su(switch user; ์ ์ ๋ฅผ ๋ฐ๊พผ๋ค) ๋ก ์ฌ์ฉ์๋ฅผ root ๋ก ๋ฐ๊ฟ์ผ ํ๋.. ํ๋๋ฐ ๊ฐ๋จํ ๋ฌธ์ ์๋ค. 1) ์คํฌ๋ฆฝํธ ํ์ผ์ ์คํํ๋ ค๋ ํด๋์์ ํด๋น ํ์ผ์ ๊ถํ์ ํ์ธํ์ (์ ์ ๊ถํ์ด ์๋) # ls -al 1.1) ํ์ผ์ ๊ถํ์ ----------(000) ๋ถํฐ -rwxrwxrwx(777)๊น์ง ๋ ์ ์๋๋ฐ, (์ฌ๊ธฐ์ ๊ฐ์ฅ ์์.. 2021. 11. 23. [ ์๋๋ก์ด๋] ๋ฒํผ ๋๋ ์ ๋ ๋ฒํผ ์๊น๊ณผ ํ ์คํธ ์๊น์ด ๋ฐ๋๊ฒ ํ๊ธฐ. ๋ฒํผ ์ปค์คํ ! - selector, ripple ์ด๋ ๊ฒ ๋๋ ๊ฒ์ ๋ง๋ค ๊ฒ์ด๋ค. ์กฐ๊ธ ๋ณต์กํด ๋ณด์ผ ์ ์๋๋ฐ... ใ ์ฒ์ฒํ ๋ฐ๋ผ ์ค๋ฉด ์ฝ๋ค. ๋ณต์กํ๊ณ ๋ชจ๋ฅด๊ฒ ์ผ๋ฉด ์ผ๋จ ๋ณต๋ถํด์ ๋ฃ๊ณ ๊ฐ์ ๋ฐ๊ฟ ๊ฐ๋ฉด์ ํ์ธํด ๋ณด์๊ธธ.. 0. MainActivity.java (ํจํค์ง๋ช ๊น์ง ๋ฐ๋ผํ์ง๋ ๋ง ๊ฒ... ๊ฐํน ๊ทธ๋ฐ ์ฌ๋๋ค๋ ์๋ ๊ฒ ๊ฐ์์.. ํน์๋) ์ฑ์ด ์คํ๋๊ณ 2.5 ์ด ๋ค์ ๋ฒํผ์ด ํ์ฑํ๋๋ ์ก์ ์ ๋ง๋ค์ด ๋ณด์. package com.devshin93.drawabletest; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.widget.Button; public class MainActivity extends AppCompatActivity { .. 2021. 11. 10. ์ด์ 1 2 3 4 5 6 7 ยทยทยท 11 ๋ค์ ๋ฐ์ํ