Notice
Recent Posts
Recent Comments
Link
ยซ   2025/05   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
๊ด€๋ฆฌ ๋ฉ”๋‰ด

๐ŸŒฑ dreaming DiNO

[Kotlin] Retrofit (๋ ˆํŠธ๋กœํ•) ์ด๋ž€? ๋ณธ๋ฌธ

Android

[Kotlin] Retrofit (๋ ˆํŠธ๋กœํ•) ์ด๋ž€?

MK_____ 2021. 11. 24. 13:55

Retrofit : (๊ธฐ๊ณ„ ์†์— ์›๋ž˜ ์—†๋˜ ๋ถ€ํ’ˆ ๋“ฑ์„) ์ƒˆ๋กœ ์žฅ์ฐฉํ•˜๋‹ค / ๋„ฃ๋‹ค / ์ œ๊ณตํ•˜๋‹ค

์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ์˜ Retrofit : ์„œ๋ฒ„์™€์˜ HTTP ํ†ต์‹ ์„ ํ†ตํ•ด ์ „๋‹ฌ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์•ฑ์—์„œ ํŠน์ • ํ˜•ํƒœ๋กœ ๋ฐ›์•„๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

 

๋ ˆํŠธ๋กœํ•์„ ํ•œ ๋ฌธ์žฅ์œผ๋กœ ์ •์˜ํ•˜๋ผ๊ณ  ํ•˜๋ฉด 

์„œ๋ฒ„์™€ HTTP ํ†ต์‹ ์„ ํ•ด์„œ, ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ์•ฑ์—์„œ ์ถœ๋ ฅํ•ด ์‚ฌ์šฉ์ž๊ฐ€ ๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

 

์ผ๋ฐ˜์ ์ธ ์•ฑ์€ ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋„คํŠธ์›Œํฌ ํ†ต์‹ ์œผ๋กœ ์ •๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ›๊ณ  ์ด ์ •๋ณด๋ฅผ ํ™”๋ฉด์— ๋ฟŒ๋ฆฌ๊ธฐ๋„ ํ•˜๋ฉฐ, ์ž…๋ ฅ๋œ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š” ๋“ฑ์˜ ๊ธฐ๋Šฅ๋“ค์ด ๊ตฌํ˜„๋ผ ์žˆ๋‹ค. ์ด๊ฑธ ๋„คํŠธ์›Œํ‚น ๊ธฐ๋Šฅ์ด๋ผ๊ณ  ํ•œ๋‹ค.

์š”์ฆ˜์€ ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ๊ณผ์ •์—์„œ REST API๋ผ๋Š” ๋ฐฉ์‹์„ ์จ์„œ ๋„คํŠธ์›Œํฌ ํ†ต์‹ ์„ ํ•œ๋‹ค๊ณ  ํ•œ๋‹ค.

AsyncTask์™€ HttpURLConnection์„ ์“ฐ๋ฉด ๋˜์ง€๋งŒ ์ง์ ‘ ๊ตฌํ˜„ํ•ด์ค˜์•ผ ํ•˜๋Š” ๊ฒƒ๋“ค์ด ๊ฝค ๋งŽ๋‹ค.

๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ๊ณผ ํ•ด์ œ, ๋ฐ์ดํ„ฐ ํŒŒ์‹ฑ, ํŒŒ์‹ฑ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ์ดํ„ฐ ํด๋ž˜์Šค์— ์ €์žฅ, ์—๋Ÿฌ์ฒ˜๋ฆฌ ๋“ฑ. ์ด๊ฒƒ๋“ค์„ ์šฐ๋ฆฌ ๋Œ€์‹  ์ฒ˜๋ฆฌํ•ด์ฃผ๋Š” ๋„๊ตฌ๋„ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ๊ทธ ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋ ˆํŠธ๋กœํ•์ด๋‹ค.

 

๋ ˆํŠธ๋กœํ•์„ ์จ๋ณธ ๊ฒฐ๊ณผ, ์˜์กด์„ฑ ์ถ”๊ฐ€๋ฅผ ์ œ์™ธํ•˜๊ณ  ํฌ๊ฒŒ 5๊ฐ€์ง€๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

 

  • ์›น ์„œ๋ฒ„(๋”๋ฏธ ๋ฐ์ดํ„ฐ๋ฅผ ์จ์„œ ๋ ˆํŠธ๋กœํ•์„ ์“ธ ์ˆ˜๋„ ์žˆ๋‹ค)
  • ์›น ์„œ๋ฒ„ ์ฃผ์†Œ๋ฅผ ๋ณ€์ˆ˜๋กœ ๊ฐ€์ง„ ํด๋ผ์ด์–ธํŠธ ํด๋ž˜์Šค (XXXApiClient.java ํ˜•ํƒœ๋กœ ์“ฐ๊ธฐ๋„ ํ•˜๋”๋ผ. ์—ญ์‹œ ๋”๋ฏธ ๋ฐ์ดํ„ฐ๋ฅผ ์“ธ ์ˆ˜๋„ ์žˆ๋‹ค)
  • PHP ํŒŒ์ผ์— ์ ‘๊ทผํ•ด ํ•ด๋‹น ํŒŒ์ผ์˜ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ํ•จ์ˆ˜๋“ค์„ ๋‹ด์€ ์ธํ„ฐํŽ˜์ด์Šค (๋”๋ฏธ ๋ฐ์ดํ„ฐ๋ฅผ ์“ด๋‹ค๋ฉด ํ•„์š”์—†์„ ์ˆ˜๋„ ์žˆ๋‹ค)
  • PHP ํŒŒ์ผ : ์„œ๋ฒ„์— ์ฟผ๋ฆฌ ๋•Œ๋ ค์•ผ ํ•˜๋‹ˆ๊นŒ ๋‹น์—ฐํžˆ ํ•„์š”.
  • ๋ชจ๋ธ ํด๋ž˜์Šค : ๋ฆฌ์‚ฌ์ดํด๋Ÿฌ๋ทฐ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์“ฐ๋Š” ๊ทธ ํด๋ž˜์Šค. POJO, DTO ๋“ฑ ๋ถˆ๋ฆฌ๋Š” ๋ฐฉ์‹์€ ๋งŽ์€๋ฐ ์—ฌ๊ธฐ์„  ๋ชจ๋ธ ํด๋ž˜์Šค๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ์„œ๋ฒ„์—์„œ ๊ฐ’์„ ๋ฐ›์•„์™€ ๋‹ด์„ ๋ณ€์ˆ˜๋ฅผ ์ •ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

๋ ˆํŠธ๋กœํ•์—์„  ์–ด๋…ธํ…Œ์ด์…˜(@)์ด๋ผ๋Š” ํŠน์ˆ˜ ์ฃผ์„์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋…ธํ…Œ์ด์…˜์— ๋Œ€ํ•œ ์•ฝ๊ฐ„์˜ ๊ณต๋ถ€๋„ ํ•„์š”ํ•˜๋‹ค.

์›น ์„œ๋ฒ„์˜ ์ฃผ์†Œ๋ฅผ ๋ณ€์ˆ˜ ํ˜น์€ ์ƒ์ˆ˜๋กœ ํ• ๋‹นํ•  ๋•Œ http://๊ฐ€ ๋“ค์–ด๊ฐ€์•ผ ํ•˜๋ฉฐ, ์ฃผ์†Œ ๋์— /๋ฅผ ๋ถ™์—ฌ์ค˜์•ผ ํ•œ๋‹ค.

๊ณต์‹๋ฌธ์„œ๋ฅผ ์ฝ์–ด๋ณด๋ฉด baseURL()์— ์„ค์ •๋œ ์„œ๋ฒ„ URL์— /๊ฐ€ ์—†๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ์‹ค์ œ๋กœ ์ด๊ฑธ ์จ์ฃผ์ง€ ์•Š์œผ๋ฉด ์•ฑ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ค์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋“œ๋ฌผ๊ฒŒ ๋ฐœ์ƒํ–ˆ๋‹ค. ๊ทธ ๋’ค๋กœ๋Š” http://~~~.~~.~~.~~/ ์‹์œผ๋กœ ๋‚ด ์›น ์„œ๋ฒ„์˜ ์ฃผ์†Œ๋ฅผ ์ ์–ด์ฃผ๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค.

๋ณ€์ˆ˜ ํ˜น์€ ์ƒ์ˆ˜๋กœ ์„ค์ •ํ•œ ์›น ์„œ๋ฒ„ URL์˜ ๋งˆ์ง€๋ง‰์—๋Š” /์„ ๊ผญ ๋„ฃ์–ด์ฃผ์ž.

 

๊ฐ ์ž๋ฐ” ํด๋ž˜์Šค์™€ ์ธํ„ฐํŽ˜์ด์Šค, php ํŒŒ์ผ์˜ ์ฝ”๋“œ๋“ค์€ ์˜ˆ์ œ๋งˆ๋‹ค ์กฐ๊ธˆ์”ฉ ํ˜•ํƒœ๊ฐ€ ๋‹ค๋ฅด์ง€๋งŒ ๊ธฐ๋ณธ์ ์ธ ํ‹€์€ ๊ฐ™๋‹ค.

์ด๊ฒƒ์€ ์˜ˆ์ œ ์ฝ”๋“œ๋“ค์„ ๋ถ„์„ํ•˜๋ฉด์„œ ์™œ ์ด ํด๋ž˜์Šค์™€ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ํ•„์š”ํ•œ์ง€, ์ด ์ฝ”๋“œ๋Š” ๋ฌด์Šจ ๊ธฐ๋Šฅ์„ ํ•˜๋Š”์ง€๋ฅผ ์ž์‹ ์ด ์ง์ ‘ ๊ณต๋ถ€ํ•˜๊ณ  ๋ถ„์„ํ•ด์•ผ ํ•  ๊ฒƒ ๊ฐ™๋‹ค.

๊ตฌ๊ธ€์— ํ•œ๊ธ€, ์˜์–ด๋กœ ๊ฒ€์ƒ‰ํ•˜๋ฉด ๋‹ค์–‘ํ•œ ์˜ˆ์ œ๋“ค์ด ์žˆ์œผ๋‹ˆ ์ฐธ๊ณ ํ•ด๋ณด์ž.

 

์ฐธ๊ณ ๋กœ ๋”๋ฏธ ๋ฐ์ดํ„ฐ๋ฅผ ์“ธ ๋•Œ ์–ด๋–ค ์‘๋‹ต์ด ์˜ค๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด POSTMAN(ํฌ์ŠคํŠธ๋งจ) ์‚ฌ์šฉ

 

์ถœ์ฒ˜ : https://onlyfor-me-blog.tistory.com/141