팀원분께서 Github Action을 적용하는 과정에서 맞딱뜨린 에러다
contextLoads() FAILED 라는 에러가 난다
BackEndApplicationTests를 수정한 적이 없다
그래서 'contextLoads() FAILED' 키워드로 구글에 검색해봤더니
우리와 같은 상황인 글을 봤다
Github Action에서도 DB 연결에 대한 설정도 해줘야하는 것 같다
결국은 원인이 이거였다
우리 프로젝트에는 application.properties가 올라가있지 않다
이 파일에 MySQL 연결에 대한 정보가 담겨있는데
Github Action이 Build할 때 DB 연결 정보가 없어서 에러가 났던 것이다
이것에 대해 더 알아보신다고 하셨다
프론트에서 레시피 수정 API에 대해 테스트해보았다
수정할 이미지가 없으면 key: image, value: 빈 값 으로 request 해달라고 말씀 드렸다
여기서 나는 '빈 값' 이라는 말이 애매했다
정확히 무엇을 말하는 것인지 알 수 없는 말인것 같다
"" 이거인지, null 인지 모르겠더라..
프론트에서 레시피 수정 API를 테스트하는데 image 키의 value를 "" 로 하든, null로 하든, undefined로 하든 무조건 String으로 requst 하는 것이었다
String을 MultipartFile 배열로 변환할 수 없다는 에러 메시지가 뜨기 때문인다
Failed to convert value of type 'java.lang.String' to required type 'org.springframework.web.multipart.MultipartFile[]'
결국 프론트에서 key 자체를 보내지 않아야 백엔드는 null로 요청값을 받아낼 수 있었다
여기서 의문점이 들었다
'그럼 내 로직은 왜 문제 없이 돌아갔던거지??'
레시피쪽과 게시판은 결국 게시판이기 때문에
레시피 로직과 게시판 로직의 전체적인 흐름은 같다
그런데, 내가 짠 수정 로직은 문제 없이 되고, 팀원분이 짜신 수정 로직은 문제가 생겼기 때문에
위와 같은 의문이 들었다
프론트 코드를 분석해보니,
const recipeFormData1 = new FormData();
recipeFormData1.append("title", post.title);
recipeFormData1.append("content", post.content);
recipeFormData1.append("price", post.price);
recipeFormData1.append("tag", post.tags);
if (post.fileList) {
for (const f of post.fileList) {
recipeFormData1.append("image", f);
}
사진이 여러 장이라서 for문을 사용하셨다
프론트에서 이미지를 첨부 안 하면 fileList에는 아무것도 들어있지 않은 배열이 되기 때문에 for문을 돌지 않으므로
request할 때 image라는 key 자체를 request하지 않았던 것으로 보인다
여기서 또 의문점이 드는 것이 있었다
if(imageList != null && imageList.length > 0) { //새로 첨부한 이미지가 존재할 때
...
"이 if문에서 왜 안 걸렸던걸까?" 라는 의문이 들었다
imageList가 null이면 imageList의 length를 구하지 못하기 때문에 에러가 나거나 위 로직을 안 탈줄 알았다
디버그를 찍어봤다
imageList != null 을 앞쪽에 써놨기 때문에 이 부분이 false이므로 조건문의 imageList.length > 0 이 되든 안 되든 무조건 false로 나온다
이렇기 때문에 imageList != null 에서 false로 판명 되자마자 if문의 로직을 타는 것으로 보인다
어제 nGrinder를 위해 만든 AWS에 ngrinder controller를 설치하려고 했다
생활코딩의 controller 설치 방법 영상을 봐도 되지만
그 영상은 9년전 영상이라 버전이 너무 오래된 거일것 같아서
나름 최근 정보를 따라하려고 했다
https://dejavuqa.tistory.com/11
이 글 순서대로 했는데 controller 화면으로 이동이 안되더라
계속 404가 뜬다
어쩌다보니 영상 댓글을 봤는데 나와 같은 사람이 꽤 있었나보다
이 글을 보고 우분투 버전과 자바 버전, 톰캣 버전을 꼭 맞춰야할것 같다는 생각을 했다
나는 버전 신경 안 쓰고 우분투 OS에 java와 tomcat을 깔고 controller 파일을 내려받고 실행했다
그러니까 404가 뜨지
역시나였다..
위에 첨부한 링크 그대로 따라하면 nGrinder 화면을 볼 수 있다
java 8은 아래 명령어를 입력했다
sudo apt-get install openjdk-8-jdk
우분투 OS 16.04 / java jdk 8 / tomcat 8 을 꼭 맞춰줘야 한다
꼭이다.....
vim 명령어
https://gracefulprograming.tistory.com/38
'항해99 3기' 카테고리의 다른 글
[TIL] 2021.11.18 최종 프로젝트 진행중 - nGrinder->JMeter 변경 (0) | 2021.11.18 |
---|---|
[TIL] 2021.11.17 최종 프로젝트 진행중 - nGrinder 뻘짓 (0) | 2021.11.17 |
[TIL] 2021.11.15 최종 프로젝트 진행중 - 게시물 수정 로직 변경 / nGrinder 준비 (0) | 2021.11.15 |
[TIL] 2021.11.13 최종 프로젝트 진행중 - 피드백 받기 (2) | 2021.11.13 |
[TIL] 2021.11.11 최종 프로젝트 진행중 - 브랜치 다루는 방법 (0) | 2021.11.13 |