• Spring Boot Security Auto Configuration 끄기

    Spring Boot 웹 애플리케이션에 Security Starter를 추가하면 자동으로 웹 보안이 적용됩니다. 이는 모든 요청에 대한 인증 요청, 기본 사용자 및 패드워드 생성 등이 포함됩니다. 이런 자동설정 역할을 하는 클래스가 SecurityAutoConfiguration 클래스 입니다. 그래서 자동 설정을 끄고자 할 때는 @SpringBootApplication 애노테이션에 SecurityAutoConfiguration 를 읽어 들이지 않도록 설정만 하면 됩니다. 또는 properties 파일에...


  • IntelliJ에서 MS949 Encoding 문제 발생시

    윈도우에 설치한 IntelliJ에서 Build 할 때 한글로 된 코멘트 등으로 인해 오류가 발생하면 인코딩 설정을 적절히 변경하면 된다. 문제는 분명히 파일의 인코딩 타입은 utf-8 이고 IntelliJ의 File Encodings 옵션에 UTF-8로 설정했음에도 해결이 안되는 경우가 있다. 이럴때 VM 옵션에 인코딩 타입을 넣어서 시도해보자. VM 옵션 메뉴로 들어가서 Help -> Edit Custom...


  • 방문자 패턴 - Visitor pattern

    Visitor pattern, 방문자 패턴, 실제 로직을 가지고 있는 객체(Visitor)가 로직을 적용할 객체(Element)를 방문하면서 실행하는 패턴이다. 즉, 로직과 구조를 분리하는 패턴이라고 볼 수 있다. 로직과 구조가 분리되면 구조를 수정하지 않고도 새로운 동작을 기존 객체 구조에 추가할 수 있다. 이 포스트에서는 주어진 도메인 문제를 해결해가면서 나타나는 문제점을 이야기해보고 이것을 해결해 나가면서 방문자...


  • java Consumer 와 Function, Supplier interface

    Consumer 파라미터 한 개를 입력받고 반환 값이 없는 인터페이스이다. 다른 함수형 인터페이스와 다르게 사이드 이펙트를 이용해서 일을 처리하게 되어있는 것이 특징이다. 이런 형태, 즉 입력값을 받고 사이드 이펙트를 이용해서 일을 처리하는 인터페이스가 다수 있는데 BiConsumer, IntConsumer 등 입력 파라미터가 몇 개인지, 입력할 타입이 무엇인지에 따라서 추가로 정의되어 있다. 아래는 Cunsumer...


  • getBean의 NoSuchBeanDefinitionException 회피하기

    Spring context에서 Bean을 가져오기 위해 getBean 메소드를 주로 사용한다. getBean 메소드는 Bean 이름이나 Type 등을 받아서 해당하는 Bean이 있으면 인스턴스를 반환하고 없으면 NoSuchBeanDefinitionException 예외를 발생시킨다. 만약에 A라는 Bean이 있으면 이걸 사용하고, 없으면 B라는 Bean을 사용해야 할 때 어떻게 구현을 해야 할까? 라는 고민에서 이 포스트를 작성하게 되었다. 예외는 진짜 예외일...