์ ์ฒด ๊ธ (377) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ [Retrofit2] Retrofit2์์ API ํธ์ถ ์ ๊ณตํต ํค๋ ๊ฐ ์ถ๊ฐ ๋ฐฉ๋ฒ ์ถ์ฒChatGPT ๋ฐฉ๋ฒInterceptor๋ฅผ ์ฌ์ฉํ์ฌ ๊ณตํต ํด๋ ์ถ๊ฐ'@Header' ์ด๋ ธํ ์ด์ ์ฌ์ฉ'@Headers' ์ด๋ ธํ ์ด์ ์ฌ์ฉOkHttp3 Authenticator ์ฌ์ฉ (ํ ํฐ ์๋ ๊ฐฑ์ ) 1. Interceptor๋ฅผ ์ฌ์ฉํ์ฌ ๊ณตํต ํค๋ ์ถ๊ฐInterceptor๋ ๋ชจ๋ ๋คํธ์ํฌ ์์ฒญ์ ๊ณตํต์ ์ธ ์์ ์ ์ํํ ์ ์๊ฒ ํด์ค๋ค. ์ด๋ฅผ ํตํด ๊ณตํต ํค๋ ๊ฐ์ ์ฝ๊ฒ ์ถ๊ฐํ ์ ์๋ค.Interceptor๋ก ๊ณตํต ํค๋ ์ถ๊ฐํ๊ธฐ์ฅ์ ์ฝ๋์ ๋ฐ๋ณต์ ์ค์ฌ์ฃผ๊ณ , ๋ชจ๋ ์์ฒญ์ ์๋์ผ๋ก ํค๋๋ฅผ ์ถ๊ฐํ๋ค.๋ณด์ ํ ํฐ๊ณผ ๊ฐ์ ๊ณตํต ์ ๋ณด๋ฅผ ์ถ๊ฐํ๋ ๋ฐ ์ ์ฉํ๋ค. import okhttp3.Interceptor;import okhttp3.OkHttpClient;import okhttp3.Request;import okhttp3... [Retrofit2] Retrofit2์์ ํ์์์ ๋ฐ ๋ฆฌํธ๋ผ์ด ์ค์ ์ถ์ฒChatGPTRetrofit2์์ ํ์์์ ๋ฐ ๋ฆฌํธ๋ผ์ด ์ค์ 1. OkHttpClient๋ก ํ์์์ ์ค์ ํ๊ธฐOkHttpClient๋ ์ธ ๊ฐ์ง ์ข ๋ฅ์ ํ์์์์ ์ค์ ํ ์ ์๋ค. ์ฐ๊ฒฐ ํ์์์(connect timeout): ์๋ฒ์ ์ฐ๊ฒฐํ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์ต๋ ์๊ฐ.์ฝ๊ธฐ ํ์์์(read timeout): ์๋ฒ์์ ์๋ต ๋ฐ์ดํฐ๋ฅผ ์ฝ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์ต๋ ์๊ฐ.์ฐ๊ธฐ ํ์์์(write timeout): ์๋ฒ์ ์์ฒญ ๋ฐ์ดํฐ๋ฅผ ์ฐ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์ต๋ ์๊ฐ.๊ฐ๊ฐ์ ํ์์์์ ํน์ ์๊ตฌ ์ฌํญ์ ๋ฐ๋ผ ๊ฐ๋ณ์ ์ผ๋ก ์ค์ ํ ์ ์๋ค.import okhttp3.OkHttpClient;import retrofit2.Retrofit;import retrofit2.converter.gson.GsonConverterFactory;impo.. [RESTful API]RESTful API๋ ์ถ์ฒ ChatGPTRESTful API๋?REST์ ์ ์REST(Represesntational Stat Tranfer)๋ ๋ก์ด ํ๋ง(Roy Fielding)์ด 2000๋ ๋ฐ์ฌ ๋ ผ๋ฌธ์์ ์๊ฐํ ์ํํธ์จ์ด ์ํคํ ์ฒ ์คํ์ผ์ด๋ค. REST๋ ์น ๊ธฐ๋ฐ ์์คํ ์์ ์์์ ์ฒ๋ฆฌํ๋ ๋ฐ ์์ด์ HTTP๋ฅผ ์ฌ์ฉํ๋ ํน์ ํ ๊ท์น๊ณผ ์ ์ฝ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ค. RESTful API์ ํน์งRESTful API๋ REST ์ํคํ ์ฒ ์คํ์ผ์ ๋ฐ๋ฅด๋ API๋ฅผ ๋งํ๋ค. ์ฃผ๋ก HTTP ํ๋กํ ์ฝ์ ๊ธฐ๋ฐ์ผ๋ก ํด ์์(Resource)์ ๋คํธ์ํฌ๋ฅผ ํตํด ์ฃผ๊ณ ๋ฐ์ ์ ์๊ฒ ์ค๊ณ๋๋ค. ์ฃผ์ ํน์ง1. ๋ฌด์ํ์ฑ Statelessness์๋ฒ์ ํด๋ผ์ด์ธํธ์ ๋ชจ๋ ์์ฒญ์ ์๋ก ๋ ๋ฆฝ์ ์ด๋ฉฐ, ์ด์ ์์ฒญ๊ณผ ๋ค์ ์์ฒญ ์ฌ์ด์ ์ํ๋ฅผ ์ ์ฅํ์ง ์๋๋ค. ๋ชจ๋ ์์ฒญ์.. [Android][ART] ART์ ํ๋กํ์ผ ๊ธฐ๋ฐ ์ปดํ์ผ ์ถ์ฒChatGPT ํ๋กํ์ผ ์ฉ์ด ๋ป -> [์ฉ์ด] ํ๋กํ์ผ, ํ๋กํ์ผ๋ง๊ฐ์ART(Anroid Runtime)์ ํ๋กํ์ผ ๊ธฐ๋ฐ ์ปดํ์ผ์ Android ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ์ ์ต์ ํํ๊ธฐ ์ํ ๊ธฐ๋ฒ์ด๋ค. ํ๋กํ์ผ๋ง ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ฝ๋์ ์คํ ๊ฒฝ๋ก๋ฅผ ๋ถ์ํ๊ณ , ์ด๋ฌํ ์ ๋ณด๋ฅผ ํ์ฉํด ์ฝ๋์ ์ฑ๋ฅ์ ๊ฐ์ ํ๋ ๋ฐฉ๋ฒ์ด๋ค. ์ด ๊ธฐ๋ฒ์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ค์ ๋ก ์ฌ์ฉ๋๋ ํจํด์ ์ดํดํ๊ณ , ์์ฃผ ์ฌ์ฉ๋๋ ๋ถ๋ถ์ ์ต์ ํํจ์์จ ์ฑ๋ฅ์ ํฅ์์ํค๊ณ , ์ด๊ธฐ ์ฑ ๋ก๋ฉ ์๊ฐ์ ์ค์ด๋ ๋ฐ ๋์์ ์ค๋ค. ART์ ํ๋กํ์ผ ๊ธฐ๋ฐ ์ปดํ์ผ1. ART(Android Runtime)์ด๋?Android ์ด์์ฒด์ ์์ Java ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ๋ ๋ฐํ์ ํ๊ฒฝ์ด๋ค.ART๋ Dalvik ๊ฐ์ ๋จธ์ (Dalvic VM)์ ๋์ฒดํด, Android 5.0๋ถํฐ ๊ธฐ๋ณธ.. [์ฉ์ด] ํ๋กํ์ผ, ํ๋กํ์ผ๋ง ์ถ์ฒChatGPTํ๋กํ์ผProfile์ ์ํ๋ก๊ทธ๋จ์ ํน์ ์ธก๋ฉด(์: ์คํ ์๊ฐ, ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋, CPU ์ฌ์ฉ๋ฅ ๋ฑ)์ ๋ํ ๋ฐ์ดํฐ์ ํต๊ณ๋ฅผ ์์งํ ๊ฒฐ๊ณผ๋ณดํต ํน์ ์กฐ๊ฑด์ด๋ ํ๊ฒฝ์์ ํ๋ก๊ทธ๋๋ฏธ ์ด๋ป๊ฒ ๋์ํ๋์ง๋ฅผ ๋ํ๋ด๋ "์ค๋ ์ท"์ผ๋ก ๋ณผ ์ ์๋ค.์ฉ๋์ฃผ๋ก ์ํํธ์จ์ด ์ฑ๋ฅ ์ต์ ํ๋ฅผ ์ํ ๋ถ์ ์๋ฃ๋ก ํ์ฉ๋๋ค.์ฑ๋ฅ ๋ณ๋ชฉ ์ง์ ์ ์๋ณํ๊ณ , ๊ฐ์ ์ด ํ์ํ ๋ถ๋ถ์ ์ ํํ ์ฐพ๋ ๋ฐ ๋์์ด ๋๋ค.์์CPU ํ๋กํ์ผํจ์๋ ๋ฉ์๋๊ฐ CPU๋ฅผ ์ผ๋ง๋ ์ฌ์ฉํ๋์ง์ ๋ํ ์ ๋ณด๋ฉ๋ชจ๋ฆฌ ํ๋กํ์ผํน์ ๊ฐ์ฒด๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ๊ฐ ์ผ๋ง๋ ๋ง์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋์ง์ ๋ํ ์ ๋ณดI/O ํ๋กํ์ผํ์ผ ์์คํ ์ด๋ ๋คํธ์ํฌ์์ ์ ์ถ๋ ฅ ์์ ์ด ์ด๋ป๊ฒ ์ด๋ฃจ์ด์ง๋์ง๋ฅผ ๋ณด์ฌ์ฃผ๋ ๋ฐ์ดํฐ ํ๋กํ์ผ๋ง Profiling์ ์ ํ๋ก๊ทธ๋จ์ ์ฑ๋ฅ ๋ฐ ์์ ์ฌ์ฉ์ ๋ถ์ํ๊ธฐ ์ํด .. [JVM] ๋ค์ดํฐ๋ธ ์ฝ๋์ JVM ์ถ์ฒChatGPT๋ค์ดํฐ๋ธ ์ฝ๋ Native Code๋ค์ดํฐ๋ธ ์ฝ๋๋ ํน์ ํ๋์จ์ด ์ํคํ ์ฒ์ ์ด์ ์ฒด์ ์์ ์ง์ ์คํด์ ๋๋ ๊ธฐ๊ณ์ด(machine code)๋ฅผ ๋งํ๋ค. ๋ค์ดํฐ๋ธ ์ฝ๋๋ ํ๋ก์ธ์ค๊ฐ ์ง์ ์ดํดํ๊ณ ์คํํ ์ ์๋ ํํ์ ์ฝ๋์ด๊ธฐ ๋๋ฌธ์, ๋ค๋ฅธ ์ค๊ฐ ๋ ์ด์ด(์: ๊ฐ์ ๋จธ์ง ๋๋ ์ธํฐํ๋ฆฌํฐ )๋ฅผ ๊ฑฐ์น์ง ์๊ณ ์ง์ ์คํ๋๋ค. ๋ค์ดํฐ๋ธ ์ฝ๋ ํน์ง1. ๊ธฐ๊ณ์ด๋ค์ดํฐ๋ธ ์ฝ๋๋ CPU๊ฐ ์ง์ ์ดํดํ ์ ์๋ ์ด์ง ํ์์ ๊ธฐ๊ณ์ด๋ก ๋ณํ๋๋ค.๊ฐ CPU ์ํคํ ์ฒ(์: x86, ARM)์ ๋ฐ๋ผ ๋ค๋ฅธ ๋ช ๋ น์ด ์ธํธ๋ฅผ ์ฌ์ฉํ๋ฏ๋ก, ํน์ ํ๋์จ์ด์ ์ต์ ํ๋์ด ์๋ค.2. ํ๋ซํผ ์์กด์ ํน์ ํ๋์จ์ด์ ์ด์ ์ฒด์ ์ ์ข ์์ ์ด๋ค. ์ฆ, ํ ํ๋ซํผ์์ ์ปดํ์ผ๋ ๋ค์ดํฐ๋ธ ์ฝ๋๋ ๋ค๋ฅธ ํ๋ซํผ์์ ์คํ๋์ง ์์ ์ ์๋ค.์๋ฅผ ๋ค์ด, x86.. [Compiler] ์ฝ๋ ํจ์ค(์ฝ๋ ๊ฒฝ๋ก) + ์ฝ๋ ํจ์ค์ ์ปดํ์ผ๋ฌ ์ต์ ํ ์ถ์ฒChatGPT์ฝ๋ ํจ์ค ์๋ฏธ ์ฝ๋ ํจ์ค๋ํ๋ก๊ทธ๋จ ๋ด์ ํน์ ์ฝ๋ ๊ฒฝ๋ก. ํ๋ก๊ทธ๋จ์ ์คํ์ด ์ด๋ป๊ฒ ์งํ๋๋ ์ง๋ฅผ ์ค๋ช ํ๋ค. ์ฝ๋ ํจ์ค๋ ๋ณดํต ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ์ ํ์ฑ๋๋ค. 1. ์กฐ๊ฑด๋ฌธ 'if', 'else', 'switch' ๋ฑ์ ์กฐ๊ฑด๋ฌธ์ ๋ฐ๋ผ ๋ค๋ฅธ ์ฝ๋ ๊ฒฝ๋ก๊ฐ ์คํ๋๋ค.2. ๋ฐ๋ณต๋ฌธ'for', 'while' ๋ฑ์ ๋ฐ๋ณต๋ฌธ์์ ์กฐ๊ฑด์ ๋ฐ๋ผ ๋ฐ๋ณต ํ์์ ๋ฐ๋ผ ๋ค์ํ ๊ฒฝ๋ก๊ฐ ํ์ฑ๋ ์ ์๋ค.3. ํจ์ ํธ์ถํน์ ํจ์๊ฐ ํธ์ถ๋๋ฉด์ ๋ค๋ฅธ ์ฝ๋ ๊ฒฝ๋ก๋ก ์คํ์ด ์ ํ๋๋ค.4. ์์ธ ์ฒ๋ฆฌ์์ธ๊ฐ ๋ฐ์ํ๋ฉด, ์์ธ ์ฒ๋ฆฌ ๋ธ๋ก์ผ๋ก ์ฝ๋ ๊ฒฝ๋ก๊ฐ ๋ณ๊ฒฝ๋๋ค. ์์ ์ฝ๋public class Example { public static void main(String[] args) { int number = 10; .. [ART][Compiler] JIT ์ปดํ์ผ๋ฌ์ AOT ์ปดํ์ผ๋ฌ์ ๋ณํ ์ฌ์ฉ ์ด์ + ART ์์ ์ถ์ฒChatGPT JIT(Jist-In_Time) ์ปดํ์ผ๋ฌ์ AOT(Ahead-Of-Time) ์ปดํ์ผ๋ฌ๋ ์๋ก ๋ค๋ฅธ ์ฅ์ ๊ณผ ๋จ์ ์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ๊ฐ๊ฐ์ ์ปดํ์ผ ๋ฐฉ์์ด ๋ณํํด์ ์ฌ์ฉ๋ ๋ ์๋ก์ ๋จ์ ์ ๋ณด์ํ ์ ์๋ค. ์ด๋ฌํ ๋ณํ ์ฌ์ฉ์ ์ฑ๋ฅ ์ต์ ํ์ ํจ์จ์ ์ธ ์์ ํ์ฉ์ ๋ชฉํ๋ก ํ๋ค. JIT ์ปดํ์ผ๋ฌํน์ง1. ๋ฐํ์ ์ต์ ํํ๋ก๊ทธ๋จ์ด ์คํ๋๋ ๋์์ ๋ฉ์๋๋ ์ฝ๋ ๋ธ๋ก์ ์ปดํ์ผํ๋ค. ์์ฃผ ์คํ๋๋ ์ฝ๋ ํจ์ค๋ฅผ ์ง์ค์ ์ผ๋ก ์ต์ ํํ ์ ์๋ค.์ฝ๋ ํจ์ค ์ฉ์ด ์ค๋ช [Compiler] ์ฝ๋ ํจ์ค(์ฝ๋ ๊ฒฝ๋ก) + ์ฝ๋ ํจ์ค์ ์ปดํ์ผ๋ฌ ์ต์ ํ2. ์ ์ํ ์ต์ ํํ๋ก๊ทธ๋จ์ ์ค์ ์คํ ์ํฉ์ ๋ง์ถฐ ์ต์ ํ๋ฅผ ์ํํ๋ค. ์๋ฅผ ๋ค์ด, ํน์ ์กฐ๊ฑด๋ฌธ์ด ํญ์ ์ฐธ์ผ ๊ฒฝ์ฐ, JIT๋ ์ด๋ฌํ ํจํด์ ํ์ตํ๊ณ ์ต์ ํํ ์ ์๋ค.3. .. ์ด์ 1 ยทยทยท 22 23 24 25 26 27 28 ยทยทยท 48 ๋ค์