본문 바로가기
📔개발자 일기 | | TIL

[20220212] 어제 배운 것들(TIL이 아니라 YIL...)

by 캔 2022. 2. 12.

외부 접근이 불가능한 고객사에 파일 반영을 위해 외근을 나가게 되었다. 파일 반영 도중에 쿼리 스트링의 '?' 앞에 /이 들어가서 그런 것이었다. 일반적으로 URL "www.example.com/service"라면 "www.example.com/sevice?param=value"와 같이 쿼리 스트링을 작성해야 하는 것으로 알았다. 그래서 "www.example.com/service/?param=value"와 같이 써서 오류가 난 줄 알았다. 근데, 구글링 해보니 둘 다 돼야 한다.

 

https://stackoverflow.com/questions/1617058/ok-to-skip-slash-before-query-string

 

OK to skip slash before query string?

Is it safe to always skip the trailing slash when appending a query string? That is, can I use http://example.com?querystring instead of: http://example.com/?querystring ? All webhosts I've used

stackoverflow.com

최다 추천을 받은 글쓴이의 말에 따르면, trailing slash(/)가 생략되어도 된다고 한다. 애초에 질문자는 처음 생각과는 정반대로 trailing slash를 넣어야 되는 것이 아니냐고 묻고 있었다. 

 

그러나 최다 추천자의 답변의 결론을 보면,

Of course, none of this provides a cast-iron guarantee that every web server or HTTP library will accept such URLs, nor that they will treat them as semantically equivalent to a URL that contains the slash. But as far as 
spec goes, skipping the slash is completely legal.

항상 그렇지 않을 수 있고, 서버나 HTTP 라이브러리에 따라 다를 수 있다고 한다.

 


오라클 서버로 인한 문제를 겪기도 하였다. 신청 양식이 제출되었을 때 200 에러가 떴는데 오류를 찾고 보니 이미 같은 신청 id가 존재하고 있었기 때문이다. 오라클 sequence의 커서는 200 정도였는데 가장 최근 레코드의 id는 4000을 넘고 있었다. sql 덤프 시에 sequence를 조정하지 않아서 생긴 문제인 것 같다.

 

덤프할 때 이런 것을 자동으로 조정해주지 않는다면 오라클의 sequnce는 Mysql/mariaDB의 auto_increment 옵션이나 PostgreSQL의 serial 타입보다 많이 불편해 보인다.