HTTPS 연결을 다시 한번 시도해보자.
아무리 생각해도 기껏 구현해둔 구글, 페이스북 로그인 기능을 버리기가 너무 아까워서 작년에 실패했던 https 연결을 다시 시도해 보기로 했다.
이번엔 혹시나 처음에 네이버 클라우드 플랫폼에서 서버를 할당 받을 때 뭔가 따로 설정해줘야 할 게 있었나 싶어서 아예 할당받았던 서버를 반납하고 새로 서버를 할당받아 보았다.
그리고 서버를 다시 재할당받은 것이 거대한 스노우볼이 되어 돌아왔다.
삽질....삽질....삽질....
HTTPS 연결을 하려면 서버를 처음 할당 받을때 뭔가 설정을 해줘야 하는게 있는지에 대한 의심에서 시작된 잘못된 판단은 무려 3일이라는 시간을 헛으로 낭비하게 만들어 버렸다.
서버를 처음 할당 받을때 뭔가 설정해줘야 하는게 있지 않을까 했지만 설정해줄건 아무것도 없었고 프로젝트를 진행하며 서버에 구축해놓은 데이터베이스와 서버상에 파일로 저장된 DDL 쿼리들, 그리고 서버 IP 에 할당된 도메인 정보만 몽땅 날려먹었다.
처음엔 이미 해본 것들이니 금방 다시 할 수 있겠거니 했지만 생각지도 못한 곳에서 삽질을 하게 되었다.
서버를 재할당 받고 웹 배포파일을 뿌려줄 외부 톰캣을 설치했는데, 이때 톰캣을 가장 최신 버전인 10.x 로 가져왔던게 화근이었다.
가장 최신으로 업데이트된 톰캣은 현재 프로젝트에서 사용중인 JSTL 과 서로 상호호환이 되지 않아 계속 오류를 발생시켰고 이걸 해결하기 위해 서버 내부에서 jsp-api.jar 파일도 삭제시켜 보고 프로젝트의 jstl 버전도 바꿔보고 해봤지만 그 어떤것도 효과를 보지 못했다.
결국 이전에 사용했던 톰캣 8.5.70 버전을 그대로 사용하면 해결되는 문제였으나, 이걸 눈치채지 못한 채 쓸데없이 며칠의 시간만 낭비해 버리고 말았다.
여기서 끝이 아니다.
위에도 말했듯이 https 연결은 물론이요, sns 로그인도 기존에 API 를 제공해주는 곳에서 등록해놓은 서버의 IP가 변경되었기 때문에 이것도 수정해줘야 하고, 데이터베이스도 처음부터 다시 구축해줘야 했다.
서버를 한번 잘못 반납하고 새로 할당한것 때문에 괜히 하지 않아도 될 일만 잔뜩 늘어나버렸다.
그 뿐만이 아니라 구글 로그인의 경우 승인된 자바스크립트 경로를 등록해줄때 /pro.gg/ 와 같은 요청 경로를 넣어줄 수 없기 때문에 그냥 담백하게 https://progg.cf 주소를 등록해줘야 하는데, 이러려면 여기에 맞춰서 배포 파일도 이름을 ROOT 로 지정해서 /pro.gg/ 와 같은 초기 요청 경로를 없애주는것과 동시에 바뀐 경로에 맞춰서 프로젝트 내부의 각종 뷰 파일에 정적 파일 참조를 위한 경로를 모두 이에 맞춰서 수정해주는 작업까지 해주어야 했다.
진짜 뻘짓도 이런 뻘짓이 없었다.
톰캣 버전과 jstl 버전이 맞지 않는것 때문에 1차로 삽질하며 시간을 날려먹고, 데이터베이스와 DDL 쿼리도 완전히 날아가버려서 데이터베이스를 새로 다시 구축하면서 2차로 삽질을 했으며(불행중 다행으로 프로젝트를 같이 작업한 형이 100% 는 아니지만 DDL 쿼리를 따로 백업 파일로 가지고 있어서 그걸 제공 받았다.), sns 로그인 같은 경우도 기존에 등록해둔 서버의 IP 가 변경 되었기 때문에 그것들도 모두 바꿔줘야 하는데, 그걸 생각 못하고 '이게 되야 하는데 왜 안되지.....' 하면서 하루를 날려먹음으로서 3차로 거하게 삽질을 해버렸다.
이 모든게 기존 서버를 반납하고 다시 재할당 받지만 않았어도 벌어지지 않았을 일 들이었다.
정말 더 화나는 것은 그때 당시 아무리 해도 방법을 찾지 못해 결국 포기했었던 https 연결이 허무할 정도로 쉽게 성공했다는 것이다.
진짜 서버 반납만 안 했으면 https 연결부터 sns 로그인 기능 동작 활성화 까지 하루면 충분했을 텐데, 서버를 반납해버리는 바람에 무려 3~4일이 넘는 시간을 헛으로 날려버렸다.
이쯤 되면 대략 정신이 멍해진다.
Let's Encrypt 를 활용해 허무할 정도로 쉽게 성공해버린 HTTPS 연결....
도대체 작년 9월엔 왜 못했나 하는 생각이 들 정도로 허무하게 성공해버렸다.
왜 그때는 아래 링크의 글을 찾지 못한 걸까.. (아마 https 를 중심으로 찾아서 letsencrypt 관련 글을 못 찾은건지도..?)
https://trend21c.tistory.com/2172
tomcat 에 letsencrypt 적용하기
certbot 홈페이지에 들어가서보았는데 tomcat은 certbot의 software 옵션에서 보이지 않습니다 하지만 걱정마세요 tomcat도 당연히 사용할수 있습니다. 좀 더 자동화되고 편리한 설정이 되지 않는 것일뿐,
trend21c.tistory.com
이 링크에서 yum 을 이용해 certbot 을 설치하는데, putty 서버상에 yum 이 없을 경우 apt-get install yum 을 통해 설치를 해준 후 위의 링크대로 letsencrypt 를 적용시켜서 서버에 https 연결을 해 줄 수 있다.
막상 https 연결을 허무하게 성공하고 나니 기존에 쓰던 서버를 반납하지 않고 바로 https 연결을 시도했더라면 삽질하느라 허무하게 시간을 날리지 않았을거란 생각이 계속 들어 스스로에게 너무 화가났지만 일단 저지른일은 저지른일,
https 연결도 성공했으니 이제 구글과 페이스북 로그인 기능을 제대로 동작시킬 차례이다.
구글, 페이스북 로그인은 로컬에서 개발할 때 이미 잘 되는거 확인했으니 뭐....
구글과 페이스북 로그인은 API를 관리할 수 있는 콘솔에서 API 가 제공될 웹 사이트의 도메인 주소만 잘 등록해주면 문제없이 정상적으로 잘 동작하는 것을 확인했다.
막상 기능이 정상적으로 잘 동작하는 것을 보니 각 sns 로그인 기능을 위한 버튼이 마음에 안 들어서 버튼 디자인을 조금 수정 해주었다.
기존에는 동그라미 형태의 버튼의 내부에 각 sns 의 아이콘이 있는 방식이었는데, 위와 같이 조금 큰 크기의 버튼으로 바꿔주었다.
물론 이것도 그닥 자연스러워 보이진 않지만 그나마 낫다는 생각이 든다.
'프로젝트 > 협업' 카테고리의 다른 글
Pro.gg - 화면별 기능 : 메인 화면 및 회원 가입, 로그인 (0) | 2022.03.23 |
---|---|
Pro.gg - 프로젝트 회고록(10) : 최종 (0) | 2022.03.17 |
Pro.gg - 프로젝트 회고록(8) : 클래스 간 의존성 주입 코드 수정 (0) | 2022.03.15 |
Pro.gg - 프로젝트 회고록(7) : 게시판 글 작성 및 댓글,답글 작성 (0) | 2021.10.26 |
Pro.gg - 프로젝트 회고록(6) : 팀 구성 및 매칭 (0) | 2021.10.22 |