팩토리 패턴 객체를 사용하는 측에서 바로 생성하지 않고 중간에 생성을 전담하는 객체를 두고 생성하여 결합도를 낮춘다. 예제 동물 카페(AnimalCafe)에서 동물을 만날 수 있는데 현재는 토끼만 만날 수 있다. interface Animal { /* ... */ } class Rabbit implements Animal { /* ... */ } class AnimalCafe { public Animal meet() { Animal animal = new Rabbit(); // 기타 로직(등록, 지불 등) return animal; } }위 코드에서 meet() 클래스는 고객에게 제공할 동물을 선택하고, 제공하기 위해서 기타 로직을 수행한다. 이후 추가 케이스로 강아지(Puppy)가 추가되었고 카페에선 ..
implementation 'com.h2database:h2:1.4.200' public class App { public static void main(String[] args) throws Exception { final String[] H2_ARGS = new String[]{ "-web" , "-webPort", "9091" , "-webAdminPassword", "" , "-browser" , "-tcp" , "-tcpAllowOthers" , "-tcpPort", "9090" , "-key", "test", "test" }; Server h2TcpServer = Server.createTcpServer(H2_ARGS); Server h2WebServer = Server.crea..
Calculate print(15/7) # 나눗셈, 2 print(15//7) # 몫, 2 print(15%7) # 나머지, 1 print(2**3) # 제곱근, 8Variable Type Type String Boolean Integer Float v = 1 print(type(v)) # int Tuple, Dictionary, Set Tuple 수정이 안되는 엘리먼트 집합 자료형 # define tuple = () tupleA = tuple() tupleA = (1, 2) tupleB = (3, 4) print( tupleA(0) ) # 1, 인덱스 접근 가능 tupleA + tupleB # (1, 2, 3, 4) tupleA * 2 # (1, 2, 1, 2) # use case ## switch x..
Reflection 이란?클래스의 이름만으로도 객체의 정보를 가져올 수 있는 기능. 왜쓰나?동적으로 클래스를 호출해야 될 때 사용. 코드를 작성하는 시점이 아니라 JVM이 application이 running하고 있을 때 어떤 동작(사용자의 요청 또는 로직)에 의해서 사용해야 하는 class가 정해질 때 사용된다. JSON, XML 파서나 Spring에서 Bean을 생성할 때도 쓴다고 한다. 기본 사용법 의 모양으로 class를 얻는다. 여기서 className은 패키지를 포함한 클래스명을 적어야한다. 이렇게 Class 객체를 얻으면 해당 클래스에 대한 annotation, field, method, constructor 등 거의 모든 정보에 접근 가능하고 해당 정보를 사용해서 인스턴스를 생성까지 할 수..