77/99 실전프로젝트 막바지 코드 리팩토링
이제 어느새 실전프로젝트도 막바지에 다다르고 있나보다.
지난주에 MVP 발표를 허겁지겁 했었는데 또 출시를 눈앞에 두고있다.
날도 덥고 체력이 바닥을 기는거같아서 .. 영양제도 샀다.
오늘은 휴일인데도 홍삼 + 영양제를 더블로 흡수 🫣
30대의 시작인가 싶더라. 물론 러닝도 아직 잘하고 나름 운동도 하니까 괜찮은거겠지.
오늘 WIL 주제는 실전 프로젝트를 하면서 기술적으로 막혔던 부분에대해서.
지난 글에서 언급했던 것 처럼.
nginx (http -> https redirect)
docker image를 통한 nginx와 Certbot을 이용해서 https로 리다이렉트 하려면 ssl 인증서를 갱신해줘야하는데 그 과정에서 수많은 오류들을 만났다.
일단 Docker-compose 파일에서 volumes로 파일 경로를 설정하는 부분에서 한참 애먹었고 이후에 인증서 발급받고 https로 변환까지 했으나
301 리다이렉트 문제로 리다이렉트가 너무 많다는 에러가 떴다.
그 부분 코드를 삭제하니까 에러는 해결됐는데 서버가 켜지지 않았고 결국 시간에 쫓기다가 실패했다.
error를 찾는 과정에서 cloudflare 라는 서비스를 알게되었고 도메인을 등록해주고 https로 변환해주었다.
근데 과연 시간이 충분히 있었더라면 해결했을까 싶기도 하다. 2일 내내 물론 계속 나아지긴 했지만. 에러들을 검색했고 나름의 추측까지 하면서 결국 https로 변환했으나 too many redirect 라는 에러를 만나버렸으니까 못한것과 마찬가지다. 이렇게 며칠동안 어떤일을 하려고 노력하다가 결국 시간초과( 기간내에 완수해야하는 프로젝트이기 때문에)로 못해버리면 내가 그동안 뭐했지라는 생각이 들기 마련이다. 뭐 나같은 경우엔 많은 방법중에 굳이굳이 도커 이미지의 nginx로 해내겠다라는 고집을 부린거지만.
또 부딪히는 문제중에 테스트코드 작성이 있는데
나름 jest 강의도 사서 듣고 하는데 unit 테스트를 하려고 보니까 지금까지 작성한 코드가 unit 테스트 하기에 적합하지가 않았다. 아니.. 못하는건가 싶다. 그래서 일단 unit 테스트에 맞는 코드로 변환하려 노력중이다.
예를 들면 현재는 한 모듈에 2가지의 메소드가 들어가지 않게끔 하는 중이다.
대부분 CRUD에서 DB에 있는지 확인하고 그 이후에 하는 과정인데 그럼 필연적으로 find + 다른 메소드가 포함된다.
그래서 next를 좀 더 적극적으로 차용하려고 한다.
어떤 모듈을 통과하면 다음 모듈로 가게되면 그땐 한가지 메소드로 모듈을 구성할 수 있다.
즉 지금 하고싶은건 api 들을 모듈화 하고싶다. 그래야 unit 테스트를 하는것도 수월하게 될거같고 그 이후에 통합테스트까지 할 수 있을것같다.
이제 얼마 안남았다.. 내가 뭘했지? 싶지만 돌아보면 꽤 많이 와있더라. 화이팅 🤟