• git에서 트래킹 중인 파일을 로컬에서만 무시하기

    git이 트래킹하고 있는 파일을 내 로컬에서만 잠시 변경사항을 무시하고 싶다면 어떻게야 할까요? 이런 케이스는 생각보다 많이 있을 수 있습니다. git 리포지토리에 등록된 파일 중에는 소스 파일이 대부분이겠지만 로컬 환경마다 다를 수 있는 설정 파일도 존재하기 때문입니다. 로컬에서 테스트해보기 위해 설정 파일을 건들어야 하는 경우 스테이징 할 때 그 파일만 빼면...


  • 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...