항해99 - day12

Dasole Kwon·2022년 5월 21일
0

항해99

목록 보기
9/47

오늘도 어제에 이어 spring강의를 수강했다.
하기 내용을 목표로 삼아 강의를 들었고, 코드를 따라쳐보았다.

  • RDBMS의 기초지식 습득
  • Spring Data JPA사용법 습득
  • REST API만드는 법을 익힌다

오늘 배운 내용 정리!

  • JPA란?
    : JPA는, SQL을 쓰지 않고 데이터를 생성/조회/수정/삭제 할 수 있도록 해주는 번역기이다. 만약 JPA가 없다면 복잡한 SQL을 짜야하는데, JPA를 쓴다면 하기 코드 한줄로 설정이 가능하다.
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'

//save a few customers
repository.save(new Customer("Jack", "Bauer"));
repository.save(new Customer("Amy", "Bob"));
  • 상속의 개념
    : "클래스의 상속" 이라는 개념이며, 이미 만들어 둔거를 가져다 쓰자고 선언하는것이다.
class Person {
	private String name;
	private String getName() {
		return this.name;
	}
}

class Tutor extends Person {
	private String address;
	// Person 클래스를 상속했기 때문에,
	// name 멤버변수와 getName() 메소드를 가지고 있습니다.
}

DB기본 중의 기본은, "생성일자"와 "수정일자"를 필드로 가지는 것이다.
Timestamped를 통해 생성일자, 수성일자를 추가 할 수 있다.

@MappedSuperclass // 상속했을 때, 컬럼으로 인식하게 합니다.
@EntityListeners(AuditingEntityListener.class) // 생성/수정 시간을 자동으로 반영하도록 설정
public class Timestamped {

    @CreatedDate // 생성일자임을 나타냅니다.
    private LocalDateTime createdAt;

    @LastModifiedDate // 마지막 수정일자임을 나타냅니다.
    private LocalDateTime modifiedAt;
}

(H2-console을 통해 접속해서 확인해보고, SELECT*FROM course;로 조회가 가능하다.)

  • CRUD란? 정보관리의 기본 기능
    → 생성 (Create)
    → 조회 (Read)
    → 변경 (Update)
    → 삭제 (Delete)

  • Service의 개념: update/delete로 넘어가기 전에 다루어야 하는 개념

  • 스프링의 구조는 3가지 영역으로 나눌 수 있습니다.

    1. Controller : 가장 바깥 부분, 요청/응답을 처리함.
    2. Service : 중간 부분, 실제 중요한 작동이 많이 일어나는 부분
    3. Repo : 가장 안쪽 부분, DB와 맞닿아 있음.
  • Update 는 Service 부분에 작성
  • Lombok이란?
    : Lombok(이하 롬복)은, 자바 프로젝트를 진행하는데 거의 필수적으로 필요한 메소드/생성자 등을 자동생성해줌으로써 코드를 절약할 수 있도록 도와주는 라이브러리

  • DTO: 완충재로 활용하는 것이 DTO(Data Transfer Object)

  • API는 무엇일까?
    -> 길어질 것 같아 따로 정리해놓았다.

0개의 댓글