Uing? Uing!!

[개발 팁] Postman Mock Server: 서버 api가 나오기 전에 클라이언트 개발을 편하게 해 보자 본문

Android

[개발 팁] Postman Mock Server: 서버 api가 나오기 전에 클라이언트 개발을 편하게 해 보자

Uing!! 2024. 11. 24. 22:30
반응형

앞단 개발자의 기다림

앱 개발자에게 서버 API를 기다리는 시간은 필연적이다.

이 기다림은 개발 전, 개발 중, 심지어 개발이 끝난 후에도 발생한다.

기획이 완료되고, 디자인이 완성되고, 서버 API까지 완벽히 준비된 후에 앱 개발이 진행된다면 모든 것이 간단해지겠지만...

현실적으로 이런 상황은 드물다.

서버와 앱 개발은 대부분 동시에 진행되기 때문에, 앞단 개발자들은 대개 이 시간을 효율적으로 활용할 방법을 찾는다.

Mock Server 의 가치

서버 API가 완성되기 전에 클라이언트 개발을 원활하게 하기 위해 많은 개발자들이 다음과 같은 방법들을 활용한다.

 

  • 더미 API 요청: 서버에서 간단한 더미 API를 제공받아 테스트.
  • 더미 데이터 하드코딩: 앱 내부에서 가상의 데이터를 직접 생성해 사용.
  • 유닛 테스트 작성: 에러나 딜레이 상황을 가정하여 코드를 테스트.

이러한 방법들은 나름의 효과가 있지만, 실제 서버 연동 시 발생하는 다양한 예외 상황까지 완벽히 대비하기는 어렵다.
예를 들어, 특수 문자가 포함된 데이터나 비어 있는 값, 서버의 예상치 못한 응답 등이 문제가 될 수 있다.

Mock API Server

우리 팀 역시 이 기다림의 문제를 해결하기 위해 여러 가지 시도를 했었다.
가장 효과적이었던 것은 부끄럽지만 내가 도입한 것이었는데, 사내에서 한 번 래핑하여 제공하던 Mock API Server를 사용한 것이었다.

Mock API Server는 가상의 서버 환경을 만들어 서버 연동 없이도 실제와 유사한 테스트를 가능하게 해 주는 툴이다.

Postman Mock Server

앞서 사내 툴을 언급했지만, 사내에 이런 툴이 없더라도 Postman을 이용해 아주 간단하게 목서버를 구축할 수 있다.

Postman은 이미 많은 개발자들이 사용하는 API 개발 및 테스트 도구로, 이 안에 포함된 Mock Server 기능은 접근성과 편리함 면에서 훌륭하다.

간단한 프로젝트라면, 이 Postman을 사용해 아주 쉽게 30분 이내로 목서버를 만들어 붙일 수 있다. (내가 테스트해 보았다.)

 

포스트맨 링크는 여기: https://web.postman.co/

 

1. Postman 에서 collection 생성

- Postman에서 새로운 workspace, 새로운 collections를 생성한다. (아래의 Uing Server)

2. Mock Server 생성

- 좌측 메뉴 목록에 Mock Server 탭을 추가한다. (더보기 메뉴를 열어 'Mock Servers' 스위치를 켠다.)

 

- 목서버 탭 -> Create mock server -> Select an existing collection을 선택하고, 방금 만들었던 collection을 선택한다.

 

- 목 서버 이름을 적당히 입력하고, 'Save the mock server URL as a new environment variable'을 선택한 후 완료한다.

3. request 생성

- 새로 생성한 collection에, 테스트 대상이 될 request를 추가한다.

    - {{url}}은 목 서버 environment의 url이 들어가게 될 부분이다.

    - 페이지 등의 쿼리값에 따라 다른 결과가 나오게 하고 싶다면, 정규식으로구분할 수 있는 것으로 알고 있다.
    - 테스트할 API와 그에 대한 예시 응답(예: JSON 형식)을 작성한다.

    - 필요한 경우 상태 코드(200, 400 등)나 딜레이도 설정 가능하다.

4. request에 대한 예시 응답 생성

- Add example을 눌러 예시 응답을 생성하고, {{url}} 위치에는 목서버 environment를 선택해 우리가 생성한 목 서버에 연결되도록 한다.

5. 동작 테스트

- 여기까지 완료되었다면 상단 우측 save 버튼을 눌러, 목서버에 신규 api 데이터가 적용되도록 한다.

- 이후 'Send'를 눌러 보면, 넣어 둔 데이터가 나오는 것을 볼 수 있다.

6. 앱에 목서버 연동

- 5번까지 완료되었다면 목서버는 완벽하게 준비되었다. 이제 앱에 연동만 하면 된다.

- 앱 연동은 테스트하고자 하는 곳에서는 목서버의 url을 사용하도록 하면 되는데, 방법은 여러 가지가 있으니 프로젝트에 맞게 적용하면 된다.

- 단, Postman Mock Server의 경우 무료 요금제로는 월 1000회의 호출까지만 가능하기 때문에, 모든 api에 대한 인터셉팅 등은 하지 않는 게 좋을 듯하다.

 

이렇게 적용이 완료되었다면, 이후로는 실 서버 api가 나오기 전에 목 서버 데이터로 앱을 미리 돌리고 검증해볼 수 있다.

Mock API Server의 장점

Mock API Server를 적용한 이후로는, 서버 개발이 완료되기 전에 서버가 있는 것처럼 앱을 자유자재로 테스트해볼 수 있어서 개발도 편리해졌고, 추후 서버와 붙였을 때에 발생하는 예외적인 케이스도 상당수 줄일 수 있었다.

목서버 도입을 통해 느낀 장점들을 나열해 보자면 아래와 같다.

 

  • 실제 연동과 유사한 환경 제공
    실제 서버가 준비되지 않아도 API 응답 형식, 딜레이, 에러 상황 등을 가상으로 구현할 수 있다.
  • 개발 속도 향상
    서버의 준비 상황과 관계없이 독립적으로 기능을 테스트하고 검증할 수 있다.
  • 예외 케이스 확인
    실 서버와 연동하기 전에 다양한 예외 상황을 테스트할 수 있어 안정적인 코드 작성이 가능하다.
  • 팀 간 협업 강화
    서버 개발자와 클라이언트 개발자 간의 의존도를 낮추고, 개발 병목 현상을 최소화할 수 있다.

결론

Mock Server는 단순한 개발 도구를 넘어, 팀 전체의 개발 효율성을 극대화하는 강력한 도구다. 목서버 강추.

추천 활용 방안

  • 토이 프로젝트: 보안이 크게 중요하지 않은 경우, Postman Mock Server를 활용하면 쉽고 간편하게 목서버를 사용할 수 있다.
  • 보안이 필요한 서비스: 오픈소스를 활용해 자체 Mock API Server를 구축하면, 보안 문제까지 고려한 완벽한 테스트 환경을 만들 수 있다.

 

반응형
Comments