시험장 앞에 두 줄로 서있는게 왜이렇게 귀엽냐면서

 

오늘 지난 1주일 동안 과제를 하면서 배웠던 내용을 토대로 주특기 시험을 봤다. 

시험 난이도는 이번주 과제를 마쳤더라면 누구나 할 수 있을정도로 쉬웠지만, 하면서 예기치않은 오류를 봐서 당황 ㅎㅎ

이번 글 마지막에 처음 봤던 오류 메시지 + 시도했던 방법들도 같이 정리해보려 한다.

+ 같이 오류를 해결해주신 모든 분들 ( 은솔님, 소영님, 미경님, 윤재님,  ...) 감사합니다 !!!

+ 그리고 코드 전체 주석을 달고 하나씩 풀어보면서 해결해 보라고 팁을 주신 지성님도 감사합니다 !!! 


시험 과제

 

 

 

 

작성한 코드

제출해야하는 과제는 조회기능인 GET이지만, 테스트를 위해 POST부분 까지 같이 작성했다.

 

1. Controller 

 

2. DTO

 

RequestDto

ResponseDto

 

 

3. Service

 

POST

GET

 

 

4. Entity

 

5. Repository

 

h2 - console

구현해야 하는 대로 잘 작성이 되는 것을 볼 수 있다.

 

 

 

 


 

트러블 슈팅 1 - 인텔리제이 run 실행 버튼이 활성화 되지 않았던 문제

 

1. 발생한 문제 ( 아래는 콘솔창에 떴던 에러 메세지이다.)

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'memberController' defined in file [/Users/chaleejin/Desktop/hanghaetest/out/production/classes/com/sparta/hanghaetest/controller/MemberController.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'memberService' defined in file [/Users/chaleejin/Desktop/hanghaetest/out/production/classes/com/sparta/hanghaetest/service/MemberService.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'memberRepository' defined in com.sparta.hanghaetest.repository.MemberRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Invocation of init method failed; nested exception is org.springframework.data.repository.query.QueryCreationException: Could not create query for public abstract java.util.List com.sparta.hanghaetest.repository.MemberRepository.findAllByOrderByModifiedAtDesc(); Reason: Failed to create query for method public abstract java.util.List com.sparta.hanghaetest.repository.MemberRepository.findAllByOrderByModifiedAtDesc()! No property 'modifiedAt' found for type 'Member'; nested exception is java.lang.IllegalArgumentException: Failed to create query for method public abstract java.util.List com.sparta.hanghaetest.repository.MemberRepository.findAllByOrderByModifiedAtDesc()! No property 'modifiedAt' found for type 'Member'

 

너무 길어서 앞부분만 보고 자세히 보지 않았는데, 꼼꼼히 봤더라면 해결되었을 문제였다.

아래는 위의 에러 내용이다. 빨간색 부분으로 에러가 발생했던 주요 이유를 표시해보았다.

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'memberController' defined in file [/Users/chaleejin/Desktop/hanghaetest/out/production/classes/com/sparta/hanghaetest/controller/MemberController.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'memberService' defined in file [/Users/chaleejin/Desktop/hanghaetest/out/production/classes/com/sparta/hanghaetest/service/MemberService.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'memberRepository' defined in com.sparta.hanghaetest.repository.MemberRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Invocation of init method failed; nested exception is org.springframework.data.repository.query.QueryCreationException: Could not create query for public abstract java.util.List com.sparta.hanghaetest.repository.MemberRepository.findAllByOrderByModifiedAtDesc(); Reason: Failed to create query for method public abstract java.util.List com.sparta.hanghaetest.repository.MemberRepository.findAllByOrderByModifiedAtDesc()! No property 'modifiedAt' found for type 'Member'; nested exception is java.lang.IllegalArgumentException: Failed to create query for method public abstract java.util.List com.sparta.hanghaetest.repository.MemberRepository.findAllByOrderByModifiedAtDesc()! No property 'modifiedAt' found for type 'Member'

 

2. 시도한 방법

 

2-1. Preferences - Build - Build and run using 설정 Gradle 에서 IntelliJ IDEA로 바꿔주기

 

2-2. 해당 파일이 들어있는 디렉토리(파일)에서 물리적으로 out폴더를 삭제하고, 인텔리제이에서 Build - Rebuild 해주기

 

2-3. 인텔리제이 파일 - Invaildate Cashes - 모든 사항 체크 후 - 캐쉬삭제 해주기

 

 

2-4 인텔리제이에서 파일을 열 때, build.gradle 파일로 열어주기.

 

2-5 Application 파일을 다른 디렉토리로 이동했다가 다시 원위치 시켜보기

 

위 방법 모두 통하지 않았다. 왜냐, 근본 적인 문제가 아니었기 때문 ^^ 

나는 단지 실행버튼이 활성화 되지 않는 것에만 집중해서 구글링을 했고, 다른 분들도 그 부분으로 도와주셨는데, 에러 메세지의 맨 끝 부분에서 확인할 수 있듯이 사실은 상속에 관한 문제였다.

 

 

3. 해결한 방법

알고보니 Entity Member 클래스에서 Timestamped 클래스 상속을 해주지 않아서 발생했던 문제였다......

바부 ...... ㅎㅎㅎㅎ 도움을 주신 모든 분들에게 다시 한번 감사의 말씀을 전합니다 ㅎㅎㅎ !! 

 

트러블 슈팅 2 - Web server failed to start. Port 8080 was already in use.!

 

1. 발생한 문제 

 

2. 해결 방법 (구글링 짱 !)

 

  • 인텔리제이 콘솔창에 아래 코드 입력 후 엔터
lsof -n -i -P | grep 8080

  • 그럼 현재 켜져있는 포트의 pid 넘버가 나온다 

  • 다음 코드를 입력해서 포트 프로세스를 종료시켜 준다.
kill -9 1111(이건 임의의 번호입니다)

 

참고 : https://deeplify.dev/back-end/spring/port-is-already-in-use

 

[스프링/Spring] Port 8080 is already in use 에러 해결 방법

스프링에서 가끔 발생하는 8080 포트는 이미 사용중이라는 에러에 대해서 알아보고 해결하는 방법까지 알아보도록 하겠습니다.

deeplify.dev

 

+ Recent posts