이전의 REST에 대해 포스팅하며 그 특징 중 하나로 '인터페이스 일관성'에 대해 얘기한 적이 있다.
인터페이스의 일관성을 유지하는 것은 REST 서비스 설계의 기본이다.
'REST의 일관성'이라고 한다면 데이터를 주고받는 형식을 통일시키는 것이 떠오른다.
일종의 약속이랄까? 그렇기 때문에 이것을 지키면 보기 편하다. 즉, 남의 코드라도 해석하기 쉽다.
UI에 대해 전문적인 언어로 정리해보자.
인터페이스 일관성은 RESTful 서비스가 통신을 위해 사용하는 인터페이스가 일관된 방식으로 설계되어야 함을 의미한다. 이 원칙은 클라이언트와 서버 간의 상호작용을 단순화하고, 시스템의 분리를 가능하게 하여, 각 부분을 독립적으로 개발할 수 있도록 합니다.
줄 글만 보니 감이 안올 수가 있다.
인터페이스 일관성이 잘 유지된 RESTful API의 예시 예시를 함께 보자.
GET /books/{bookId}
{
"id": 1,
"title": "RESTful API 설계",
"author": "홍길동",
"publisher": "IT출판사"
}
Content-Type: application/json
{
"id": 1,
"title": "RESTful API 설계",
"author": "홍길동",
"publisher": "IT출판사",
"links": [
{
"rel": "reviews",
"href": "/books/1/reviews" // <--
},
{
"rel": "purchase",
"href": "/books/1/purchase" // <--
}
]
}
가독성과 이해성 향상: 학습 곡선을 낮추고 개발 과정을 가속화.
재사용성 증가: 개발 시간과 비용을 절감.
통합 용이성: 다른 시스템이나 서비스와의 통합이 용이. 다른 시스템과의 연동이 더 쉽고, 통합 작업 시 필요한 작업량이 줄어든다.
확장성: 서비스가 성장하고 변화해도, 기존 클라이언트를 크게 변경하지 않고도 새로운 기능을 추가하거나 기존 기능 개선 가능.
UI는 개발자라면 당연하게 지켜야 하는 것인 만큼 굉장히 익숙하다.
그렇지만 UI가 깨져서 RESTful하지 않는다면, 아무리 기능이 좋더라도 눈살이 찌푸려질 것 같다.
항상 고민하고 더 나은 것을 만들어보자!