๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๊ณณ๊ฐ„์—์„œ ์ธ์‹ฌ๋‚œ๋‹ค/์‹ค๋ฌด

(20)
[Git] .gitignore ํŒŒ์ผ ์ž๋™ ์„ค์ • https://www.toptal.com/developers/gitignore gitignore.io Create useful .gitignore files for your project www.toptal.com ์š”๋ ‡๊ฒŒ IDE, OS, ์‚ฌ์šฉ ์–ธ์–ด๋ฅผ ์ž…๋ ฅํ•ด์„œ ์ƒ์„ฑํ–ˆ๋‹ค.
[Android][Library][๋ฒ„์ „] ํ”Œ๋ ˆ์ด ์Šคํ† ์–ด์— ์—…๋กœ๋“œ๋œ ์ตœ์‹  ์•ฑ ๋ฒ„์ „ ์ •๋ณด ๋ฐ›๊ธฐ ์ด์Šˆ ํ”Œ๋ ˆ์ด ์Šคํ† ์–ด์— ์—…๋กœ๋“œ๋œ ์ตœ์‹  ์•ฑ ์ •๋ณด๋ฅผ ํ™•์ธํ•˜๊ณ ์ž ํ•œ๋‹ค. ํ•ด๊ฒฐ Google Play Core ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ค‘ Play In-App Update ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์ฐธ๊ณ  https://velog.io/@chris_seed/AndroidKotlin-google-play-store%EC%97%90%EC%84%9C-%EC%95%B1-%EB%B2%84%EC%A0%84-%EC%97%85%EB%8D%B0%EC%9D%B4%ED%8A%B8-%ED%99%95%EC%9D%B8 [Kotlin] google play store์—์„œ ์•ฑ ๋ฒ„์ „ ์—…๋ฐ์ดํŠธ ํ™•์ธ ์šฐ๋ฆฌ๊ฐ€ google play store์— ์•ฑ์„ ๋“ฑ๋กํ•˜๊ณ  ๋‚œ ํ›„ ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ•˜๊ฑฐ๋‚˜ ์‹ ๊ทœ ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜๋Š” ๋“ฑ์˜ ์ด์œ ๋กœ ์•ฑ์„ ์—…๋ฐ์ดํŠธ๋ฅผ ํ•ด์•ผ ๋œ๋‹ค. ๊ทธ๋•Œ, ์•„๋ฌด๋Ÿฐ ์กฐ์น˜๊ฐ€ ์—†..
[๊ตฌ๊ธ€ ํ”Œ๋ ˆ์ด ์ฝ˜์†”][๊ฒฝํ—˜] ์•ฑ ๊ฒŒ์‹œ ์„ค์ • ON ๋ณ€๊ฒฝ ์‹œ์—๋„ ๊ฒ€์ˆ˜๋ฅผ ํ•œ๋‹ค ๊ฒฐ๋ก  ์•ฑ ๊ฒŒ์‹œ ์„ค์ •์ด OFF์—์„œ ON์ด ๋˜๋ฉด ๊ฒ€์ˆ˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ํƒ€๋”๋ผ. ๊ณ ๊ธ‰ ์„ค์ • ๋ถ€๋ถ„์ด ๋ณ€๊ฒฝ๋˜์–ด์„œ ๊ฒ€์ˆ˜๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค. ์ƒํ™ฉ ์ด์ „ ๋‹ด๋‹น์ž๊ฐ€ ์•ฑ ๊ฒŒ์‹œ ์„ค์ •์—์„œ ์•ฑ์„ ๋‚ด๋ ค๋ฒ„๋ ธ์Œ. ๊ณ ๊ฐ๋“ค์—๊ฒŒ ์•ฑ์ด ๋…ธ์ถœ๋˜์ง€ ์•Š์•˜๋‹ค. ์ด์ „ ๋‹ด๋‹น์ž๋Š” ์™œ ๊ฒŒ์‹œ ๊ฐœ์š” ์„ค์ •์—์„œ ๊ด€๋ฆฌํ˜• ๊ฒŒ์‹œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜๋Š”๊ฐ€๐Ÿ˜  ์•ฑ์ด ๋‚ด๋ ค๊ฐ„ ์ƒํƒœ์—์„œ๋„ ์•ฑ์„ ์—…๋ฐ์ดํŠธํ•˜๋ฉด ๊ตฌ๊ธ€ ํ”Œ๋ ˆ์ด ์ธก์—์„œ ์•ฑ์„ ๊ฒ€์ˆ˜ํ•œ๋‹ค. ์•ฑ ๊ฒ€์ˆ˜๊ฐ€ ๋ฌด์‚ฌํžˆ ํ†ต๊ณผ๋˜์–ด์„œ ์•ฑ ๊ฒŒ์‹œ ์„ค์ •์— ๋‹ค์‹œ ๋“ค์–ด๊ฐ€ ์•ฑ์„ ์˜ฌ๋ฆฌ๋ ค๊ณ  ํ–ˆ๋‹ค. ์•ฑ์„ ๊ฒŒ์‹œํ•œ๋‹ค๊ณ  ์„ค์ • ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋‹ˆ, ๋‹ค์‹œ ๊ตฌ๊ธ€ ํ”Œ๋ ˆ์ด ์ธก์—์„œ ์ด๋ฏธ ํ†ต๊ณผํ•œ ์•ฑ์„ ๊ฒ€์ˆ˜ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋กœ ๋„˜์–ด๊ฐ€๋ฒ„๋ ธ๋‹ค. ๊ทธ๋ž˜์„œ ์ •๋ง ๋…ธ์ถœํ•˜๊ณ  ์‹ถ์—ˆ๋˜ ์•ฑ์€ ๋ถˆํ•„์š”ํ•˜๊ฒŒ ๋‹ค์‹œ ๊ฒ€์ˆ˜์— ๋“ค์–ด๊ฐ”๋‹ค. ์•ฑ ์ถœ์‹œ ์ผ์ž๋ฅผ ๋งž์ถฐ์•ผ ํ•˜๋Š” ์ƒํ™ฉ์— ๋ฐœ์ƒํ•œ ๋ณ€์ˆ˜์˜€๋‹ค. ๋‹ค์‹œ ๊ฒ€์ˆ˜๋ฅผ ๋“ค์–ด๊ฐ„ ๋•Œ์—๋Š” ์ถ”์„ ์ „์ด๋ผ..
[Android][WebView] HTML TAG ํŒŒ์‹ฑ - Jsoup ์ด์Šˆ WebView์™€ App ๊ฐ„ ํ†ต์‹  ์ค‘, HTML tag ํŒŒ์‹ฑ์ด ํ•„์š”ํ•œ ๋ถ€๋ถ„์ด ์žˆ์—ˆ๋‹ค. ์›น ๋กœ๊ทธ์ธ์‹œ์˜ ์‚ฌ์šฉ์ž ์ •๋ณด๊ฐ€ HTML์˜ ํŠน์ • tag ๊ฐ’์œผ๋กœ ๋‚ด๋ ค์™”๋‹ค. ํ•ด๊ฒฐ WebView์— JavascriptInterface ๊ตฌํ˜ + Jsoup ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด HTML์˜ tag ํŒŒ์‹ฑ์œผ๋กœ ์›ํ•˜๋Š” ๊ฐ’์„ ๊ตฌํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. https://whiteduck.tistory.com/115 [ Android ] WebView์—์„œ ๋‚˜์˜ค๋Š” html Jsoup์œผ๋กœ ํŒŒ์‹ฑํ•˜๊ธฐ [ Android ] WebView์—์„œ ๋‚˜์˜ค๋Š” html Jsoup์œผ๋กœ ํŒŒ์‹ฑํ•˜๊ธฐ Dropbox ์ธ์ฆ์ฝ”๋“œ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š”๋ฐ ์žˆ์–ด์„œ WebView๋ฅผ ํ†ตํ•ด ๊ตฌํ˜„ํ•˜๋ ค๋‹ค redirect_uri์—์„œ ๋ง‰ํ˜€ ๋ฒ„๋ ธ๋‹ค. Menifast์—์„œ intent-filter๋ฅผ ๊ฐ€์ง€๊ณ  ๋ฅผ ์ถ”๊ฐ€ํ•ด..
[Android] intent ๊ฐ’ ํŒŒ์‹ฑ ์ค‘ '+'๊ฐ€ ' '๋กœ ์น˜ํ™˜๋˜๋Š” ์ด์Šˆ ๋Œ€์‘ ์ฐธ๊ณ  https://dkrnfls.tistory.com/137 Android Uri.getQueryParameter์— + ๋“ค์–ด๊ฐ€๋ฉด ๋นˆ์นธ์œผ๋กœ ๋ฐ”๋€๋‹ˆ๋‹ค. ์ตœ๊ทผ์— ๋‹ค์ด๋‚˜๋ฏน๋งํฌ๋ฅผ ๊ตฌํ˜„ํ•˜๋˜์ค‘ ์ •๋ณด๋ฅผ ๋งํฌ์— query๋กœ ๋‹ด์•˜์„๋•Œ +๊ฐ€ ๋นˆ์นธ์œผ๋กœ ๋ณ€๊ฒฝ๋˜๋Š” ์ด์Šˆ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ™์€ ๋‹ค์ด๋‚˜๋ฏน ๋งํฌ๋ฅผ ๊ณต์œ ํ–ˆ์„๋•Œ ios์—์„œ๋Š” ์ด์Šˆ๊ฐ€ ์—†์–ด์„œ ์•ˆ๋“œ๋กœ์ด๋“œ ์ชฝ์˜ ์ด์Šˆ dkrnfls.tistory.com ์ด์Šˆ ๋”ฅ๋งํฌ ์ž‘์—… ์ค‘์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด intent๋ฅผ ๋ฐ›์•„์™”๋‹ค. intent action: android.intent.action.VIEW / data : something://action?authorize=0id4gzmDNXhJY9xbNsOYpbg/rLuhKEc2zyWwZ+7s6YF9Pju8hVErS8Pshsi+ugWPrPW1pieHA..
[ํ˜‘์—…][๊ฒฝํ—˜ ๋Œ์•„๋ณด๊ธฐ] Jira ํ˜‘์—… ์ „ ์ง์žฅ์—์„œ Jira ํ‹ฐ์ผ“ ํ™œ์šฉ ๊ด€๋ จํ•ด์„œ ๋งŽ์ด ๋ฐฐ์› ๋‹ค. ํˆฌ๋ช…ํ•œ ์—…๋ฌด ๊ณต์œ ์™€ ์›ํ™œํ•œ ์†Œํ†ต์„ ์œ„ํ•ด Jira๊ฐ€ ๊ต‰์žฅํžˆ ์ข‹์€ ํˆด์ž„์„ ๊ฒฝํ—˜ํ–ˆ๋‹ค. ์ด ํฌ์ŠคํŠธ๋ฅผ ๋ณด๋ฉด์„œ ํšŒ์‚ฌ ํ”„๋กœ์ ํŠธ์˜ Jira ํ‹ฐ์ผ“ ์šด์˜ ๋ฐฉ์‹๊ณผ ๋ชฉ์ ์— ๋Œ€ํ•ด ์ดํ•ดํ•˜๊ธฐ๊ฐ€ ์ข‹์•˜๋‹ค. https://velog.io/@aajaeyoung/ticket-driven-development ํ‹ฐ์ผ“ ์ฃผ๋„ ๊ฐœ๋ฐœ (ticket-driven development)์„ ๋„์ž…ํ•˜๊ธฐ ํ˜„์žฌ ๋‚ด๊ฐ€ ๋‹ค๋‹ˆ๊ณ  ์žˆ๋Š” ํšŒ์‚ฌ๋Š” Unity ๊ธฐ๋ฐ˜์˜ ๋ฉ”ํƒ€๋ฒ„์Šค ํ”Œ๋žซํผ์„ ๊ฐœ๋ฐœํ•˜๋Š” ํšŒ์‚ฌ๋กœ์„œ, ์—ฌ๋ŸฌํŒ€์ด ์‚ฐ์žฌํ•ด ์žˆ๋‹ค. ๊ทธ ์ค‘ ๋‚˜ ๋˜ํ•œ ํ•˜๋‚˜์˜ ํŒ€์˜ PM์œผ๋กœ์„œ ํŒ€์žฅ๋‹˜๊ณผ ํ•จ๊ป˜ ์ผ์„ ํ•˜๊ณ  ์žˆ๋Š”๋ฐ, ์ด์ œ ๋‚ด๊ฐ€ ํ”„๋กœ velog.io ๊ณผ๊ฑฐ์˜ ๊ธฐ์–ต์œผ๋กœ ๊ฑฐ์Šฌ๋Ÿฌ ์˜ฌ๋ผ๊ฐ€์ž๋ฉด, ํ‹ฐ์ผ“ ์ž‘์„ฑ์—๋„ ๋ฃฐ์ด ํ•„์š”ํ–ˆ๋‹ค. ์ด์Šˆ ์œ ํ˜• - ๋‹น์‹œ Tas..
[์‹ค๋ฌด] ๊ณ ๋ ค์‚ฌํ•ญ / ๋ฐ›์€ ํ”ผ๋“œ๋ฐฑ ์˜๋„ / ์‹œ์•ผ / ํ˜‘์—… ์—…๋ฌด์˜ ์ „์ฒด ๊ทธ๋ฆผ ๋ณด๊ธฐ ์—…๋ฌด๊ฐ€ ์ „์ฒด ๊ทธ๋ฆผ์—์„œ ์–ด๋Š ๋ถ€๋ถ„์— ์œ„์น˜ํ•˜๋Š”์ง€ ํŒŒ์•…ํ•˜๊ธฐ ์—…๋ฌด์˜ ์˜๋„ ํŒŒ์•…ํ•˜๊ธฐ. ๋‚˜๋Š” ์„œ๋‘๋ฅด๋‹ค๋ณด๋ฉด ์˜๋„ ํŒŒ์•…์— ์‹คํŒจํ•œ๋‹ค. ์˜๋ฌธ์‚ฌํ•ญ์€ ๋ฐ˜๋“œ์‹œ ์งˆ๋ฌธํ•˜๊ธฐ ๋ฌธ์„œ ๊ฐœ๋ฐœ ๋ฌธ์„œ๋Š” ์ฝ”๋“œ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋Š” ํžŒํŠธ. ์ฝ”๋“œ๋ฅผ ์ž˜ ์ง ๋‹ค๋Š” ๊ฒƒ์€ ๋‚จ์ด ์ด์–ด์„œ ์ž‘์—…ํ•˜๊ธฐ ์‰ฝ๋‹ค๋Š” ๊ฒƒ. ๋ฌธ์„œ๊ฐ€ ์ด ๊ธฐ๋ฐ˜์ด ๋œ๋‹ค ์ฝ”๋“œ์™€ ๋ฌธ์„œ๋Š” ๋งคํ•‘๋˜์–ด์•ผ ํ•œ๋‹ค. ์ œ๋Œ€๋กœ ๋œ ํ™”๋ฉด ์„ค๊ฒŒ๋„ ํ•˜๋‚˜๋งŒ ์žˆ์–ด๋„ ๋‹ค๋ฅธ ๋ฌธ์„œ๋“ค์€ ํ•„์š” ์—†๋‹ค. ๊ฐœ๋ฐœ ๋” ๋น ๋ฅด๊ณ  ํŽธ๋ฆฌํ•˜๊ฒŒ. ์ด์Šˆ๊ฐ€ ๋œ ๋‚˜์˜ค๊ฒŒ ๊ฐœ๋ฐœํ•˜๊ธฐ ๋ฐ˜๋ณต ์ž‘์—…์ด ์ค„์—ฌ์•ผ์ง€ ๋น ๋ฅธ ๊ฐœ๋ฐœ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์ด์Šˆ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค. ๋‚ด๊ฐ€ ๋งŒ๋“  ๊ธฐ๋Šฅ์˜ ํ…Œ์ŠคํŠธ๋Š” ๋‚ด๊ฐ€ ํ•ด์•ผ ํ•œ๋‹ค. ์ด์Šˆ ๋ฐœ๊ฒฌ์„ QA์— ์˜์ง€ํ•˜์ง€ ๋ง ๊ฒƒ. ์งง๊ฒŒ ๊ฐœ๋ฐœํ•˜๊ณ  ํ…Œ์ŠคํŠธ๋Š” ๋งŽ์ด ํ•˜๊ธฐ ํ”Œ๋žซํผ์— ๋Œ€ํ•œ ์ดํ•ด๋„๋ฅผ ๋†’์—ฌ์•ผ ํ•œ๋‹ค. ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ(๋ชจ๋“ˆํ™”)์—..
[Android] Uri๋กœ๋ถ€ํ„ฐ ํ™•์žฅ์ž ์–ป๊ธฐ ๋ฌธ์ œ uri๋กœ ์ ‘๊ทผํ•˜๋Š” data์˜ ํ™•์žฅ์ž๋ฅผ ์‰ฝ๊ฒŒ ํŒŒ์•…ํ•˜๊ณ  ์‹ถ๋‹ค. (๋ถ„๋ช… ๋ˆ„๊ฐ€ ์ด๋Ÿฐ ๊ธฐ๋Šฅ์„ ๋งŒ๋“ค์–ด ๋†“์•˜์„ ๊ฒƒ์ด๋‹ค.๐Ÿค”) ์ฐพ์•˜๋‹ค https://developer.android.com/reference/android/webkit/MimeTypeMap#getFileExtensionFromUrl(java.lang.String) MimeTypeMap | Android Developers developer.android.com ํ™œ์šฉ val extension = MimeTypeMap.getFileExtensionFromUrl(downloadUri.toString())?.let { ".$it" }