retrofit이란 무엇인가?
retrofit을 사용하려는데, 한글 사용법도 제공하지만, 처음 사용하는 사람에겐 어려움이 있기에 관련해서 시간을 많이 보냈고, 정리하려 합니다.retrofit의 안드로이드 구현에 관해 어려움이 있는 분들은 아래를 참고하기 바랍니다.
기존 블로그들은 사용법에서 제시하는 구조들만 설명하고, 실제 구현을 보이지 않았기 때문에, 실제 구현에 있어 맞지 않았습니다. 구현한 경우도 API가 변경된 경우가 대부분이었기 때문에, 많이 도움 되실 것이라 생각합니다.
retrofit android 사용법이 글은 Retrofit에 대한 개념적 설명입니다! 시작합니다.
retrofit은 HTTP API를 자바 인터페이스 형태로 사용할 수 있도록 만들어 놓은 라이브러리라고 설명합니다. 왜 이걸 쓸까요?
retrofit Function
먼저 retrofit의 기능에 대해 보도록 하겠습니다. retrofit은 Rest API에서 사용하는 CURD 기능을 모두 제공합니다. POST (create) , PUT (update), GET (read), DELETE (delete)
또한 annotation (@)을 활용하여 손쉽게 통신 코드를 작성할 수 있습니다.
현재 가장 많이 사용되는 JSON이나 XML 방식의 데이터를 지원하는 라이브러리를 가지고 있습니다.
retrofit Advantage
- 낮은 비용
기존의 Asynctask를 활용한 통신을 사용해 보셨나요? 구현하는데 굉장히 불편한 것을 느끼셨을 것입니다. 저도 몇 차례 사용해 봤지만, 외우지 못하고 항상 블로그를 참고하며 사용했던 기억이 있습니다. 그만큼 불편하고 시간을 소요한다는 것이죠.
반면 retrofit은 익히는데 시간은 썼지만, 굉장히 간단하게 사용할 수 있다는 것을 알 수 있었습니다.
- 재사용성
마찬가지로, 기존의 코드는 재사용하기 매우 불편했습니다. 물론 그 구조를 재사용 가능하게 모듈화 하시는 분도 있겠지만, 저를 비롯한 일반적인 개발자들에겐 불편하고 어려운 일이라고 생각합니다.
retrofit은 주고 받을 데이터 형식 등의 수정으로 쉽게 재사용이 가능합니다!
- 유지보수
재사용성과 마찬가지라고 보셔도 될 것 같습니다. 제가 retrofit을 안드로이드에서 구현한 것을 참고하시면 좋겠습니다만, 이미 통신 구조나, 자료형 같은 부분의 모듈화가 되어있습니다. 기능 추가 및 삭제는 너무 간단하죠.
- 가독성pair programming 이나, git을 통한 프로젝트 공유가 많은 현재 개발 상황에서, 가독성은 매우 중요한 문제입니다. retrofit은 주석 없이도 이해할 수 있으실 겁니다.
- 성능
개발자에게 가장 중요한 부분은 바로 이 부분일 것입니다. 좋은 성능을 보인다면, 다소 복잡하고 어렵더라도 쓰게 되고, 쓰고 싶어지죠! 아래 표를 보시겠습니다.
압도적인 성능 차이를 보여주는 것을 확인할 수 있습니다. 기존보다 3~10배 이상의 성능이라면, 자바 & 안드로이드 개발자에겐 이미 필수적인 요소라고 생각합니다.
retrofit Weekness
- tutorial
앞서 말했다시피 tutorial이 굉장히.. 빈약합니다. 위의 글을 참고하시면 좋을 것 같습니다.
EmoticonEmoticon