전체 글

전체 글

    [Mybatis] Param 어노테이션 없이 여러 파라미터를 넣을 때 null 오류가 발생하는 경우

    [Mybatis] Param 어노테이션 없이 여러 파라미터를 넣을 때 null 오류가 발생하는 경우

    Mybatis 에서 한 메서드에 여러 파라미터를 넣을 경우, xml sql에서 파라미터를 구분지을 수 있게 @Param 어노테이션을 제공한다. @Mapper public interface FooRepository { List selectBars(@Param("name") String name, @Param("code") String code); } 어떤 로컬 PC에서는 @Param을 생략해도 잘 동작하나, 일부 로컬 PC에서는 아래와 같은 에러가 발생한다. org.mybatis.spring.MyBatisSystemException: null 에러가 발생한 PC에서는 intellij의 build tool을 gradle이 아닌 intellij에서 제공하는 gradle을 사용하고 있었기 때문이었다. Intel..

    [OOP] 우아한 객체지향 _ 의존성을 이용해 설계 진화시키기

    [OOP] 우아한 객체지향 _ 의존성을 이용해 설계 진화시키기

    객체지향 스터디를 준비하던 중, 객체지향의 사실과 오해의 저자이신 조영호 님의 객체지향 세미나를 보게 되었다. 자료 영상 : https://www.youtube.com/watch?v=dJ5C4qRqAgA slideshare : https://www.slideshare.net/baejjae93/ss-150432699 우아한 객체지향 2019년 6월 우아한 Tech 세미나 우아한 객체지향 www.slideshare.net 코드 1단계 : https://github.com/eternity-oop/Woowahan-OO-01-object-reference 2단계 : https://github.com/eternity-oop/Woowahan-OO-02-domain-service 3단계 : https://github...

    [Design Pattern] Factory Method Pattern (팩토리 메서드 패턴)

    [Design Pattern] Factory Method Pattern (팩토리 메서드 패턴)

    팩토리 메서드 패턴 (Factory Method Pattern) 구체적으로 어떤 인스턴스를 만들지는 서브클래스가 정한다. 인스턴스를 생성하는 책임을 구체 클래스가 아닌 인터페이스의 메서드로 감싸게 된다. 다양한 구현체(Product)가 있고, 그 중에서 특정한 구현체를 만들 수 있는 다양한 팩토리(Creator)를 제공할 수 있다. 장점 기존에 인스턴스 생성 코드를 건드리지 않고 비슷한 류의 인스턴스 생성 코드를 만들 수 있어 OCP를 보장한다. (Creator와 Product의 느슨한 결합) 단점 클래스가 많아진다. 예시 (as-is) public class Ship { private String name; private String color; private String logo; public Str..

    [Design Pattern] Singleton Pattern (싱글톤 패턴)

    [Design Pattern] Singleton Pattern (싱글톤 패턴)

    싱글톤 패턴 (Singleton Pattern) 인스턴스를 오직 한개만 제공하는 클래스 시스템 런타임, 환경 세팅에 대한 정보 등 인스턴스가 여러 개일 때 문제가 생길 수 있는 경우가 있다. 인스턴스를 오직 한 개만 만들어 제공하는 클래스가 필요하다. 예시 (as-is) public class Settings { } public class App { public static void main(String[] args) { Settings settings = new Settings(); Settings settings1 = new Settings(); System.out.println(settings != settings1); } } 싱글톤 패턴을 적용하려면, 위 settings != settings1에서..