빌드가 성공적으로 되었으니 서버를 내내 켜두기 위해서 docker을 사용하기로 했다.
도커에서 빌드를 하고, 백그라운드로 실행을 하면 접속이 가능하게된다.
EC2에는 물론 도커와 도커 컴포즈가 설치되어있어야한다.
도커 컴포즈는 도커 사용을 간편하게 해주는 녀석이다.
도커를 일단 키고, docker-compose build 를 진행한다.
빌드가 끝나면 docker-compose up 으로 실행하는데 백그라운드에서 실행하기 위해서는 docker-compose up -d 로 진행한다.
백그라운드에서 실행하는 이유: 인스턴스가 켜져있다는것은 해당 컴퓨터가 켜져있다는 것이다. 다만, 쉘을 열고 yarn start를 해놓지 않는이상 실행이 안되어있는 상태이다. 즉, 서버는 꺼져있기에 동적페이지는 접속이 불가하다.
그런데 일단 자동화가 되는것은 아닌상태이기에 업데이트가 되면 다시 pull을 받고 진행을 해야했다.
프리티어를 적용하여 지금 현재 rem이 1기가 정도였다.
별 문제 없을 줄 알았는데 볼륨을 넉넉히 설정해 문제가 없을 줄 알았는데 너무 느린데다가 되지도 않아 보였다.
계속 돌리고 창을 닫고...
어찌저찌 배포가 되었나 싶으면 변경된사항이 적용되어있지 않아보였다.
캐시 문제인가 싶어 내 브라우저의 캐시를 지우고 시도했다 - 실패
다시 인스턴스를 만들어 재시도했다 - 빠르게 되는것처럼 보이나 역시나 변경된 사항이 적용되지 않았다.
다시 pull 을 받아보았다.(origin develop)
이미 업데이트 된 상태라고 나오고, 실제로 파일에 들어가도 변경사향이 적용되어있었다.
대체 뭐가 문제인가... 다른 캐시가 저장되어있는 곳이 있나?
쳇GPT에 물어봤다.
원하던 상황 - 소셜로그인부분. 로직은 벡엔드에서 작성이 완료된 상태이고 우리쪽에서는 벡엔드 주소쪽으로 넘겨주기만 해주면 된다고 했다.
router을 사용했는데, 원래 수정전에는 우리 도메인 주소였으나, 벡엔드 주소로 사용해야 한다는 말에 수정을 했다.
질문에대한 답변을 들어보며 생각해보니 router는 SPA 에서 모든 페이지들을 한번에 받아와 이후에 빠르게 보여주기위해 캐시에 저장을 해두는 식으로 작동이 된다. 따라서 일단 캐시에 저장이 된다는 것인데, 그렇게 중요한 기능도 아니고, 부가 기능이기에 router가 아닌 Link 태그의 a태그를 사용하였다.( 검색최적화도 생각하여 Link태그로 감싸준것이다)
a 태그 원리 & router
<a>
태그도 원래 태그 이동시 사용하던것인데 왜 리엑트에서는 사용하지 않는가?
해당 태그는 html에서 제공하는 테그로 새롭게 다운로드 받아오는 방식인 멀티페이지 방식을 사용하게되어 느리다.리엑트, 앵귤러, 뷰 등에서 제공되는 기능을 사용해야 싱글페이지 방식으로 사용이 가능하다.
즉, 이것이 우리가 a태그가 아니라 router.push를 사용했던 이유였다.
시도 1: 도커 볼륨 삭제
시도 2: 인스턴스 다시 만들기 + 재설치
시도 3: S3 폴더 다시 넣기
시도 4: 변경된 S3도 캐시 저장된다는것을 보고, 캐시규칙? 수정
시도 5 : 도커 파일이라는 파일에 (도커 설정파일) 파일복사하는 듯한? 명령어를 추가.,
시도 6: 도커 compose build도 캐시 없이 하는 명령어
docker-compose build --no-cache
어제 내내 이 명령어들을 돌아가며 적용해보다가 안되서 도커만 돌려놓고 아침에 다시 시도를 했으나 여전히 변화가 없어 시간상 도커 사용은 일단 미뤄두고 빌드만 하기로했다.
이 빌드도 너무 오래걸렸다...
왜 시간이 오래걸릴까.
이렇게 build를 하고서 보니 여전히 랜딩페이지 변경되지 않은것을 볼 수 있었다.
일단 local상에서 발표 영상을 찍고, 나중에 보자고 넘겼는데 몇시간 뒤 다시 접속해보니 해당 변경사항이 잘 적용되어있음을 볼 수 있었다.
적용되는데에 시간이 많이 걸리는 듯 하다.
새로운 문제 : 동적페이지로 넘겨주도록 설정한 map페이지... 이하 애들이 새로고침하면 불러와지지 않는다.
이상한 오류이다..