1. 쿼리 파라미터 값 - 문자 vs 숫자
1) 문자 일 경우
- ex) ?filter=inprogress
- endpoint url은 애초에 드러나는 것이므로 보다 직관적임
- 숫자 방식에 비해 임의로 데이터를 찔러보기 어려움 (해석이 비교적 어려움)
2) 숫자 일 경우
- ex) ?filter=1
- 문자 방식에 비해 임의로 데이터를 찔러보기 쉬움 (해석이 쉬움)
결론 : 1을 조금 더 선호
2. 쿼리 파라미터 값 - 한글 문자 vs 영어 문자
1) 한글 문자
- ex) ?filter=진행중
- 해당 '진행중'을 URL에 포함하여 요청시 변환 과정을 거침
- 변환 과정 :
- Unicode의 값 (ex. U+C21C)을 찾음
- UTF-8 인코딩 (ex. 11100011, 10001000, 1011000 - 무조건 3바이트) 으로 변환
- 최종 % 기호 뒤 두 자리의 16진수로 표현됨
- 어쨌든 변환이 한 번 거쳐진채, 동작되게 됨. 어디선가는 남은 기록으로 길을 잃을지도
2) 영어 문자
- ex) ?filter=inprogress
- 영어로 설계하는 것이 조금 더 보편적
- 굳이 변환 과정이 필요 없음
결론
- DB의 값 저장 방식이 한글 이거나 영어 인지
- QueryString ~ ServerEnum ~ DB 값 조회 까지 중간에 {'한글':'영어'}에 대한 교환 쌍 굳이 필요 할지?
- 어차피 FE는 내려온 값을 한번 가공 해야 하기에 (DB에서 굳이 한글로 할 필요는 없음)
- 한글 사용시 로그의 어디선가 16진수로 변환된 값 때문에 가독성이 떨어 질 수 있음
- 영문이 조금 더 낫다고 생각 하지만 {'한글':'영어'} 교환 쌍 등이 있으면 가능은 하다.
'소프트웨어 개발자 > 좋은 API, DB 설계하기' 카테고리의 다른 글
[좋은 API 설계하기] 조회 한 데이터 없음 - 상태코드 200? (0) | 2024.01.31 |
---|---|
[좋은 API 설계하기] 응답 Schema 의 Null 값 처리 (0) | 2024.01.31 |
[좋은 API 설계하기] 한 페이지에 API 몇개? (0) | 2024.01.30 |
[좋은 API 설계하기] 기타 (0) | 2023.05.29 |
[좋은 DB 설계하기] RDB에서 JsonField 사용 vs 관계형 테이블 맺기 (0) | 2023.05.23 |