일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 코틀린
- GIT
- Unity
- Kotlin
- 안드로이드개발
- 내 맘대로 정리한 안드로이드
- github
- 쿼터뷰
- 앱
- 앱개발
- 티스토리
- 카페오냥
- Android
- 개발
- 안드로이이드 submodule
- github submodule
- 서브모듈 sourcetree
- 2d게임
- gitlab submodule
- firebase
- 서브모듈 pull
- 목서버
- 안드로이드
- 게임개발
- Android Studio
- 타이쿤
- DataBinding
- 유니티
- submodule sourcetree
- java
- Today
- Total
Uing? Uing!!
[개발 팁] Postman Mock Server: 서버 api가 나오기 전에 클라이언트 개발을 편하게 해 보자 본문
앞단 개발자의 기다림
앱 개발자에게 서버 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를 구축하면, 보안 문제까지 고려한 완벽한 테스트 환경을 만들 수 있다.
'Android' 카테고리의 다른 글
[안드로이드 삽질기록] Compose와 안드로이드 13의 예측 뒤로가기 기능을 같이 사용하면 물리 뒤로가기 키가 고장나는 버그가 있다 (1) | 2023.09.09 |
---|---|
[안드로이드 팁] SHA1, SHA-256 확인하는 법과 signingReport gradle이 없을 때 해결 방법 (0) | 2023.09.08 |
[안드로이드 팁] 안드로이드 스튜디오 탐색기에서 현재 편집 중인 파일 바로/항상 접근하기 (0) | 2021.11.08 |
[안드로이드 팁] include 태그: 반복되는 레이아웃을 재사용하자! (4) | 2021.10.27 |
[안드로이드 팁] 데이터바인딩 내부에서 리소스 또는 String(plain text)를 사용하는 방법 (0) | 2021.10.27 |