Adapter Pattern
: 호환되지 않는 클래스와 인터페이스 사이에 어댑터(인터페이스를 구현한 추상클래스)로 연결하는 패턴default
접근 제어자를 추가하는 방식이 생겼기 때문.log4j
보안 취약점에 대해 추후 학습해볼 것 *
을 남발하지 말자.(최대한 풀어써서 가독성을 높이자)Hikari
(thread pool), SoftAssertion
, Mockito Extension
등의 키워드에 대해 학습하고 정리해보자.SQL injection
: 일반적 String으로 SQL을 작성하면 보안에 취약하다는 단점이 생긴다.(String에 쿼리문을 넣어 정보를 탈취함). 따라서 JDBC API로 코딩할 때 preparedstatement
를 이용한다고 한다.MyBatis
: 쿼리가 별도의 xml로 분리되어있다. (장점이자 단점)스프링 빈 설정 메타정보
, 싱글톤 컨테이너
에 대해서 학습.Bean Definition
이라는 추상화를 통해 역할과 구현을 개념적으로 나누었기 때문에 가능Bean Definition
이라는 추상화(역할)에만 의존하도록 설계되어 있다.Bean Definition Reader
를 통해 설정정보를 읽어 빈 메타정보(Bean Definition
을 생성한다.싱글톤 패턴
: 객체가 JVM 안에 딱 하나만 있어야 하는 패턴
- static 영역에 객체 instance를 미리 하나 생성한다.
- 조회 메서드를 하나 만들어 그 메서드를 통해서만 조회할 수 있도록 한다.
- private으로 new 키워드를 막는다.
싱글톤 패턴
의 문제점
- 싱글톤 패턴을 구현하는 코드 자체가 많이 들어간다.
- 의존관계상 클라이언트가 구체 클래스에 의존한다. DIP를 위반한다.
- 클라이언트가 구체 클래스에 의존해서 OCP 원칙을 위반할 가능성이 높다. 테스트하기 어렵다.
- 내부 속성을 변경하거나 초기화 하기 어렵다.
- private 생성자로 자식 클래스를 만들기 어렵다.
- 결론적으로 유연성이 떨어진다.
- 안티패턴으로 불리기도 한다.
스프링 컨테이너
가 위의 싱글톤 패턴
의 문제점을 해결하면서 기본적으로 객체를 싱글톤으로 만들어 관리한다.assertThat().isSameAs()
: 객체 인스턴스 비교 (==
과 같은 의미)assertThat().isEqualTo()
: 객체 내용 비교(equals
와 같은 의미)