IT/Android studio

1탄. 안드로이드 Retrofit 개념 및 사용법(feat. 앱 개발 방법)

Buang 2023. 10. 11. 20:35
반응형

 

개요

  • 처음 Retrofit을 사용하면 이게 도대체 뭔지, 너무 막막하고 어렵게 느껴지실 수 있을 거 같습니다.

  • 그래서 오늘은 Retrofit의 개념을 최대한 쉽게 설명하고, Retrofit을 사용할 때 알아야 할 배경지식에 대해 설명하고자 합니다.

  • 실제 Retrofit 사용 예제는 3탄 활용편에서 확인할 수 있습니다.

 

* 공부하면서 정리한 글입니다. 부정확한 부분이 있을 시 이야기 주심 감사하겠습니다.

 

 

Retrofit은 마법사다.

 

 

 

  • Retrofit은 안드로이드 앱에서 네트워크 통신을 단순화하기 위한 것으로 서버와의 통신을 위해 사용하는 라이브러입니다. 이것만 보면 무슨 소리인가 싶을 수 있습니다.
  • 예를 하나 들어보겠습니다.

  • 만약 날씨 앱을 만든다고 했을 경우, 그날의 온도와 습도같은 데이터가 필요할 것입니다.

  • 이런 데이터는 내가 어떻게 만들 수 있는 게 아니라서, 온도와 습도 정보를 가지고 있는 기상청 서버한테 가서 말합니다.


"오늘의 온도와 습도 정보 좀 저한테 주세요!"

 

  • 이 요청에 따라서 서버가 오늘의 날씨 정보를 보내줄 수 있습니다.

  • 이때 서버와 나 사이에 통신 과정을 지원해주는 아이가 바로 있는데 그게 바로 Retrofit 입니다.

  • 아직 소리인지 감이 잘 안 잡힐 수 있으니 비유를 한 개 더 들어보겠습니다.

 

출처: 픽사베이 우체통

 

 

  • 철수가 영희에게 편지를 보낸다고 생각해 봅시다. 이를 위해선 편지를 쓰고, 우표를 붙이고, 우체통에 넣는 과정을 거쳐야 합니다. 그런데 이 과정이 번거롭습니다.

  • 이때 Retrofit 이라는 마법사가 나타나서 이렇게 말합니다.

"철수야!

나한테 그 편지를 줘! 편지에 우표를 붙이고,

우체통에 넣고, 나중에 답장이 오면 너한테 전해줄게!".

 

  • Retrofit 마법사가 우표를 붙이고 우체통에 넣는 번거로운 일은 다 해준다고 합니다. 그리고 답장이 오면 그것을 가지고 와서 전해주기까 한다네요.

  • Retrofit 마법사 덕에 철수는 편지를 쓰고 Retrofit 마법사에게 넘겨 주기만 하면 됩니다. 그럼 Retrofit이 알아서 영희한테 편지도 보내주고, 답장도 다시 주니까요. 

 

지금까지 작성한 내용을 정리하자면 아래와 같습니다.

 

  • 내가(프론트) 편지를 작성해서 지인(서버)에게 전해주려고 한다.

  • 편지 전달은 Retrofit이란 마법사가 대신 해준다.

  • Retrofit 마법사는 내 편지를 지인에게 전달하고, 지인이 쓴 답장(응답)을 받아서 나에게 전해준다.

  • 이렇게 나(프론트)와 지인(서버) 사이의 통신을 Retrofit이란 마법사가 도와준다.

 

Retrofit의 정의

 

  • 위에서 Retrofit을 마법사에 비유해서 설명했습니다. 이제 구체적으로 Retrofit이 실제로 어떻게 사용되는지 알아봅시다.

  • 위에서 한 번 이야기했다 싶이 Retrofit은 안드로이드 앱에서 서버와의 통신을 위해 사용되는 라이브러리입니다.

  • 앱 개발을 할 때 Retrofit을 사용하는 예로 로그인 페이지를 들 수 있습니다.

이메일과 비밀번호를 입력해야 하는 로그인 페이지

 

  • 위와 같은 로그인 페이지에 사용자가 이메일과 비밀번호를 입력했다고 해봅시다.

  • 사용자가 입력한 이메일과 비밀번호는 DB(저장소)에 있는 것과 일치하는지 확인해야 합니다.

  • 일치하면 보통 로그인에 성공했습니다!라고 알려주고, 일치하지 않는다면 이메일이나 비번을 다시 입력해주세요. 라고 뜹니다.

 

 

 

  • 위에서 작성한 걸 좀 더 상세히 풀면 아래와 같습니다.

  • 프론트쪽에선 사용자가 입력한 이메일과 비밀번호를 서버한테 보내줍니다. 이때 서버로 이메일과 비밀번호를 보내주는 걸 Retrofit이 해줍니다.

  • 프론트는 Retrofit에게 사용자가 작성한 이메일과 비밀번호를 전달하면서 아래와 같은 요청도 서버에게 전달해 달라고 이야기를 합니다.

“서버야!

사용자가 이런 이메일이랑 비밀번호를 입력했어.

DB에 이런 아이디랑 비밀번호가 있는지 확인 부탁할게!”


  • 프론트가 이런 요청을 하면 서버는 프론트에서 보내준, 즉 사용자가 입력한 이메일과 비밀번호가 디비에 저장되어 있는지 확인합니다.

  • 사용자가 입력한 이메일이나 비밀번호가 있다면 있더라!’ 라고 응답을 보내줍니다. 없다면 그거 없더라! 라고 응답을 보냅니다.

  • 이 응답 메세지는 서버가 프론트한테 바로 전달하는 게 아닌 서버가 Retrofit한테 전달하고, Retrofit이 프론트에 전달합니다.

  • 프론트 쪽에선 서버가 보낸 응답 내용에 따라 사용자에게 이메일이나 비번을 다시 입력해주세요.고 할 수 있고, 혹은 로그인에 성공하셨습니다! 란 문구를 띄어줄 수도 있습니다.

  • 이렇게 프론트가 서버에 요청을 보내고, 서버가 그 요청에 맞게 다시 프론트로 응답을 보내주는 즉, 프론트와 서버의 통신 과정을 지원하는 게 바로 Retrofit입니다.

 

마무리

 

  • 지금까지 Retrofit 개념에 대해 살펴봤습니다. 

  • 이제 본격적으로 안드로이드 스튜디오에서 Retrofit을 사용하는 방법을 알아볼 차례입니다.

  • 이 Retrofit을 안드로이드 스튜디오에서 사용하기 위해선  Request 파일, Response파일, ApiInterface 파일, RetrofitClient파일을 알고, 또 만들 수 있어야 합니다.

  • 다음 편에선 위의 파일이 무엇이고, 어떻게 만드는 것인지 알아보겠습니다.
반응형