TIL ... 3주차 day 13 - Spring 4일차... 22.05.24

BYEONGMIN CHOI·2022년 5월 24일
0

TIL(Today I Learned)

목록 보기
9/24

어제 개념적으로 흔들렸던 부분과 과제를 배포하며 발생했던 이슈에 대해 이야기 해볼려한다.

첫번째로 어제 가장 헷갈렸던 부분이 아래의 그림으로 모든게 설명된다.

  1. 처음 고민하던 것은 Client가 PUT, DELET 요청시 id값과 password를 어떻게 서버로 전달하는가였다.
    \rightarrow ajax의 id와 data를 전달하여 controller가 @Pathvariable 과 @RequestBody 전달받아 해결하였다.
  1. 전달 받은 password를 어떻게 DB에 있는 password와 비교할 수 있을까?
    \rightarrow 전달 받은 값은 서버내부에서 사용하던 DTO와 다른 객체를 생성하여 데이터를 넣었으며, DB에 있는 데이터는 전달받은 id값을 이용해 해당 데이터를 찾아 password 값을 가지고 client의 입력에 의한 password와 비교하였다.
  1. PUT, DELETE는 어디서 처리해야하는가?
    \rightarrow Service 부분에서 처리해야한다고 생각하였다. DB의 데이터와 client의 데이터를 비교하고 그에 따라 DB가 달라지기 때문에 Service에서 처리하여 그 여부를 Controller에 전달하고 값의 변화를 DTO에 담아 Repository에 전달하였다.

AWS 배포중 발생한 이슈

AWS EC2에 배포한 SpringBoot Application과 RDS를 연결할 때 이슈가 발생 (Communications link failure)

배포전 로컬에서 잘 실행되던 프로덕트가 빌드 후 배포를 하니까 아래와 같은 이슈가 발생하였다.

문제 인식 : 에러 로그 com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure aws \rightarrow Spring 과 DB사이의 연결 문제

구글링을 통해 원인을 찾아보니 같은 VPC를 사용중이기 때문에 privateIP를 허용해 RDS의 인바운드 규칙에 추가해 주어야한다는 것을 찾고 이슈를 해결하였다.

내 IPv4에서 동작하지만, 같은 VPC 사용시 사용할 수 없었던 이유를 찾아봐야할 것 같다. 네트워크는 너무 어려운것 같다...

profile
스스로 성장하는 개발자가 되겠습니다.

0개의 댓글