부하 테스트때 시나리오를 만들다 보니 아무래도 Save시에는 최소한의 정보를 내려주는게 좋다는 생각이 들었습니다. Save 후에 정보를 조회해 오려면 최소한 ID값을 내려줘야 한다고 생각하였고 K6 테스트때도 이 정보가 있어야 시나리오를 이어갈 수 있었습니다. 이에 Help 저장시 ID를 내려주도록 변경하였고 다른 save및 update도 이 방식으로 변경 예정입니다.
(관련 커밋 : 1aead6bb57087a34f7eaa9891a71e883de90d1b9)
(관련 파일 : CheckInWriteService - 파일링크)
B. 변경 2 : Multipart 전송시 JSON 파일로 받기에서 파라미터로 필요 값만 받기로 변경
이전 커밋에 있었던 인증사진 저장(/help/progress/photo) 저장시 유닛 테스트에서는 JSON을 Byte 파일로 보내 @RequestPart로 자동 Object Mapping해 하나의 Form Object로 받았지만, 프론트에서 JSON을 Blob같은 Byte파일로 전달하는 것이 일반적이지 않다고 생각되어 ProgressId라는 파라미터를 @RequestParam 으로 받는것으로 변경하였습니다.
현재 Progress는 repository와 ID를 가지지 않도록 변경 중이라 URI 및 파라미터는 변경될 수 있습니다.
(관련 커밋 : 1c4f3132a5bb944fd30ed544eda4e9b85ccab7a8)
(관련 파일 : ProgressBusinessWriteController - 파일링크)
C. 변경 3: Place Autoincrement 제거, Kakao API에서 받은 값으로 수동 입력으로 변경
Place의 경우 KakaoAPI에서 받은 외부 ID로 저장할것이라 DB에서 Autoincrement 되던 ID값의 Autoincrement 기능 제거 후 식별자로만 사용하도록 변경하였습니다.
원래 계획은 Kakao API에서 받은 가게 정보와과 가게 사장님이 직접 저희 DB에 저장한것 두가지 정보를 취합하여 Redis로 저장 후에 일정시간동안은 캐싱을 해주려고 했습니다.
(Kakao API -> 좌표로 주변 가게 검색때 바로 Redis저장 / 사장님 -> DB 등록 -> 좌표로 검색때 DB검색해 Kakao API 정보와 함께 Redis 저장 / 이후 Redis GEO로 좌표에서 가게 검색.)
아직 합치는 로직은 만들어지지 않았지만 Help등록과 이걸 수락하는 과정에 KakaoAPI는 꼭 필요하지는 않을 듯하여 부하테스트에서는 빼고 ID만 Kakao API와 겹치지 않도록 수동으로 넣도록 변경하였습니다.
(관련 커밋: 3fd811bf3f4eed949a1c23dcee1a8ca74614170e)
(관련 파일: Place - 파일링크)
Q2: 이거는 저번 PR관련이긴 한데 잊고 질문을 못 드렸습니다. 협업이나 과제 제출을 한다면 docker compose파일로 빌드할 때 설정을 추가해서 java파일도 새로 빌드하도록 사용하는게 일반적인가요? 아니면 자바는 미리 빌드는 마친 후 프로젝트를 전달드리나요? (현재 각 도커파일들은 빌드되어있는 자바파일을 COPY하도록 되어있어 도커 이미지를 만들어서 빌드 파일이 없으면 docker compose 되지 않습니다. 개인 프로젝트때 자바 빌드까지 추가하면 docker compose up때 시간이 꽤 걸린 경험이 있어서 같아 질문 드립니다.)
변경사항
A. 변경 1 : save때 void 대신 id 리턴
B. 변경 2 : Multipart 전송시 JSON 파일로 받기에서 파라미터로 필요 값만 받기로 변경
C. 변경 3: Place Autoincrement 제거, Kakao API에서 받은 값으로 수동 입력으로 변경
질문
Q1 : 이번 커밋때 첫번째 커밋(커밋1: https://github.com/f-lab-edu/check-in-before-leaving/commit/1aead6bb57087a34f7eaa9891a71e883de90d1b9) 과 관련된 부분을 같이 커밋하지 않아서 두번째 커밋(커밋2: https://github.com/f-lab-edu/check-in-before-leaving/commit/3fd811bf3f4eed949a1c23dcee1a8ca74614170e) 이후에 세번째 커밋(이후 추가 커밋: 66134b22d9dfdb837c00bedf8c8c6f78331a6e41)에 추가하였습니다. 이 경우 현업에서는 PR을 취소하고 새로 커밋해서 PR을 다시 하는게 더 나을까요?
Q2: 이거는 저번 PR관련이긴 한데 잊고 질문을 못 드렸습니다. 협업이나 과제 제출을 한다면 docker compose파일로 빌드할 때 설정을 추가해서 java파일도 새로 빌드하도록 사용하는게 일반적인가요? 아니면 자바는 미리 빌드는 마친 후 프로젝트를 전달드리나요? (현재 각 도커파일들은 빌드되어있는 자바파일을 COPY하도록 되어있어 도커 이미지를 만들어서 빌드 파일이 없으면 docker compose 되지 않습니다. 개인 프로젝트때 자바 빌드까지 추가하면 docker compose up때 시간이 꽤 걸린 경험이 있어서 같아 질문 드립니다.)