Spring에서 Static 선언으로 인해 Singleton 패턴을 보장 받지 못하는 경우
·
Dev/Trouble Shooting
요약 Spring Container에 등록된 Bean에 대한 인스턴스가 실제로 Singleton 패턴이 적용되어 있는지 확인해 보려고 테스트 코드를 작성하였다. 근데, 이상하게도 객체 참조 값이 모두 달라 검증이 되지 않았다. 알고보니 테스트하고 있던 AppConfig에서 해당 Bean을 등록할 때 static으로 선언해서 발생한 문제였다. 해결 해결 방법은 Bean 등록 메서드를 static 하게 선언하지 않으면 된다. 근데 왜 static 하게 Bean 등록 메서드를 사용하면 객체가 Singleton 패턴을 보장받지 못하는걸까? 이유는 다음과 같다. Spring은 내부적으로 @Bean이 붙은 메서드를 호출하면 Singleton Container에 동일한 Bean이 존재하는지 Proxy를 통해 확인한다..
ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH 오류
·
Dev/Trouble Shooting
요약 inteliJ가 아니라 로컬에서 스프링 부트 애플리케이션을 빌드한 후 웹 서버를 띄워보는 작업중 발생한 오류이다. 로컬에 jdk가 설치되어 있지 않고 환경 변수가 적절히 설정되어 있지 않은 것이 원인일 것 같아서 설정을 했더니 해결됐다. 해결 1. 자신에게 맞는 jdk 버전을 찾아준다. 나는 InteliJ에서 jdk 17를 기준으로 작업해서 아래에서 다운로드 받았다. https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html Java Archive Downloads - Java SE 17 WARNING: These older versions of the JDK are provided to help developers de..
InteliJ "Cannot connect to already running IDE instance" Exception: Process <process_id> is still running" 오류
·
Dev/Trouble Shooting
요약 한동안 접속 안 하던 공부용 윈도우 VM에 원격으로 접속했더니 실행해 놓았던 윈도우 자동 업데이트로 인해서 재부팅된 상태였다. 재부팅 과정에서 InteliJ 프로세스가 강제로 종료되어 문제가 발생한건지 InteliJ가 실행이 안 됐다. 해결 jetbrains 사의 이슈로 등록되어 있는 오류여서 쉽게 해결할 수 있었다. https://youtrack.jetbrains.com/issue/IDEA-330531?_gl=1*oesep3*_ga*MTIwNzg3ODA1OS4xNjk1OTc4MTg2*_ga_9J976DJZ68*MTcwODQ5NDQ4MC40LjAuMTcwODQ5NDQ4MC4wLjAuMA..&_ga=2.136849584.1260827096.1708494481-1207878059.1695978186