분류 전체보기

    InteliJ 콘솔에서 한글이 출력되지 않을 때

    요약 해당 증상은 원인이 워낙 많을 것 같아서 지속적으로 해당 게시물을 업데이트하면서 관리할 예정이다. 해결 1. InteliJ Custom VM Options 설정하기 아래와 같이 Console Encoding 값을 UTF-8로 설정한다. 정상적으로 한글이 출력되는 모습이다. JDK 버전에 따라 안 되는 경우도 있다고 하는데, 적어도 JDK 11에서는 정상적으로 동작하는 것 같다.

    javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate) 오류

    요약 알파메일(alphamail.co.kr) 서비스 기능 중 네이버 메일을 IMAPS 프로토콜로 받아오는 연동 기능이 있다.로컬에서 메일이 정상적으로 받아와지는지 확인 중에 아래와 같은 오류가 발생했다. javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate) SSL 핸드쉐이크 과정에서 지원하지 않는 프로토콜을 사용했다는 오류이다. jdk 11 버전부터는 TLS 1.0 ~ 1.1를 더 이상 지원하지 않는 것으로 보여 강제로 TLS 1.2를 사용하도록 설정해서 해결했다. 해결 네이버 메일 서비스와 세션을 연결하기 위해서는 시스템의 속성(props) 객체..

    '참조된 계정이 현재 잠겨 있으므로 그 계정으로 로그온할 수 없습니다' RDP 로그인 오류

    요약 군대에서 공부하려고 집 PC에 80번 포트로 포트포워딩을 해서 RDP를 구성해 놨었다. 그런데, 80번 포트로 RDP를 열어놓다보니 외부에서 공격자가 포트 스캔을 때린 뒤 나의 RDP에 브루트포스 공격을 시도하고 있었다. 원래였으면 Well Known 포트 외에 다른 포트를 사용하는 방식으로 해결했겠지만, 사지방 특성상 어차피 Well Known 포트가 아니면 RDP를 사용할 수 없었기 때문에 다른 방법을 찾아서 해결했다. 완벽한 해결 방법은 아니지만, 급하게 조치라도 할 수 있으니 참고하면 도움이 될 것 같아 작성했다. 해결 우선, '참조된 계정이 현재 잠겨 있으므로 그 계정으로 로그온할 수 없습니다' 오류에 대해서 알아보자. 윈도우의 이벤트 뷰어를 열어보면 아래와 같이 무수히 많은 '감사 실패'..

    Spring에서 Singleton 패턴을 보장 받지 못하는 경우

    지금까지 학습했던 내용으로는 2가지 정도가 있다. 앞으로도 학습함에 따라 계속해서 추가해 나갈 예정이다. 1. static으로 선언된 Bean 등록 메서드 Spring Container에 등록된 Bean에 대한 인스턴스가 실제로 Singleton 패턴이 적용되어 있는지 확인해 보려고 테스트 코드를 작성하였다. 근데, 이상하게도 객체 참조 값이 모두 달라 검증이 되지 않았다. 알고보니 테스트하고 있던 AppConfig에서 해당 Bean을 등록할 때 static으로 선언해서 발생한 문제였다. ... @Configuration public class AppConfig { ... @Bean public static MemberRepository memberRepository() { System.out.print..

    Spring에서 Static 선언으로 인해 Singleton 패턴을 보장 받지 못하는 경우

    요약 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 오류

    요약 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..