Rest API에 대해(1)
The Design of Web APIs 2021. 12. 9. 17:44

이번부터 몇번에 거처 Rest API에 대하여 깊게 다루어 볼 예정이다. 이 내용은 gRPG를 이해하기 위한 HTTP/1.1 기반 Rest API에 대하여 정리하기 위함이다. 참고서적은 The Design of Web APIs 책이다. Rest의 정의 Rest는 Representational State Transfer의 약자로 자원을 이름으로 구분하여 자원의 상태정보를 주고 받는 것을 의미한다. 구체적으로 살펴보면 HTTP URL를 통해 자원을 명시하고 HTTP Method를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미한다. 장점 HTTP 프로토콜을 사용하여 별도의 인프라 없이 구현 가능 HTTP 프로토콜을 사용하는 플랫폼에서 사용가능하다 Rest API에서 메시지 의도하는 바..

Rest API에 대해(3)
The Design of Web APIs 2021. 12. 7. 10:37

앞의 두 글을 통하여 Rest API에 대해 소개했고 설계에 있어 직관적으로 설계해야 함을 설명했다. 이번 글은 Rest API를 예측가능하게 설계하는 것에 대하여 다루어 볼려고 한다. 예측 가능하게 설계하려면 일관성, 적응성 넓은 커버리지를 갖도록 설계해야 한다. 아래 각각에 대해여 살펴보자. 일관성 이 특성은 API를 설계함에 있어서 제일 중요한 특성이라고 생각 한다. 일관성이 있게 설계하면 이글의 목표 예측 가능한 API를 설계하는 목표에 도달할 수 있게 된다. 예를 들어 날짜 표시를 어떤 곳에는 createDate라고 쓰고 다른 곳에는 dateUpdate라고 쓰면 일관성 원칙도 지켜지지 않고 가독성도 떨어진다. 일관성을 맞춰야하는 Level를 아래와 같이 정의할 수 있다. Level 1 : 한 A..

Rest API에 대해(2)
The Design of Web APIs 2021. 12. 4. 22:01

이번 글에서는 직관적인 Rest API를 설계함에 있어 지켜야 할 원칙에 대해 적어 보려고 한다. 이 내용은 The Design of Web APIs 를 참고 했으며 내가 생각하기에 합당한것들만 정리하였다. 직관적인 표현방식을 사용 데이터를 정의함에 있어서 직접적이고 명확한 이름과 명확한 type를 정하는 것이 바람직하다.(클린 코드에서도 강조하는 부분이다.) 애매모호한 data type으로 API 데이터를 표현하지 말아라. 예를 들어 알람 시계에서 알람 시간 표현을 현재시간부터 몇초 남았는지를 표현 하는것이 아니라 몇시 몇분에 알람이 울릴 것인지를 표현하라. 사실 우리가 API 데이터를 설계함에 있어 자주 범하는 실수이다. 데이터를 표현함에 있어 이름은 직관적이면 좋다. 예를 들어 bkAccOverPr..