이전에 진행하던 아이템 시뮬레이터 프로젝트에 대해 마무리하는 시간을 가졌다.
사실 프로젝트 자체는 사실상 어제 완성을 한 상태였지만,
AWS EC2를 통해 가비아에서 구매한 도메인으로 배포하는 과정 및
기타 다른 디테일적인 부분의 수정이나 리팩토링 과정을 거쳤다.
리팩토링 내역을 정리하면 다음과 같다.
prisma 모델에 관하여 전체 column 명들에 대해 camelCase 스타일로 일관성을 위해 통일.
로깅 미들웨어에 대해 로깅 레벨 info 뿐만 아니라 error를 기록하도록 변경.
일부 api들에 대해 명세에 추가적인 validation 과정
약간의 troubleshooting이라고 한다면,
ec2를 통해 배포 이후 해당 ec2 public ip주소 혹은 도메인 주소로 api 테스트를 할 때에 발생했다.
https로 써서 api를 쏜 점이 문제였다. 내가 만든 프로젝트는 node와 express를 이용했기에 별도의 SSL 인증서의 설정이 없다면 기본적으로 HTTP로 설정이 된다. 그렇기 때문에 SSL 오류가 난 것이었다.
보통은 이를 방지하기 위해, SSL 인증서를 구입하거나 설정해야 하는데
무료로 발급가능한 Let's Encrypt 가 흔히들 사용된다고 한다.
HTTP 요청은 기본적으로 포트 80을 사용하기 때문에, (HTTPS 요청은 443)
다른 포트를 이용할 시에는 반드시 포트 번호를 명시해줘야 하므로 (도메인 주소):PORT_NUMBER 를 붙여야 하는 것이다.
기본 포트에서 동작하려면 Nginx 또는 Apache와 같은 리버스 프록시 서버를 사용하는 것이 일반적이다.