Showing posts with label webserver. Show all posts
Showing posts with label webserver. Show all posts

Tuesday, December 15, 2020

Go로 만든 Flutter Web 호스팅 웹서버, 문제 해결법까지

플러터 웹 개발 중 마주한 404 관련 이슈

플러터 웹 개발을 하면서 가장 어려웠던 문제 중 하나는 404 오류였습니다.

여러 복잡한 이슈가 있었는데 그 중에서도 웹 서버로 띄우고 'build web'으로 생성된 정적 파일을 서빙할 때, URL 앞에 해시(#)가 없으면 웹 서버가 인터셉트하여 임의로 404 오류를 반환하는 문제가 있었습니다. (해시가 있는 경우에는 플러터 웹에서 지정한 404 페이지로 이동합니다.)

처음에는 익숙한 스프링 부트를 사용하여 웹 서버를 구축하다가, 이번 기회에 배워보고 싶은 고(Go) 언어로 웹 서버를 만들기로 결정했습니다. 그러나 기초 지식 없이 도전하다 보니 더 많은 고통을 겪게 되었고, 결국 인터넷에서 코드를 찾아서 사용하기로 했습니다.

인터넷에서도 클라이언트에서 404 오류를 처리하는 일이 드물어서 관련 자료를 찾기 어려웠습니다. 대신 404 오류를 리디렉션하는 방법으로 접근해 검색 결과 아래와 같은 코드를 찾게 되었습니다.

위와 같이 서버를 띄우면 URL 경로에 해시(#)가 없으면 메인 페이지로 리디렉션됩니다.

나중에 Go 언어에 익숙해지면 코드 정리도 해봐야겠습니다.