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

์ „์ฒด ๊ธ€155

์ดํด๋ฆฝ์Šค(Eclipse) ํ”Œ๋Ÿฌ๊ทธ์ธ(plugin) ์„ค์น˜ ๋ฌธ์ œ ํ•ด๊ฒฐ SSL Certificate ๊ด€๋ จ ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ๊ฒฝํ—˜์„ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค. ํšŒ์‚ฌ์—์„œ ๋ฐฉํ™”๋ฒฝ ๋•Œ๋ฌธ์— SSL ์ธ์ฆ์„œ๋ฅผ ๋ฐฐํฌํ•˜์—ฌ ๋ธŒ๋ผ์šฐ์ € ์‚ฌ์šฉ ๋“ฑ์— ํ™œ์šฉํ•˜๋Š”๋ฐ, ์ดํด๋ฆฝ์Šค ์‚ฌ์šฉ์‹œ์—๋„ ์—ญ์‹œ๋‚˜ SSL ๊ด€๋ จ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€๋‹ค. JDK๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ์ ํŠธ์˜€๋Š”๋ฐ, ํ”Œ๋Ÿฌ๊ทธ์ธ ๋‹ค์šด๋กœ๋“œ์‹œ Eclipse์—์„œ ๋ฐœ์ƒํ•˜๋Š” unable to find valid certification path to requested target ์—๋Ÿฌ๋ฅผ ํ•ด๊ฒฐํ•˜์˜€๋‹ค. keytool -importcert -file -keystore -alias "" ์œ„์˜ ๋ช…๋ น์–ด๋กœ ํ•ด๊ฒฐ, openjdkํด๋”์ชฝ์— ํšŒ์‚ฌ์—์„œ ์‚ฌ์šฉํ•˜๋Š” certificate๋ฅผ ๋„ฃ์–ด์ฃผ์—ˆ๋‹ค. (ํ•ด๋‹น ๊ด„ํ˜ธ ์•ˆ์„ ์ž์‹ ์˜ ํŒŒ์ผ ๊ฒฝ๋กœ์— ๋งž๊ฒŒ ๋ณ€๊ฒฝํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.) 2020. 3. 18.
์œˆ๋„์šฐ(Windows) ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰ํŒŒ์ผ ๋ฐ ์‹คํ–‰๋ช…๋ น์–ด ๊ฒฝ๋กœ ํ™•์ธ ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ •์ด ๋ณต์žกํ•ด์ง€๋‹ค๋ณด๋ฉด ๋ช…๋ นํ”„๋กฌํ”„ํŠธ(cmd)์™€ ๊ฐ™์€ ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰ํ•˜๋Š” ์‹คํ–‰ ๋ช…๋ น์ด ์–ด๋Š๊ณณ์— ์‹คํ–‰๋˜๋Š”์ง€ ํ—ท๊ฐˆ๋ฆฌ๊ณ  ๊ถ๊ธˆํ•  ๋•Œ๊ฐ€ ์žˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์‰ฝ๊ฒŒ ์•Œ๋ ค์ฃผ๋Š” ์œˆ๋„์šฐ ๋ช…๋ น์ด ์žˆ์œผ๋‹ˆ ๋ฐ”๋กœ where ์ด ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์—ฌ๋Ÿฌ ๋ฒ„์ „์„ ๋™์‹œ์— ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•˜๋Š” ํŒŒ์ด์ฌ๊ณผ ๊ฐ™์€ ๋ช…๋ น์–ด ํ™•์ธ์‹œ์— ๋งค์šฐ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์‚ฌ์šฉ ์˜ˆ์‹œ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค. where python where conda 2020. 3. 15.
Visual Studio Code ํŒŒ์ด์ฌ ์ธํ„ฐํ”„๋ฆฌํ„ฐ ๊ฒฝ๋กœ ๋ณ€๊ฒฝ Visual Studio Code ํŒŒ์ด์ฌ(Python) ์ธํ„ฐํ”„๋ฆฌํ„ฐ(Interpreter) ๊ฒฝ๋กœ ๋ณ€๊ฒฝ Visual Studio Code์—์„œ ์ž‘์—…์„ ํ•˜๋‹ค๋ณด๋ฉด Python ๋ฒ„์ „์„ ๋งž์ถ”๊ธฐ ์œ„ํ•ด ๊ฒฝ๋กœ ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•  ๋•Œ๊ฐ€ ์žˆ๋‹ค. ์ด๋ฅผํ…Œ๋ฉด Python2.x๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋‹ค๊ฐ€ Python3.x๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, ํ˜น์€ Anacondaํ™˜๊ฒฝ์˜ Python์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋“ฑ์ด ๊ทธ๋Ÿด ๊ฒƒ์ด๋‹ค. 1. F1 ๋˜๋Š” Ctrl + Shift + P ์ž…๋ ฅ(Palette ๋ช…๋ น) 2. Python Interpreter๋ฅผ ์ž…๋ ฅํ•˜์—ฌ "Python: Select Interpreter" ํด๋ฆญ 3. ์›ํ•˜๋Š” Python Interpreter๋ฅผ ์‚ฌ์šฉ ์ด๋ ‡๊ฒŒ ๋˜๋ฉด settings.jsonํŒŒ์ผ์ด ์ƒ์„ฑ ํ˜น์€ ๋ณ€๊ฒฝ๋˜์–ด Python interpreter์˜ ๊ฒฝ๋กœ.. 2020. 3. 15.
์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ๊ธฐ๋ณธ ํ…Œ๋งˆ ๋ฐ ์Šคํƒ€์ผ ์†์„ฑ ๋ถ„์„ ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค์—์„œ ๊ธฐ๋ณธ ์•ฑ์„ ์ƒ์„ฑํ–ˆ์„ ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ํ…Œ๋งˆ๋ฅผ ๋ถ„์„ํ•ด๋ณด์•˜๋‹ค. ํ•„์ž์˜ ๊ฒฝ์šฐ ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ๊ธฐ๋ณธ ํ…Œ๋งˆ๋Š” Theme.AppCompat.Light.DarkActionBar๋กœ ์„ค์ •์ด ๋˜์–ด ์žˆ์—ˆ๋‹ค. parent์†์„ฑ์„ ํ†ตํ•ด ์ญ‰ ๋”ฐ๋ผ๊ฐ€๋ณด๋ฉด Base.Theme.AppCompat.Light.DarkActionBar๋ฅผ ์ƒ์†๋ฐ›๊ณ  ์žˆ๊ณ  Base.Theme.AppCompat.Light.DarkActionBar Base.Theme.AppCompat.Light๋ฅผ ์ƒ์†๋ฐ›์•„ ๋‹ค์‹œ Base.V7.Theme.AppCompat.Light๋ฅผ ์ƒ์†๋ฐ›๊ณ  ์ด ๋†ˆ์ด ๋Œ€๋ถ€๋ถ„์˜ ์Šคํƒ€์ผ๋“ค์€ ํฐ ๋ฒ”์ฃผ์—์„œ ์ง€์ •ํ•˜๊ณ  ์žˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. Base.V7.Theme.AppCompat.Light ๋‹ค์‹œ Platform.AppCompat.Light๋ฅผ ์ƒ.. 2020. 3. 14.
์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ํƒ€์ดํ‹€๋ฐ” ์—†์• ๊ธฐ ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค์—์„œ ๊ธฐ๋ณธ์œผ๋กœ ๋งŒ๋“  ์•ฑ์„ ์˜ˆ์‹œ๋กœ ์•ฑ ํƒ€์ดํ‹€๋ฐ”๋ฅผ ๋ณด์ด์ง€ ์•Š๊ฒŒ ํ•˜๋Š” ๋ฒ•์„ ์„ค๋ช…ํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค. ๊ธฐ๋ณธ ์•ฑ์˜ ์‹คํ–‰ํ™”๋ฉด์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. (์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค ๋ฒ„์ „์— ๋”ฐ๋ผ ํ™”๋ฉด์ด ์ƒ์ดํ•  ์ˆ˜ ์žˆ๋‹ค.) ์•ฑ์„ ๊ธฐ๋ณธ์œผ๋กœ ์„ค์ •ํ•˜๊ณ  ๋‚˜๋ฉด activity๋ณด๋‹ค ์ƒ์œ„๋‹จ๊ณ„์ธ application(์•ฑ ์ „์ฒด)์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด @style/AppTheme์ด ์„ค์ •๋˜์–ด ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. AndroidManifest.xml ์—ฌ๊ธฐ์„œ ์•ฑ ํƒ€์ดํ‹€๋ฐ”๋ฅผ ์—†์• ๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ•ด๋‹น ์Šคํƒ€์ผ์— ๋“ค์–ด๊ฐ€์„œ windowNoTitle ์•„์ดํ…œ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์†์„ฑ์„ true๋กœ ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. ('ํƒ€์ดํ‹€์—†์Œ=๋„ค' ๋ผ๊ณ  ์„ค์ •ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.) styles.xml ์ด๋ ‡๊ฒŒ ์„ค์ •ํ•˜๊ณ  ๋‚˜๋ฉด ํƒ€์ดํ‹€๋ฐ”๊ฐ€ ์—†์–ด์ง„ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. 2020. 3. 14.
Anaconda ํ™˜๊ฒฝ์—์„œ Jupyter Notebook ๋ฐ Jupyter Lab ์„ค์น˜ ๋ช…๋ น์–ด ๊ฐ„๋‹จํ•˜๊ฒŒ conda ๋ช…๋ น์–ด์™€ pip ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•œ Jupyter Notebook๊ณผ Jupyter Lab์„ค์น˜๋ฅผ ์•Œ์•„๋ณด์ž. Jupyter Notebook์€ ์ฝ”๋“œ ๋ฐ ๋งˆํฌ๋‹ค์šด(์„ค๋ช… ํ…์ŠคํŠธ)๊ฐ€ ํฌํ•จ๋œ ๋ฌธ์„œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ๊ณต์œ  ํ•  ์ˆ˜ ์žˆ๋Š” ์˜คํ”ˆ ์†Œ์Šค ์›น ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค. ์ˆ˜์น˜ ์‹œ๋ฎฌ๋ ˆ์ด์…˜, ํ†ต๊ณ„ ๋ชจ๋ธ๋ง, ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”, ๊ธฐ๊ณ„ ํ•™์Šต ๋“ฑ์˜ ์šฉ๋„๋กœ ์ฃผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค. Jupyter Lab์€ ์ฝ”๋“œ ๊ฐœ๋ฐœ ๋ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์œ„ํ•œ ์›น ๊ธฐ๋ฐ˜ ํ†ตํ•ฉ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์ด๋‹ค. ๋ฐ์ดํ„ฐ ์‚ฌ์ด์–ธ์Šค, ๊ณ„์‚ฐ ๊ณผํ•™ ๋ฐ ๊ธฐ๊ณ„ ํ•™์Šต์˜ ๊ด‘๋ฒ”์œ„ํ•œ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์ง€์›ํ•˜๋„๋ก ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค. Jupyter Notebook ์„ค์น˜ conda ํ™˜๊ฒฝ์—์„œ๋Š” conda install -c conda-forge notebook pip ํ™˜๊ฒฝ์—์„œ๋Š” pip install noteb.. 2020. 3. 11.
์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค - ์•ฑ๋ณ„ ๋””๋ ‰ํ† ๋ฆฌ ์‚ฌ์šฉํ•˜๊ธฐ(feat. Device File Explorer) ๋ถ€์ œ: Device File Explorer์—์„œ Permission denied ๋ฌธ์ œ ํ•ด๊ฒฐ๊ธฐ ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค ๊ฐœ๋ฐœ์‹œ ์—๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ ์•ฑ๋ณ„ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ผ์„ ์˜ฌ๋ฆฌ๊ณ  ๋ถˆ๋Ÿฌ๋“ค์ด๋Š” ๊ฒฝ์šฐ ํƒ์ƒ‰๊ธฐ ๋ ˆ๋ฒจ์—์„œ ํŒŒ์ผ ์—…๋กœ๋“œ๋ฅผ ํ•˜๊ณ  ์ฝ”๋“œ ๋‹จ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•ด๋ณด๊ฒ ๋‹ค. getExternalFilesDir ๋ช…๋ น์–ด๋Š” ํ˜„์žฌ ์•ฑ์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๋ฐ›์•„์˜ค๋Š” ๋ช…๋ น์–ด๋กœ, ์˜ˆ๋ฅผ๋“ค์–ด getExternalFilesDir(data) ์™€ ๊ฐ™์ด ํ˜ธ์ถœํ•˜๋ฉด ๋Œ€๋žต storage/emulated/0/Android/data/com.exercise.testapp/files/data์™€ ๊ฐ™์€ ๊ฒฝ๋กœ๋ฅผ ๋ฑ‰์–ด์ค€๋‹ค. ์ด ๋•Œ ํ•ด๋‹น ๊ฒฝ๋กœ์— ์–ด๋–ค ํŒŒ์ผ์„ ์˜ฌ๋ ค๋†“๊ณ  ์“ฐ๊ณ  ์‹ถ์–ด Device File Explorer๋กœ ํ•ด๋‹น ๊ฒฝ๋กœ๋ฅผ ์ ‘๊ทผํ•˜๋ ค๊ณ ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ํ™”๋ฉด์„ ๋ณด.. 2020. 3. 9.
์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค์—์„œ ํƒ์ƒ‰๊ธฐ ์‚ฌ์šฉํ•˜๊ธฐ ๋ถ€์ œ - ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค์—์„œ ์—๋ฎฌ๋ ˆ์ดํ„ฐ์˜ ํŒŒ์ผ ์—…๋กœ๋“œ ๋ณต์‚ฌ ์‚ญ์ œํ•˜๊ธฐ ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค์—์„œ ์—๋ฎฌ๋ ˆ์ดํ„ฐ๋‚˜ ์Šค๋งˆํŠธํฐ ๊ธฐ๊ธฐ๋ฅผ ํƒ์ƒ‰๊ธฐ ์Šคํƒ€์ผ๋กœ ์ง์ ‘ ์ ‘๊ทผํ•˜๊ณ  ์‹ถ์„ ๋•Œ๊ฐ€ ์žˆ๋‹ค. ๊ฐ€๋ณ๊ฒŒ ํŒŒ์ผ ์—…๋กœ๋“œ๋ฅผ ํ•˜๊ฑฐ๋‚˜, ํŒŒ์ผ ์‚ญ์ œ๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด์„œ. ํ•„์ž์˜ ๊ฒฝ์šฐ์—๋Š” Glide๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฏธ์ง€ ๋กœ๋”ฉ์„ ํ•˜๋Š”๋ฐ, ์›น์—์„œ ๊ฐ€์ ธ์˜ค๋Š” ๋Œ€์‹  ๋กœ์ปฌ sdcard์—์„œ ์ด๋ฏธ์ง€๋ฅผ ๋ถˆ๋Ÿฌ์„œ ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๊ณ  ์‹ถ์—ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค(Android Studio)์—์„œ Device File Explorer๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์‰ฝ๊ฒŒ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฉ”๋‰ด์˜ View - Tool Windows - Device File Explorer๋ฅผ ์„ ํƒํ•˜๋ฉด ๋œ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํƒ์ƒ‰๊ธฐ ํ™”๋ฉด์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ํŒŒ์ผ ์—…๋กœ๋“œ์‹œ์—๋Š” ์›ํ•˜๋Š” ํด๋”์—์„œ ๋งˆ์šฐ์Šค ์šฐํด๋ฆญ์„.. 2020. 3. 9.
pip ํŠน์ • ๋ฒ„์ „ ํŒจํ‚ค์ง€ ์„ค์น˜ ๋ฐ ์—…๋ฐ์ดํŠธ(์—…๊ทธ๋ ˆ์ด๋“œ) ๋ฐฉ๋ฒ• pip๋ฅผ ์ด์šฉํ•œ ํŠน์ • ๋ฒ„์ „ ํŒจํ‚ค์ง€ ์„ค์น˜ ๋ช…๋ น์–ด๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค. pip install [package_name]==[package version] ํŠน์ • ํŒจํ‚ค์ง€๋ฅผ ์—…๋ฐ์ดํŠธ ํ•˜๋Š” ๊ฒฝ์šฐ์˜ ๋ช…๋ น์–ด๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค. pip install --upgrade [package_name] ํŠน์ • ํŒจํ‚ค์ง€๋ฅผ ํŠน์ • ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธ ํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค. pip install --upgrade [package_name]==[package version] ์˜ˆ์‹œ pip install --upgrade scikit-learn==0.22.1 ํŠน์ • ๋ฒ„์ „ ์—…๋ฐ์ดํŠธ๋ฅผ ํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ๊ตณ์ด --upgrade์—†์ด ์•„๋ž˜์™€ ๊ฐ™์ด ์‚ฌ์šฉํ•ด๋„ ๋œ๋‹ค. ์˜ˆ์‹œ pip install scikit-learn==0.22.1 2020. 3. 4.