본문 바로가기

에러 해결4

HttpMediaTypeNotAcceptableException - No acceptable representation 에러가 발생한 상황을 해결하기 위한 생각의 흐름을 정리한 글입니다. 에러가 발생한 상황은 다음과 같습니다. UserController에서 회원가입 기능을 하고, 로컬 테스트를 하기 위해서 postman을 사용해서 테스트를 하고, 결과를 받은 response가 다음과 같다. 응답 결과로 406 Not Acceptable 오류가 발생했다. 시스템 로그를 확인해보자. 로그의 쿼리문을 먼저 확인해보겠습니다. Postman 요청을 보낸 후, 다음과 같은 쿼리가 나간다. 현재 내가 짠 로직에 맞게 쿼리가 알맞게 나갔는지부터 확인해보자. 쿼리를 각각 분리해보면 select 쿼리와 insert 쿼리로 나뉘어져 있다. 쿼리를 날리는 로직은 대개 UserServcie 클래스에 작성을 해두었다. 쿼리가 사용되는 로직은 다음.. 2024. 9. 28.
AWS(EC2) Docker 실행시 발생하는 exec format error 😤 에러 상황 맥북에서 Docker image를 빌드 한후, Docker Hub에 Push 해준뒤, AWS EC2에서 배포를 위해 Docker Hub에서 Push 해준 이미지를 Pull 받은 후, image를 실행하기 위해 docker run 명령어를 사용하자 발생하는 에러입니다. 에러를 분석해보면, exec format error라고 나와 있다.exec format error이 도대체 무엇일까요..? ❓ 문제 원인문제의 원인은 맥북에서 도커 이미지 빌드시 플랫폼의 기본 옵션이 linux/arm64가 생성이 된다.AWS EC2는 linux/arm64가 아닌, linux/amd64를 사용하므로 이미지를 실행하려고 할때 플랫폼 충돌이 발생한 것이다.  🔨 문제 원인을 뒷바침 해주는 증거주장1. 맥북(M1.. 2024. 8. 28.
TransferService 테스트시 NotEnoughException이 터지지 않는 문제 📌 Payment를 구현하는 프로젝트에서 생긴 문제Test코드는 다음과 같다.@Test@DisplayName("A계좌에 돈이 충분하지 않아 A계좌에서 B계좌로 이체를 실패한다")void A계좌에_돈이_충분하지_않아_A계좌에서_B계좌로_이체를_실패한다() throws Exception { //given final String withdrawalAccountNumber = "0123456789"; final String depositAccountNumber = "123456789"; final BigDecimal transferAmount = BigDecimal.valueOf(10000); final String accountNumber = "1234"; final Tran.. 2024. 7. 17.
💥 org.mockito.exceptions.misusing.PotentialStubbingProblem: Strict stubbing argument mismatch. ServiceTest코드를 작성한 후, 테스트를 수행하는 도중에 다음과 같은 에러가 발생했다. 코드의 오류 메시지는 다음과 같다.Strict stubbing argument mismatch. Please check:- this invocation of 'save' method : transferHistoryRepository.save(...); 💻 메시지의 뜻은 아규먼트가 일치하지 않는다는 것이다. 목킹할 때 save에 넘겨준 아규먼트와 실제로 save를 호출하면서 넘겨준 transferHistory이 일치하지 않으면서 발생하는 에러이다. 주소값을 보면, TransferHistory@2babf189과 TransferHistory@69e05f61 일치하지 않는 것을 볼 수 있다. Q. 왜 일치하지 않을까.. 2024. 7. 17.