개발 공부/트러블슈팅 6

AWS EC2 상태검사가 1/2만 검사 통과 상태 일때

👾 문제식별개인프로젝트를 AWS를 이용해 배포해보았다.과금을 피하기 위해 t2.micro 인스턴스를 할당 받고, docker와 jdk를 설치하였다.원격저장소에서 소스를 가져오기 위해 git도 설치하고, docker로 db 실행 => 파일 빌드 => jar 실행의 순서를 거쳐 배포를 진행하였다.생각보다 수월하게 진행되었다. 잘 띄워진건지 log파일을 살펴보려 접근 시도를 하였는데, 갑자기 터미널에 아무 반응도 없다...아무것도 써지지 않아서 ssh환경을 나갈 수도 없었다.서버가 죽었나 싶어서 ec2 인스턴스 정보를 보니 인스턴스의 상태는 '실행중' 이었으나, 2개의 상태검사 중 인스턴스 상태 검사가 실패한 상황이었다.  🔍 원인분석원인은 너무 적은 t2.micro의 메모리 때문이다.RAM 1기가가 제공..

@OneToMany 관계 정의 후, getter 호출 시 NullPointerException이 발생하는 원인과 문제 해결

👾 문제식별회원가입을 시도하면 기본으로 'USER' 권한을 부여받은채 가입될 수 있도록 로직을 수정하고, 기존에 작성해 두었던 테스트 코드를 실행해보았다. 예상치못했던 java.lang.NullPointerException이 발생하면서 테스트코드가 실패한다..! 🔍 원인분석로그에 표시된 에러가 발생한 지점을 찾아가보았다. MemberService.java:33 Member.java:71 Cannot invoke "java.util.List.add(Object)" because the return value of "maumnote.mano.domain.Member.getMemberRoles()" is null 로그에는 getMemberRoles()가 null을 반환했기 때문에 add(Object)를 호..

H2 datasource 정보 입력이후, NullPointerException이 발생하는 원인과 해결방법

👾 문제식별요즘 김영한 선생님의 JPA 강의를 듣고 있다.강의를 보면서 환경설정부터 따라하고 있는데, h2 db접속 정보를 application 파일에 입력한 후, 어플리케이션을 실행시켰다.아래와 같은 에러가 발생하면서 로컬 서버가 켜지지 않는다. 🔍 원인분석* application.yaml  에러문구 중 몇 개를 살펴봤다. 1. NullPointerExceptionjava.lang.NullPointerException: Cannot invoke "org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(java.sql.SQLException, String)" because the return value of "org.hibernate.resource.tr..

[Spring Security] permit을 적용한 API를 테스트 했을때 401 에러가 발생하는 원인과 해결방법

👾 문제식별스프링시큐리티를 공부를 시작했다.처음으로 배운 특정 url만 접근 권한을 주고 나머지는 허용하지 않는 걸 어플리케이션에 적용해보았다.루트와  '/notebook' 만 접속이 가능하게 해놓았다. 테스트 겸 기존에 짜놓았던 테스트 코드를 실행해보았는데 오잉 401 오류가 뜨면서 테스트가 실패한다. postman으로 외부에서 다시 호출해보았더니 200으로 정상 작동한다. 작성한 테스트 코드의 문제일 가능성이 높아진다.🔍 원인분석가벼운 테스트 코드환경을 위해 @WebMvcTest으로 컨트롤러 테스트를 작성하고있는데@WebMvcTest는 스프링MVC와 관련된 정보만 bean으로 생성되고 나머지는 필요에 따라 주입해야한다고 알고있다.혹시 스프링시큐리티가 생성되지않아서 그런걸까..? 그렇게 생각하면 4..

@Valid 가 작동하지 않는 원인과 해결방법

👾 문제식별요청 객체에 빈 값이 들어오는 걸 방지하려고 요청 dto name필드에는 @NotBlank를 붙이고컨트롤러에는 @Valid 추가하였다.@Valid를 통한 유효성 검사에서 문제가 발생하면 MethodArgumentNotValidException이 호출되기에 @ExceptionHandler(MethodArgumentNotValidException.class)를 붙인 핸들러도 생성하였다. 위 캡쳐본과 같이 name에 빈 스트링객체를 넘겼을때 Exception이 발생해 오류를 뱉을거라는 예상과 달리저장이 너무 잘되어버린다...🔍 원인분석DTO클래스와 컨트롤러에 붙인 @NotBlank 과 @Valid가 제대로 동작하지 않는다고 볼 수 밖에 밖에 없었다.  🤔 해결방법시도GradleRequestDt..

@RequestBody로 객체를 받을 때 @Builder만 있으면 발생하는 400 에러 원인과 해결방법

👾 문제식별RequestDto 클래스 어노테이션 수정을 했다.데이터 수정의 위험이 있는 @setter 대신 @builder로 변경한 뒤, 컨트롤러 테스트를 해봤는데 원인 모를 400 에러 발생.{ "timestamp": "2024-08-24T09:56:57.523+00:00", "status": 400, "error": "Bad Request", "path": "/notebook"} 🔍 원인분석우선 HttpMessageNotReadableException 가 무슨 에러인지 알아보자.https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/http/converter/HttpMessageNotReadab..

728x90
반응형