[TIL] 2022-03-03

nathan·2022년 3월 3일
0

TIL

목록 보기
28/34

2022-03-03

😍 좋았던 것(Liked)

  • 데일리 스크럼에서 잠에 드는 시간과 일어나는 시간에 대해 공유한 점
  • @Jun에게 Spring MVC 방식 작동원리를 이해하기 쉽게 배운점
  • 백엔드 5조;; 6조 조원들과 유대감이 형성된 점(나만 그럴수도 있음ㅎㅎ;;)

📚 배운 것(Learned)

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

💦 부족했던 것(Lacked)

  • 마스터 클래스 중 쉬는 시간 이후 수업에 대해 제대로 집중하지 못했다.
  • 강의 집중력이 많이 낮다. 내일부터는 미션과 병행하여 집중력을 끌어올리자.

🕯 바라는 것(Longed for)

  • 강의는 빨리 끝내버리기.
  • 미션 시작해보기.
  • 누군가에게 도움을 줄 수 있는 사람이 되고싶다.
profile
나는 날마다 모든 면에서 점점 더 나아지고 있다.

0개의 댓글