해외에서 지내다보니 새로이 익히게 되는 것들
알림
|
페이지 정보
작성일
2024.06.13 23:32
본문
작년 말부터 거의 해외에서 지내고 있다보니
한국에 있는 개인 웹서버에 접속할때 정말 괴랄할 정도로 느리더군요.
한국에 있을때는 네트워크 속도가 빠르니 전혀 알아차릴 수 없었죠.
이건 도저히 안되겠다 싶을 정도라서
데이터 용량을 줄이고, 캐시하는 방법들을 죄다 동원하기 시작했습니다.
- API 까지 모두 Gzip, Brotli 압축 (History와 같이 용량이 큰 API 들이 빨라지기 시작함)
- Version 정보가 확실한 Data API에는 Etag Caching
- Response Header에 Etag를 넣어주면
- Web Browser에서 Request Header 에 If-None-Match 로 Etag를 다시 보내줌
- 변경이 없다면 Body 없이 304 Not Modified만 돌려주면 되어서 속도가 급격히 증가
- Data의 유효 시간이 명확한 Data API에는 Cache-Control: max-age 를 사용해서 Caching
- max-age 만료 시간까지 Web Browser가 다시 데이터를 요청하지 않음
Version 처리가 가능한 Data 들의 생성 및 보관에 Version 정보를 포함시키고,
Data의 유효 시간을 정확히 계산하느라고 고생을 하긴 했지만,
이래저래 처리를 해두니 한결 쾌적해지긴 하네요.
해외에서 한국의 서비스들에 접속하는게 상당히 괴로운 일인데, 해외에 나와서 지내다보니 왜인지 알 것 같습니다.
(그나마 토스 같은 젊은 서비스들은 그럭저럭 느린 정도지만, 하나카드 같은 서비스는 한 페이지 뜨는데 30초~1분)
한국의 지나치게 빠른 네트워크에서만 개발을 하면 이런 종류의 최적화 기술에 좀 소홀해질 수 있는 것 같습니다.
이래저래 새로운 환경에서 지내다보니 생각해보지 못했던 것들을 새로 익히게 되네요.
댓글 8
6미리님의 댓글
한때 국내에서 해외 50개국 넘게 흩어져 있는 (심지어 대부분 개발도상국) 한국 주재원들 대상으로 서비스를 한적이 있는데,
정말 2년 동안 잠도 못자고 서비스 유지보수 했던 기억이 납니다. ㅎㅎㅎㅎ
근데 그 당시 제 머릿속엔 CDN이니 뭐니 이런 개념이 거의 없었지만, 최소한 글로벌 서비스 갈려면 지금보다 몇십배는 더 공부해야 하는걸 느꼈죠. ㅋ
정말 2년 동안 잠도 못자고 서비스 유지보수 했던 기억이 납니다. ㅎㅎㅎㅎ
근데 그 당시 제 머릿속엔 CDN이니 뭐니 이런 개념이 거의 없었지만, 최소한 글로벌 서비스 갈려면 지금보다 몇십배는 더 공부해야 하는걸 느꼈죠. ㅋ
plaintext님의 댓글
요즘 인프라는 성능을 돈으로 바른다는
나태한 생각에 사로 잡힌 저를 바라봅니다 ㅎㅎ