-
20221209 TIL 배포를 하면 고려하지 못했던 점들을 확인할 수 있다TIL 2022. 12. 9. 23:09
오늘 배포를 약 3~4시간 정도면 끝낼 수 있을 줄 알았는데,
예상치 못한 부분들이 마구마구 튀어나왔다.
그래서 아직도 배포를 진행 중이다.
배포를 하면서 고려하게 된 점들이 있었다.
1. 로컬에서 서버와 클라이언트를 함께 띄울 때보다 서버 응답 속도가 현저히 느려진다.
이로 인해 나타난 문제가 크게 두 가지 있었다.
첫 번째로 리스트 크기가 0일 때 상품이 존재하지 않습니다 메시지를 보여주게 코드를 작성해 두었는데,
로딩이 매우 빠르게 되는 경우 거의 보이지 않아서 큰 문제가 없었지만,
배포를 하면서 서버 응답 속도가 현저히 느려져서 상품이 존재함에도
API응답 속도가 느려서 상품이 존재하지 않습니다 메시지가 먼저 보이게 된다.
따라서 로딩 중인 상태를 반드시 분리를 해야겠다는 생각을 하게되었다.
두 번째로, 실시간으로 유효성 검증을 하기 위해 회원 가입을 할 때 아이디 값을 수정하면
서버에 해당 아이디를 가진 유저가 있는지 중복 체크를 하는 API를 보내고 있는데,
서버 응답 속도가 매우 느려서 입력이 잘 되지 않는 문제가 발생하고 있다.
이 부분은 디바운싱을 이용해서 유저가 입력을 한동안 멈췄을 때만 API를 호출하는 방식으로 수정해야 될 것 같다.
2. 백도어 API 처럼 배포 버전에서 막아야 하는 부분들이 있다.
e2e테스트 각각의 독립성 보장과, 필요한 데이터 추가를 위해 만들어둔 백도어 API는 배포되어서는 안된다.
왜냐하면 기존 DB를 다 날려버리는 등의 기능이 들어있어서 매우매우 위험하기 때문이다.
백도어 API가 정의된 백도어 컨트롤러는 production환경에서 실행되면 안되는데,
어떻게 하면 좋을까 생각을 하다가 @Profile("!production") 어노테이션을 붙여주는 방법을 이용해서
백도어 API를 사용할 수 없게 만들어 두었다.
아샬님께 조언을 구한 결과 환경변수와 인터셉터를 이용해서 백도어를 막을 수 있는 방법을 얻을 수 있었다!
환경변수와 인터셉터를 쓰는 방법환경변수를 활용하는 방법인터셉터를 이용하는 방법WebMVC 설정에서 인터셉터를 추가하는 방법포트폴리오를 구현할 때는 아샬님께서 알려주신 방법을 이용해서 백도어 API를 막아보도록 해야겠다!
하지만 아직 해결되지 않은 문제가 꽤 많이 남아있다.
1. 로컬에서 띄운 서버와 다른 오리진을 가지고 있는 로컬에서 띄운 클라이언트에서는 CORS에러가 없었는데,
서버를 배포하니 배포한 서버를 사용하는 클라이언트에서 GET요청은 문제가 없는데 POST요청에서 CORS에러가 발생하고 있다.
2. parcel로 build한 리액트 앱을 github pages로 배포를 해야하는데, SPA를 배포해야 해서 원하는 대로 배포가 잘 되지 않고 있다.
내일 중에는 위 에러들을 해결해서 꼭 배포를 완료하도록 해야겠다.
하나씩 해결을 해보자!
'TIL' 카테고리의 다른 글
20221211 TIL 사용자에게 줄 수 있는 가치 중심으로 고민하기 (0) 2022.12.11 20221210 TIL 좌충우돌 배포하기 (1) 2022.12.10 20221208 TIL 리팩토링을 조금 더 편하게 (0) 2022.12.08 20221207 TIL 트렌디한 페이지네이션 구현하기 (0) 2022.12.07 20221206 TIL 평정심 유지하기 (0) 2022.12.06