백엔드 내부논의

2024.10.26 이전 (백엔드 내부 논의)

  1. client가 자식테이블의 데이터를 삽입할때, 부모테이블의 데이터 존재여부를 검증시 DB의 join where문을 사용할 것인가 혹은 DB에 두번 접근하더라도 Java 서비스 로직에 녹여낼것인가

→ 코드 가독성을 위해서 비즈니스로직이 명확하게 드러나도록 구현에 우선 집중하도록 협의

  1. 여행자모집 게시판과 리뷰 게시판을 별도 모듈로 분리할 것인가 혹은 합칠 것인가

→ DB의 스케일아웃이 어렵기때문에 미리 분할하는게 좋을 수도 있지만 개발복잡도를 고려하여 합치기로 함

  1. 인덱스의 설정의 비용과 효과

→ index가 걸려있으면 CUD 시에 시간 지연 문제 발생

→ insert cancel 후 인덱스 삭제전에 select시 시간지연 발생 (시간 지연이 너무심해 cancel 함 / 인덱스에 문제가 생긴것으로 추정 / 인덱스 삭제후 정상조회됨)

→ index 용량 문제 (root 패스워드를 잊어 확인은 못하였으나 10% 정도 증가한다고함 / 데이터 용량 3.3 G ) 확실히 index사용에도 장단점이 존재하는 것같아요

2024.10.26 (백엔드 내부 논의)

  1. Resful API URL 설계원칙와 MSA에 대한 논의

→ URL은 자원의 위치를 표시하는 것으로 데이터 간의 계층구조를 반영한다. 때문에 ERD에서 데이터 테이블 간의 종속관계를 반영하여 url을 작성한다.

→ Restful API 내에서 queryParam와 Pathvariable의 차이는 Pathvariable을 한가지 자원을 식별하기 위해서 사용되고 queryParam은 collection 중에 filtering과 search를 위해서 사용된다.

→ 단, msa구조에서는 서로 다른 모듈의 데이터 테이블 간에 관계를 갖기 않기 때문에 독립적으로 표현한다.

  1. 다중 계층을 갖는 게시글의 API를 어떻게 처리할 것인지 에 대한 논의

→ 1안) 3가지 종류의 게시글을 모두 작성 및 수정하는 API를 작성한다.

→ 2안) 3자기 종류의 게시글을 각각의 API로 분리하고 이를 한번의 버튼클릭이라는 event 안에 transaction처리를 한다. 이는 프로엔트엔드와 백엔드 통신시에 모든 api호출이 도착했는지 확인하는 방법을 도입필요. (난이도가 있을 것으로 예상)