본문 바로가기

백엔드

[스파르타코딩클럽]웹개발의 봄, Spring 2주차 개발일지

이번에도 중요한 내용만 요약하며 복습용으로 올려봐야겠다!

 

 

맨날 mySQL로만 사용해보다가 이번에 처음 h2로 진행해보았다!

너무 신기했다~

그런데 mySQL과 정말 유사해서 빠르게 익숙해질 수 있었다.

 

- h2? In-memory DB의 대표 주자

- 인메모리 DB? 서버가 작동하는 동안에만 내용을 저장하고, 서버가 작동을 멈추면 데이터가 모두 삭제되는 데이터베이스

 

CommandLineRunnger!?


 

@Bean
public CommandLineRunner demo(CourseRepository repository){
  return (args) -> {
      List<Food> foodList = foodRepository.findAll(); // 그 후에 다 System.out.println
    };
}

와 CommandLineRunner라는 건 처음 들어봤다.

이걸로 출력해보는데 너무 새로웠다.

 

Timestamped


솔직히 Timestamped를 사용하는 건 정말 중요하다고 생각한다.

이번에 한번 더 리마인드할 수 있는 좋은 기회였다고 생각한다.

Timestamped 파일
@MappedSuperclass // 상속했을 때 컬럼으로 인식하도록 한다.
@EntityListeners(AuditingEntityListener.class) // 생성/수정 시간을 자동으로 반영하도록 해야 한다(시간을 계속 들어주기)

사용 클래스에 이 파일을 extends 해주어야 하며

Application 클래스에
@EnableJpaAuditing을 붙여주어야 한다.

 

Service


// final: 서비스에게 꼭 필요한 녀석임 명시
private final MyRepository myRepository

// 생성자를 통해 Repository를 꼭 넣어주도록 알려준다.
public myService(MyRepository myRepository){
  this.myRepository = myRepository;
}

@Transactional // SQL쿼리가 일어나야 함을 알려준다.
...
findById(id).orElseThrow( () -> new IllegalArgumentException("에러"); );

JPA를 사용해보면서 Service를 사용하고,

리마인드할 수 있는 좋은 기회였다.

 

어노테이션도 한번 더 짚고 넘어가고,

레퍼지토리의 핵심, 인터페이스도 짚고 넘어가서

필요한 내용은 다 들어가 있는 강의임을 한번 더 느꼈다!

 

DTO의 사용 이유, RequiredArgsConstructor, Lombok 등을 배우고,

간단한 API 제작 방법을 배웠다!

반응형