AI교육과정 - Spring project.2

단비·2023년 1월 12일
0

AI교육과정

목록 보기
52/69
  • 레코드(record)
    • 클래스의 특별한 종류

    • DTO를 편리하게 생성하기 위한 클래스

    • 자바 16부터 공식 기능이 되었음

    • 열거타입과 마찬가지로 자바 클래스의 종류

    • 다른 클래스를 상속받을 수 없음

    • abstract 로 선언할 수 없고, 암시적으로 final로 선언됨

    • 본문(body)에는 정적 필드, 정적 메소드, 정적 이니셜라이저, 생성자, 인스턴스 메소드, 중첩타입(클래스, 인터페이스, 열거형 등)을 선언할 수 있음

    • 아래와 같이 필드 final 선언, 필드 초기화 생성자, 각 필드의 getter 메소드 생성이 필요없음

      public class SampleRecord {
         private final String name;
         private final Integer age;
         private final Address address;
       
         public SampleRecord(String name, Integer age, Address address) {
            this.name = name;
            this.age = age;
            this.address = address;
         }
       
         public String getName() {
            return name;
         }
       
         public Integer getAge() {
            return age;
         }
       
         public Address getAddress() {
            return address;
         }
      }
  • Mockito
    • @Mock

      • mock 객체를 만들어 반환(실제 인스턴스 없이 가상의 mock 인스턴스를 직접 만들어 사용)
    • @Spy

      • spy 객체를 만들어 반환(실제 인스턴스를 사용해서 mocking 함, Spy 객체는 행위를 지정하지 않으면 객체를 만들 때 사용한 실제 인스턴스의 메서드를 호출한다.)
    • @InjectMocks
      - @Mock이나 @Spy 애노테이션이 붙은 field를 주입받음

      @ExtendWith(MockitoExtension.class) // MockitoExtension를 가져와 사용

  • DTO(data transfer object)는 계층(Layer)간 데이터 이동을 위해 사용되는 객체
  • VO(value object)는 값을 갖는 순수한 도메인(상수로 선언되는 값들)
  • Entity는 이를 DB 테이블과 매핑하는 객체

  • 직렬화
    • 자바 시스템 내부에서 사용되는 객체 또는 데이터를 외부의 자바 시스템에서도 사용할 수 있도록 바이트(byte) 형태로 데이처 변환하는 기술과 바이트로 변환된 데이터를 다시 객체로 변환(역 직렬화) 하는 기술
  • Serializable 인터페이스 직접 만든 클래스가 파일에 읽거나 쓸 수 있도록 할 때, 다른 서버로 보내거나 받을 수 있도록 할 때 Serializable을 구현해야함

  • @Slf4j
  • th:remove="all-but-first”
  • attr sel="td.title/a”
    • a 태그를 추가함

  • Forward
    • 요청하는 url은 그대로 유지가되지만 내용은 다른페이지를 참조
    • request 값을 받아오기 위해서는 request의 getAttribute 메소드를 이용
  • redirect
    • 주소값이 변경됨
    • 창이 넘어가버리기 때문에 request에서 값을 불러올 수 없음(세션을 이용해야함)
  • .distinct() : 중복 제거

  • 스프링이 지원하는 로그인 방식
    1. 폼 로그인(세션)
    2. Ajax 로그인(세션)
    3. OAuth2 로그인(세션)
    4. JWT 토큰 로그인(토큰)

  • getReferenceById()와 findById()의 차이
    • get방식은 실제 엔티티를 반환하는 것이 아닌 프록시(중계 서버)를 반환하기 때문에 사용 전까진 DB에 접근하지 않음.

    • find방식은 엔티티에 접근하여 실행 시 DB와 접근하여 select문을 실행함

      https://bcp0109.tistory.com/325

profile
tistory로 이전! https://sweet-rain-kim.tistory.com/

0개의 댓글