본문 바로가기

Debugging&Solution35

Intellij 에서 테스트 목록이 안보인다면 요즘에 테스트 코드를 짜는 것은 매우 매우 중요한 일이다. 항상 맥북만 쓰다가, 윈도우 환경에서 Intellij를 새롭게 설치할 일이 있어 설치하고 간단한 스프링 프로젝트를 짜는데, 단위 테스트 코드를 짜고 수행해보니, 아래의 사진처럼 어떤 테스트를 했는지 보이지 않는 문제가 있었다. 문제 해결은 간단하다. 윈도우 기준으로 File (맥 환경에서는 Preferences..) > Build, Execution, Deployment > Build Tools > Gradle 로 가면 Run tests using 이 Gradle 로 되어 있는 것을 확인할 수 있다. 이걸 Intellij IDEA 로 바꿔주자. 그러고 다시 테스트를 수행해보면 , 아래 그림처럼 수행한 테스트 목록이 출력이 된다. 끝. 2023. 5. 21.
io.jsonwebtoken.lang.UnknownClassException 서비스의 회원 로그인 기능을 개발하면서 jwt 를 이용한 토큰발행하는 부분을 구현하다가 아래의 런타임 에러를 받았다. 이 문제는 별도로 의존성을 두가지 추가해주면 해결된다. implementation("io.jsonwebtoken:jjwt-api:0.11.5") // 기존 runtimeOnly("io.jsonwebtoken:jjwt-impl:0.11.5") // 추가 runtimeOnly("io.jsonwebtoken:jjwt-jackson:0.11.5") // 추가 2023. 2. 22.
스프링 빈 순환 참조 (The dependencies of some of the beans in the application context form a cycle) 해결법 어딘가 면접을 가보면 간혹 듣는 질문이 있다. 왜 생성자 주입을하는가? 그 이유중 하나가 빈의 순환 참조를 방지하기 위함인데, 스프링 빈 순환 참조는 어플리케이션 컨텍스트에서 일부 빈의 종속성이 순환주기를 만들어서 생기는 문제이다. 즉, 둘 이상의 빈이 생성자를 통해 서로 주입할 때 발생한다. 일반적으로 스프링은 어플리케이션 컨텍스트의 시작 되즌 과정에서 모든 싱긅톤 빈을 즉시 생성하는데, 이렇게 하는 이유가 컴파일단계에서 에러를 잡기 위해서이다. 지금 내가 알려드리는 방법은 이렇게 생성되는 빈을 프록시 객체로 생성하고 추후에 지연로딩으로 생성되도록하는 임시방편의 방법이다. @Lazy 어노테이션을 통해서 지연로딩을 시켜주면 어플리케이션이 실행될때 즉시 객체가 초기화되는 것이아니라 프록시 객체를 주입해 사.. 2023. 2. 22.
JdbcSQLNonTransientConnectionException: Exception opening port "xxxx" (port may be in use), cause: "java.net.BindException: Address already in use" [90061-214] 해결 웹 어플리케이션을 로컬에서 개발하다보면 같은 포트를 실수로 사용하게 되는 경우가 있다. 같은 포트를 동시에 사용하면 위와 같은 에러 메시지를 볼 때가 있으실 것이다. 이 문제를 해결하는 방법은 간단하다. 이미 쓰고 있는 프로세스를 죽여버리면된다. ( 라이브환경에서는 쓰고 있는 프로세스를 과감하게 지우는 일은 아주 크레이지한 일이니 주의하자..) 다양한 방법이 있겠지만 아래 방법을 리눅스 콘솔 환경에서 쳐주면 된다. 일단 어떤프로세스가 해당 포트를 점유하고 있는지를 보자. lsof -i:[port] PID 가 7370 인 프로세스가 떠있는걸 볼 수 있다. 이제 죽이자. kill -9 [PID] 이렇게 해주면 깔끔하게 프로세스가 죽는다. (다시 한번 말하지만... 라이브 환경에서 이 명령어를 함부로 수행하면.. 2023. 2. 20.
HTTP Error 500.31 - Failed to load ASP.NET Core runtime 요즘 c# .NET 코어를 이용하여 api를 만드는 공부를 하고 있는데 아래와 같은 에러가 발생했다. 역시 모든 에러가 그렇듯 잘 읽어보면 답이 나온다. 프로젝트가 3.1 버전으로 만들어졌는데, 해당 버전이 설치가 안되어서 그런 것 이었다. https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/sdk-3.1.416-windows-x64-installer Download .NET Core 3.1 SDK (v3.1.416) - Windows x64 Installer dotnet.microsoft.com 위의 사이트로 접속하여, 내 환경에 맞는 SDK를 설치해 주고나서 다시 Run 해보면 오류가 깔끔하게 사라지는 것을 확인할 수 있다. 끝~! 2021. 12. 28.
IntelliJ 사용 하다 'Server's Certificate is not trusted' 메시지가 계속 난다면 IntelliJ를 새로운 사용하다 보면 (특히 회사같은 곳에서) 'Server's Certificate is not trusted' 메시지가 자주자주 나온다. 해당 메시지가 나오지 않게 하기 위해서는 아래 방법을 따르자.. File > Settings > Tools > Server Certificates 에서 Accept non-trusted certificates automatically 체크박스 체크 그럼 다음부터 해당 문구가 뜨지 않을 것이다. 끝..! 2021. 12. 14.
Dto 객체 생성할 때 UnexpectedTypeException 발생하면. .. 하이 .. 간단한 서버 프로젝트 중에 ... 이런 에러가 발생해서 .. 포스팅을 한다. 일단 내가만든 dto 객체는 아래와 같다. import lombok.Data; import javax.validation.constraints.NotEmpty; @Data public class CreateLibraryRequestDto { @NotEmpty(message = "name is required value") private String name; private String description; @NotEmpty(message = "startTime is required value") private String startTime; @NotEmpty(message = "endTime is required v.. 2021. 7. 15.
[Sprig Data JPA] Spring Data JPA의 repository에서 save 메서드 사용시 NullPointerException 이 날때 하이 spring Data jpa + querydsl을 사용해서 간단한 프로그래밍을 하고있는데, 테스트 코드에서 save 메서드를 날리면 계속 NullPointerException 이 발생하는 걸 확인했다. @SpringBootTest @Transactional class MemberRepositoryTest { MemberRepository memberRepository; @Test public void saveMemberTest() { Member member1 = new Member("kang","abcd1@naver.com", "1234", MemberType.STUDENT); memberRepository.save(member1); List member = memberRepository.find.. 2021. 7. 14.
Intellij에서 QueryDSL 사용 시, cannot find symbol Q 발생할때(Q 도메인을 못찾을때) Intellij에서 JPA QueryDSL 을 사용해 프로젝트를 진행중이다. 그런데... 이제 프로그램을 개발하고 실행을 해보려고 할때... src/main/generated 라는 폴덩 아래에 존재하는 Q domain들의 위치를 못찾는 현상이 발생했다.. 해결방법을 구글링해보니 genereated 폴더가 패스에 등록되어 있지 않아 발생한 문제라는 것을 확인했다. File > Project Structure > Modules에 들어가서 main 아래의 generated 폴더에 마우스 우측클릭을하고 Sources 를 체크해주면된다. 자 이렇게하고 build를 한뒤에 실행을 해보면...! 그래도 .. 난 똑같다 .. 흠 어떻게 해야할까..? 이것저것 다 적용해봐도 안되서 .. 그냥 경로가 환경변수에 의해 등록.. 2021. 5. 24.