API 목표 식별
API의 목표를 식별하는 것은 단순히 무엇을 할 수 있느냐로 끝나는 것이 아니라, 마찬가지로 과정 중 어떠한 데이터가 다뤄질 것인지도 함께 알아야 한다. 그래서 질문 목록은 아래와 같다.
- 누가 사용자인가?
- 사용자는 무엇을 할 수 있는가?
- 사용자는 그걸 어떻게 하는가?
- 그것을 하기 위해 무엇이 필요한가?
- 사용자는 무엇을 반환받는가?
- (누락된 목표를 식별하기 위한 질문) 입력은 어디를 통해서 들어오는가?
- (누락된 목표를 식별하기 위한 질문) 출력은 어디에서 어떻게 쓰이는가?
이러한 조사 과정을 진행할 수 있는 API 목표 캔버스를 살펴보자.
API 목표 캔버스
API 목표 캔버스는 여섯 개의 열로 이루어진 표이다.
- 누가 : API를 사용하는 사용자들 (또는 프로파일들)을 나열
- 무엇을 : API로 사용자들이 할 수 있는 것을 나열
- 어떻게 : 무엇을 단계별로 분해해 나열
- 입력(원천) : 각 단계를 진행하기 위해 필요한 요소들과 그것들의 원천을 나열 (누락된 누가, 무엇을, 또는 어떻게를 찾기 위함)
- 출력(사용처) : 각 단계의 반환과 그 쓰임새를 나열 (누락된 누가, 무엇 또는 어떻게를 찾기 위함)
- 목표 : 명시적이고 간결하게 각각의 어떻게 + 입력 + 출력을 재구성
| 누가 | 무엇을 | 어떻게 | 입력(원천) | 출력(사용처) | 목표 |
|---|
| 누가 사용자인가요? | 그들은 무엇을 할 수 있나요? | 그들이 그걸 어떻게 하나요? | 무엇이 필요하나요? | 그들은 무엇을 반환받나요? | 재구성된 어떻게 + 입력 + 출력 |
| | | 그것은 어디서 오나요? | 그것은 어떻게 쓰이나요? | 정말로 사용자에게 필요한가요? |
입력(원천)과 출력 사용처를 조사하여 누락된 누가, 무엇을, 또는 어떻게를 찾는다.
- 사용자에게 내부 동작과 관련된 요소(데이터, 코드 구조, 비즈니스 로직 등)를 드러내는지 확인해야한다.
- "정말 사용자가 이런 걸 궁금해 할까?" 이 질문 하나로 API가 조금이라도 사용자 관점을 지니고 있는지 확인할 수 있다.
API의 목표를 나열하는 것은 반복적인 과정이다. 이 과정은 한 단계씩 수행해야 한다. 한번에 모든 것을 해결하려 하면 안 된다. 이렇게 만들어진 리스트는 사용성, 성능, 보안성과 같은 고려사항 또는 제약사항에 따라 다듬거나 수정할 필요가 있다.