정말로 처음에 REST를 접했을 땐, 오히려 '에이 이게 모야, 아무나 만들 수 있는 것 아냐?'라고 생각했었다. 요즘 드는 생각은, REST api 도 누가 만드냐에 따라, 갖다 쓰는 사람의 편의성이 확 달라지는 것 같다.
아무 생각 없이 설계한 api는 정말 클라이언트에서 고생할게 안 봐도 비디오다. 혼자 api 만들고 클라이언트에서 가져다 써보니 알겠다. 이전에 프런트엔드로 작업할 땐, 백엔드 쪽에서 '왜 이렇게밖에 api를 못 만들어줄까... 이러면 내가 또 몇 번을 가공해야 하는데, 나는 api를 두 번 이상 불러야 내가 원하는 데이터를 받을 수 있네..' 하고 불평을 하게 되고, 백엔드로 프로젝트할 땐, '이 정도 해주면 프런트 쪽에서 문제없이 잘 쓰겠지'라고 생각하게 된다. 그러다 보니, 이 간극을 잘 채울 수 있고, 누가 봐도 쉽게 데이터를 가져다 쓸 수 있게 만든 설계가 실력 있는 설계 같다.
옛날에 채용공고에서 REST api에 대한 이해가 있으신 분을 고용한다고 해서, 저게 뭔 소리야 했는데 아... 바로 이 소리구나. 좋은 api를 만들어야 프런트고 백이고 생산성이 좋아지는 것 같다. 어떻게든 무조건 DB에 접근만 만 할 수 있게 해 주면 된다,라고 생각하면 정말 이게 무슨 고물상처럼, 매 번 원하는 데이터를 받으려면 온갖 창고를 다 뒤져야 하는 것 같다. 좋은 api는 잘 정돈된 다이소 같은 느낌?
실제 서비스가 어떻게 돌아가는지에 대한 이해가 있어야 좋은 api를 설계할 수 있는 것 같다. 현재는 내 서비스를 만들고 있으니 앞쪽에서 어떤 데이터를 어떤 방식으로 불러올지 대충 예상이 되니 다행이다. 그러나 서비스 범위가 커지고, 프런트나 백엔드 중 하나만 맡게 될 경우, 효과적인 커뮤니케이션이 필수인 것 같다. 문서화를 순발력 있게 할 수 있다면 제일 좋지만, 개발 중간에는 구두로 빨리빨리 이야기하는 게 더 좋은 것 같기도.