๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก๐ŸžDebugging Story (9)

ruriruriya

[Android] ์•ˆ๋“œ๋กœ์ด๋“œ - com.android.builder.dexing.DexArchiveMergerException ์—๋Ÿฌ ํ•ด๊ฒฐ

com.android.builder.dexing.DexArchiveMergerException ์•ˆ๋“œ๋กœ์ด๋“œ ํ™”๋ฉด์„ค๊ณ„ ํ›„ ๋นŒ๋“œํ•˜์—ฌ ํ…Œ์ŠคํŠธํ•˜๋ ค๊ณ  ํ•˜๋‹ˆ ์ €๋Ÿฐ ์—๋Ÿฌ๊ฐ€ ๋‚ฌ๋‹ค.. ์ฐพ์•„๋ณด๋‹ˆ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ถฉ๋Œ์ผ ์ˆ˜๋„ ์žˆ๊ณ  ์บ์‹œ๊ฐ€ ๋ถ€์กฑํ•ด์„œ ์ผ ์ˆ˜๋„ ์žˆ๋‹ค๊ณ  ํ–ˆ๋‹ค. ์›์ธ ์œ„์— ํŒŒ๋ž€ ๊ฒฝ๋กœ๋ฅผ ๋”ฐ๋ผ ๋“ค์–ด๊ฐ€์„œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ jar ํŒŒ์ผ?์ด ์ค‘๋ณต์œผ๋กœ ๋‘๊ฐœ๊ฐ€ ์žˆ์—ˆ๋‹ค. ํ•ด๊ฒฐ๋ฐฉ๋ฒ• ๊ทธ๋ž˜์„œ ๋˜‘๊ฐ™์€ ํŒŒ์ผ ์ค‘ ํ•˜๋‚˜๋ฅผ ์ง€์šฐ๊ณ  ๋นŒ๋“œ ์‹คํ–‰ํ–ˆ๋”๋‹ˆ ์‹คํ–‰์ด ๋˜์—ˆ๋‹ค. ์‚ฌ์‹ค ์ด๊ฒŒ ๋งž๋Š” ๋ฐฉ๋ฒ•์ธ์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ build.gradle์—์„œ๋„ ๋ฌธ์ œ๊ฐ€ ์—†์—ˆ๊ณ  Manifest์™€ gradle dptj Multidex ๋ฅผ ์„ค์ •ํ•ด์ค˜๋„ ์•ˆ๋˜์–ด์„œ ๊ทธ๋ƒฅ ์‚ญ์ œํ•˜๊ณ  ์‹คํ–‰ํ–ˆ๋”๋‹ˆ ๋œ๋‹ค....! (๋” ์ข‹์€ ๋ฐฉ๋ฒ•์ด ์žˆ์—ˆ๋‹ค๋ฉด ๋Œ“๊ธ€๋กœ ์•Œ๋ ค์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค...)

๐ŸžDebugging Story 2024. 1. 29. 17:45
๋„ค์ด๋ฒ„ ์˜คํ”ˆ API ErrorCode : 024 Scope Status Invalid : Authentication failed. (์ธ์ฆ์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.) ์—๋Ÿฌ ํ•ด๊ฒฐ

'errorMessage': 'Scope Status Invalid : Authentication failed. (์ธ์ฆ์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.)', 'errorCode': '024' ๋„ค์ด๋ฒ„ ์˜คํ”ˆ API ๋‰ด์Šค '๊ฒ€์ƒ‰'์„ ํ™œ์šฉํ•˜๋Š” ๋ฐ ์œ„์—์™€ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋‚ฌ๋‹ค. Client ID, Client Secret ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’์„ ์ œ๋Œ€๋กœ ์ž…๋ ฅํ•ด๋„ ์ž๊พธ ์—๋Ÿฌ๊ฐ€ ๋‚ฌ๋‹ค. ์›์ธ ๋‚ด ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ API ์„ค์ •์—์„œ '์‚ฌ์šฉ API'์—์„œ '๊ฒ€์ƒ‰'์„ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์•„์„œ์˜€๋‹ค.. ํ•ด๊ฒฐ๋ฐฉ๋ฒ• 01 ๋‹ค์‹œ ๋„ค์ด๋ฒ„ developers์— ์ ‘์†ํ•ด์„œ https://developers.naver.com/ NAVER Developers ๋„ค์ด๋ฒ„ ์˜คํ”ˆ API๋“ค์„ ํ™œ์šฉํ•ด ๊ฐœ๋ฐœ์ž๋“ค์ด ๋‹ค์–‘ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋„๋ก API ๊ฐ€์ด๋“œ์™€ SDK๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ œ๊ณต์ค‘์ธ ์˜คํ”ˆ A..

๐ŸžDebugging Story 2023. 12. 22. 16:53
[Java] java.lang.NullPointerException: Attempt to invoke virtual method '-' on a null object reference

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.os.CountDownTimer.cancel()' on a null object reference ์•Œ๋žŒ๊ธฐ๋Šฅ์˜ ์–ดํ”Œ์„ ๋งŒ๋“ค๋‹ค๊ฐ€ ํƒ€์ด๋จธ ์ทจ์†Œ ๋ฒ„ํŠผ์„ ๋งŒ๋“ค์—ˆ๋Š”๋ฐ ์‹œ์ž‘์„ ๋ˆ„๋ฅด์ง€ ์•Š๊ณ  ์ทจ์†Œ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋‹ˆ ์–ดํ”Œ์ด ๊ฐ•์ œ์ข…๋ฃŒ๋˜์—ˆ๋‹ค. Logcat์„ ์‚ดํŽด ๋ณด๋‹ˆ ์ด๋Ÿฐ ์—๋Ÿฌ๊ฐ€ ๋‚ฌ๋‹ค. ์›์ธ ์›์ธ์€ ๋งด๋ฒ„๋ณ€์ˆ˜๋ฅผ ์ƒ์„ฑํ•œ ๋’ค ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ (์‹œ์ž‘ ๋ฒ„ํŠผ) ์ทจ์†Œ๋ฅผ ํ•ด์„œ ๋‚˜์˜จ NullPointer ์—๋Ÿฌ์˜€๋‹ค. ํ•ด๊ฒฐ๋ฐฉ๋ฒ• ์ทจ์†Œ ๋ฒ„ํŠผ ํด๋ฆญ ๋ฉ”์†Œ๋“œ์—์„œ if๋ฅผ ํ™œ์šฉํ•ด์„œ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ–ˆ๋Š”์ง€ ์•ˆํ–ˆ๋Š”์ง€ ํ™•์ธํ•˜์—ฌ ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋˜์ง€ ์•Š์•˜๋‹ค๋ฉด ๋„˜์–ด๊ฐ€๋„๋ก ํ–ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด CPU๊ฐ€ ๋‚ด๋ ค๊ฐ€์ง€ ์•Š๋Š”๋‹ค. btnCancel.s..

๐ŸžDebugging Story 2023. 12. 22. 16:52
[RESTful API] Python Flask - TypeError: Object of type Decimal is not JSON serializable ์—๋Ÿฌ ํ•ด๊ฒฐ

TypeError: Object of type Decimal is not JSON serializable ์—๋Ÿฌ ํ•ด๊ฒฐ RESTful API ๋งŒ๋“ค ๋•Œ GET ๋ฐฉ์‹์˜ API ํ•จ์ˆ˜์—์„œ '๋ฐ์ดํ„ฐ ํƒ€์ž… ์ง๋ ฌํ™”'๋ผ๋Š” ์—๋Ÿฌ๊ฐ€ ๋‚ฌ๋‹ค. ์›์ธ ๊ทธ๋ž˜์„œ MySQL์—์„œ ์†Œ์ˆ˜์ ์„ JSON์œผ๋กœ ๊ฐ€์ ธ์˜ค์ง€ ๋ชปํ•  ๋•Œ ๋‚˜๋Š” ์—๋Ÿฌ๋ผ๊ณ  ๋‹ค๋ฅธ ๋ธ”๋กœ๊ทธ์—์„œ ๋ดค๋‹ค. ๊ทธ๋ž˜์„œ ๊ทธ ์†Œ์ˆ˜์  ์žˆ๋Š” ์ปฌ๋Ÿผ์„ ์ œ์™ธํ•˜๊ณ  ๋‹ค์‹œ ํ•ด๋ณด๋‹ˆ ๋™์ž‘ํ–ˆ๋‹ค. ํ•ด๊ฒฐ๋ฐฉ๋ฒ• 01 ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์€ ์„ฑ๊ณต ์‹œ ๋ฆฌํ„ดํ•  ๋•Œ items์˜ ๊ฒฐ๊ณผ ๊ฐ’์„ str๋กœ ํ•œ๋ฒˆ ์”Œ์šฐ๋Š” ๊ฒƒ์œผ๋กœ ํ•ด๊ฒฐ์ด ๋˜์—ˆ๋‹ค.... ์ข‹์€ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์ธ์ง€๋Š” ์ž˜ ๋ชจ๋ฅด๊ฒ ๋‹ค. return {'result' : 'success', 'items':str(result_list), 'count': len(result_list)}, 200 ํ•ด๊ฒฐ๋ฐฉ๋ฒ• 02 ๋‹ค๋ฅธ..

๐ŸžDebugging Story 2023. 12. 13. 09:16
[RESTful API] Python Flask - ValueError: invalid base64 input ์—๋Ÿฌ ํ•ด๊ฒฐ

ValueError: invalid base64 input ์—๋Ÿฌ ํ•ด๊ฒฐ MySQL์—์„œ connector๋กœ ๋ฐ์ดํ„ฐ๋ฅผ json์œผ๋กœ ๊ฐ€์ ธ์™€์„œ JWT๋ฅผ ํ™œ์šฉํ•ด์„œ ํšŒ์›๊ฐ€์ž… ํ›„ ๋กœ๊ทธ์ธํ•  ๋•Œ ์ด๋Ÿฐ ์—๋Ÿฌ๊ฐ€ ๋‚ฌ๋‹ค. ์›์ธ MySQL ์—์„œ user ํ…Œ์ด๋ธ”์˜ password ์ปฌ๋Ÿผ ์„ค์ • ์‹œ ๋ฌธ์ž์—ด ๊ธธ์ด๋ฅผ ์งง๊ฒŒ ํ•ด์„œ jwt๋กœ ์•”ํ˜ธํ™”๋œ password๊ฐ€ ์ž˜๋ ค์„œ ๋“ค์–ด๊ฐ”๋˜ ๊ฒƒ ๊ฐ™๋‹ค.. ๊ทธ๋ž˜์„œ ๊ณ„์† ์œ ์ €๊ฐ€ ์ž…๋ ฅํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ์™€, DB์— ์ €์žฅ๋œ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ์ผ์น˜ํ•˜์ง€ ์•Š์•„์„œ ๋‚œ ์—๋Ÿฌ์˜€๋‹ค. ํ•ด๊ฒฐ๋ฐฉ๋ฒ• MySQL๋กœ ๋Œ์•„๊ฐ€์„œ RDS์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ user ํ…Œ์ด๋ธ”์˜ password ์ปฌ๋Ÿผ ์„ค์ •์—์„œ VARCHAR(45)๋กœ ๋˜์–ด ์žˆ๋Š” ๊ฒƒ์„ VARCHAR(300)์œผ๋กœ ๋„‰๋„‰ํžˆ ๋ฐ”๊พธ์–ด ์ ์šฉํ–ˆ๋‹ค.

๐ŸžDebugging Story 2023. 12. 13. 09:10