[카우치코딩]포트폴리오 만들기 2주차

Yongjun Lee·2022년 8월 24일
0

이번 주는 기능 명세서 기획과 ERD 설계를 마치고 백엔드는 개발환경 세팅을 시작했다. 백번 강의 듣는 것보다 직접 만드는 게 더 효율적이라는 것을 다시 한 번 체감했다. 듣는 것은 단순 학습인데 만드는 것은 응용에 가까워서 재밌는 것 같다. 더구나 혼자 했으면 막막했을텐데 질문을 드리면 답변해주시는 사수멘토님이 있고 더구나 이전 기수의 리포지토리가 극강의 레퍼런스가 되어 주니 난이도가 낮아져서 부담이 없는 듯하다.

Heroku 서버 세팅

내가 맡은 부분은 Heroku를 이용한 서버와 DB 세팅과 github action을 이용한 CI 세팅이었다. AWS만 쓰다가 Heroku를 처음 써봤다. 공짜인데다 이렇게 편한 줄 몰랐다. Heroku 앱을 만들면 서버가 자동으로 생성된다. 앱 내에서 원하는 DB 종류를 선택해 설치하면 끝이다.

서버에서 애플리케이션이 제대로 작동하는지 테스트를 해야 했다. 마침 CI 세팅을 하면 자동 배포가 되니 개꿀일 줄 았았다.

CI 세팅 중 JDK 빌드 오류

CI 세팅도 가이드를 따라했다. 그런데 프로젝트 git에서 푸시를 하면서 테스트를 하면 흔적이 남을 것 같아서 로컬에 아예 다른 프로젝트를 생성하고 위 과정을 다시 한 번 반복했다. 그런데 빌드에 계속 실패했다. 나중에 알고 보니 JDK 8 이외의 버전은 system.properiesjava.runtime.version=17을 명시해줘야 빌드가 됐다.

빌드 오류가 나서 Heroku 로그를 찍어봤는데 JDK 빌드 오류라고 나왔다. 그런데도 엉뚱하게 다른 빌드 스크립트를 잘못 썼다고 오판해서 시간을 날려 먹었다. 나중에 해결하고 보니 공식문서에서 위 내용을 봤던 것이 생각났다. 핑계지만 저녁이 될수록 에너지가 떨어져 메시지를 대충 보는 경향이 짙어지는 것 같다. 주의하자.

CI 스크립트를 처음 적용해봐서 그런가 신기했다. 깃 푸시가 되면 디스코드 자동알림도 적용해봤는데 매우 간단했다.

Jasypt 적용

프로젝트 동료분이 Password 암호화를 위해 Jasypt를 적용하셨다. 나는 CI 적용을 위해 로컬에 프로젝트 코드를 따라 구현했고 자연히 Jasypt를 써보게 됐다. 그런데 시크릿 키를 파일에 보관된 형태로 구현돼 있었다. 이를 서버에 올릴 때 어떻게 해야 할 지 애매했다. 알고 보니 Heroku에 환경변수를 넣는 기능이 있었다. 여기까지만 하고 CI 세팅은 프로젝트 동료분이 맡기로 했다.

OAuth 테스트

다음 세션에서 로그인을 다룰 예정이라고 멘토님이 언급하셨다. 나는 해본 적이 없어서 세션 내용이 머리에 안 들어올 것 같아서 로컬에서 테스트를 해보기로 결정했다.

배운 점

  • 당연한 이야기지만 공식문서를 먼저 보고 그 다음에 구글링을 하는 게 더 확실한 지름길이다.
  • 당연한 이야기지만 에러 메시지를 볼 때 급한 마음을 먹지 말자.

0개의 댓글