여행 계획부터 함께하는, 여행 플래너 위브

위브 개인노트


MyRole.

앱 기획 후 이틀간의 해커톤에 참여하여 카카오 소셜로그인과 RDS 및 EC2를 구축하여 도메인을 연동하였습니다.

이후 파트별 회의와 전체 회의를 통해 기획을 구체화시키고, 프론트엔드 개발자 및 디자이너와의 소통을 통해 필요한 데이터를 RestAPI로 전달할 수 있게 구현했습니다.

swagger2설정 및 API 명세서 작성을 통해 프론트엔드 개발자들과 원활한 소통이 가능하도록 했습니다.

이후 구글, 네이버, 카카오 소셜로그인을 스프링에서 제공하는 시큐리티를 사용하여 로그인 후 JWT token을 발급하는 로직을 구현했습니다. 안드로이드 단에서는 플랫폼에서 제공하는 sdk 라이브러리를 사용하고 싶다는 요청이 있어 accessToken을 가지고 회원가입 및 로그인할 수 있는 로직을 구현했습니다.

ControllerAdvice를 이용하여 에러 메시지를 커스텀하고, jwt 또한 에러 메시지를 따로 핸들링할 수 있도록 구현했습니다. Security Filter를 거치는 Jwt 로직은 따로 에러메시지를 커스텀하여 jwt service에 접근할 때 Filter에서 에러를 캐치하여 보내줄 수 있도록 만들었습니다.

S3를 설정하여 이미지 서버를 구축하는데 IAM 키 탈취 문제가 발생했습니다.

이를 해결하기 위해 IAM 키의 보안 관련 공부중입니다.

원인을 찾아봤을때 IAM 키를 생성하기 전 Root 계정에 MFA 보안을 걸지 않아 생긴 문제로 생각됩니다.

프로젝트의 기간이 짧아 임시방편으로 GCP(Google Cloud Platform)의 cloud storage를 사용하여 이미지를 저장할 수 있도록 구현했습니다.

이후 이미지서버를 firebase storage로 옮겼는데, S3와 GCP, firebase storage를 비교했을때 무료로 사용할 때 모두 5GB의 공간을 지원하지만, 프리티어에서 기한 제한이 없고, 팀원을 초대하여 관리할 수 있기 때문에 사용하고 있습니다.

EC2를 Springboot 서버로 24시간 무중단 배포로 사용하면서 서버가 다운되는 현상이 발생하여 스왑 영역을 생성하여 해결했습니다.