콘텐츠로 이동

2021 02 17

2021-02-17

DTO

  • 정의 - 계층 간 통신 용도로 오가는, 데이터 교환을 위한 객체 - 로직이 없는 순수한 데이터 객체로, getter와 setter만을 갖는다 - DB에서 꺼낸 값은 setter 대신 생성자로 값을 할당한다
  • 왜 필요한가? - 몇 번의 호출에 의해 전송될 데이터를 모으는 DTO를 이용해서 한 번만 호출하도록 한다

String.format

  • format()은 형식화된 문자열을 만들어내는 방법
  • printf()와 사용법이 동일하다 - ex) String str = String.format("%d 더하기 %d는 %d입니다.", 3, 5, 3+5);

Map인터페이스

  • 정의 - key와 value를 쌍으로 묶어서 저장하는 JCF - key 중복 NO - value는 중복 OK
  • 메서드 - void clear(): Map의 모든 객체 삭제 - boolean containsKey(Object key): 지정된 key객체와 일치하는 Map의 key객체 확인 - boolean containsValue(Object value): 지정된 value객체와 일치하는 Map의 value객체 확인 - Set entrySet(): Map에 저장된 key-value쌍을 Map.Entry타입의 객체로 저장한 Set으로 반환 - boolean equals(Object o): 동일한 Map인지 비교 - Object get(Object key): 지정한 key객체에 대응하는 value객체 찾아서 반환 - Set keySet(): Map에 저장된 모든 key객체 반환 - Object put(Object key, Object value): Map에 value객체를 key에 연결하여 저장한다 - Object remove(Object key): 지정한 key객체와 일치하는 key-value 객체를 삭제한다
  • HashMap

    public class HashMap extends AbstractMap implements Map, Cloneable, Serializable {
        transient Entry[] table;
            ...
        static class Entry implements Map.Entry {
            final Object key;
            Object value;
        }
    }
    

    • HashMap은 key와 value를 Object 타입으로 저장

Singleton

  • 정의 - 어떤 클래스가 최초 한번만 메모리를 할당하고, 그 메모리에 객체를 만들어 사용하는 디자인 패턴 - 생성자의 호출이 반복적으로 이뤄져도, 최초 생성된 객체를 반환
    public class ExampleClass {
        private static ExampleClass singleton = new ExampleClass();
    
        private ExampleClass() {}
    
        public static ExampleClass getInstance() {
            return singleton;
        }
    }
    
  • 장점 - 메모리 낭비 방지 - 다른 객체와 공유가 용이함
  • 문제점 - 다른 객체간의 결함도가 높아져 객체 지향 설계 원칙에 어긋남