엑셀 파일 하나가 "데이터베이스"라면,
엑셀 시트 하나는 "테이블"이라고 부르고,
엑셀 행 하나는 "데이터"라고 부릅니다.
우리가 명령을 내린 Java 명령어를 SQL로 번역해주는 녀석이,
바로 다음 시간에 배울 Spring Data JPA 라는 녀석입니다!
JPA란?
👉 JPA는, SQL을 쓰지 않고 데이터를 생성, 조회, 수정, 삭제할 수 있도록 해주는 번역기입니다.DB를 이용하는데 핵심이었던 "테이블"과 "SQL"과 동일한 개념의 자바 용어가 있겠죠?
"테이블"은 Domain, "SQL"은 Repository 입니다.
Interface 란?
spring.jpa.show-sql=true // spring이 jap로 작동을 할 때 sql을 보여달라.
spring.datasource.url=jdbc:h2:mem:testdb;MODE=MYSQL

-> 이렇게 내가 작성하지 않은 코드들을 사용할 수 있게 해주는 것이 JPA
repository.save(); //()안에 내가 저장할 것을 넣음.
repository.save(course1); //course1 저장.
JPA로 위의 기능을 하는 방법을 익혀보겠습니다.
service의 개념
스프링의 구조는 3가지 영역으로 나눌 수 있습니다.
Controller : 가장 바깥 부분, 요청/응답을 처리함. 요청이들어오면 요청을 받아주는 자동응답기.
→ 2주차 후반부에 배울 녀석
Service : 중간 부분, 실제 중요한 작동이 많이 일어나는 부분. db를 꺼내오는 녀석과 응답하는 녀석 사이에 연결고리가 service.
update는 밖에서 요청이 들어옴. 그래서 repo까지 전달해줘야함. 서비스를 활용해서해야함.
→ 지금 배울 녀석
Repo : 가장 안쪽 부분, DB와 맞닿아 있음.
→ 여태 배운 녀석 (Repository, Entity)
Update 는 Service 부분에 작성합니다.
Lombok 소개
👉 코드 절약하기! Lombok(이하 롬복)은, 자바 프로젝트를 진행하는데 거의 필수적으로 필요한 메소드/생성자 등을 자동생성해줌으로써 코드를 절약할 수 있도록 도와주는 라이브러리입니다.DTO
👉 테이블을 막 건드려도 될까? = read, update할 때 Course 클래스를 막 써도 될까? = 내가 아닌 다른 사람이 변경이라도 한다면?? 😱 완충재로 활용하는 것이 DTO(Data Transfer Object)입니다.API
👉 클라이언트 - 서버 간의 약속입니다. 클라이언트가 정한대로 서버에게 요청(Request)을 보내면, 서버가 요구사항을 처리하여 응답(Response)을 반환합니다.REST
👉 REST란, 주소에 명사, 요청 방식에 동사를 사용함으로써 의도를 명확히 드러냄을 의미합니다.여기에 쓰이는 동사는 우리가 JPA 시간에 배운 CRUD를 지칭합니다.
즉 A에 대해 생성(POST)/조회(GET)/수정(PUT)/삭제(DELETE) 요청을 하는 것이죠.
예시
dto 언제썼나? 서비스에서 리포지토리 갈때, 컨트롤러에서 서비스나 리포지토리 갈때, 요청받을 때, 정보를 물고 다닐 때
엊그제까지만 해도 진심으로 포기할까했고 이 과정을 끝까지 하는 것 자체로도 대단하겠다고 생각이 들었다. 끝까지 임했다면 그것만으로 우선 칭찬하고 싶다!
더불어 느리더라도 성장을 했길 바라고 늘은 능력으로 취준 열심히 하고 있길!
2개월 정도 지났는데, 그 전보다 안게 많아졌고 앞으로 남은 2개월도 그럴 거고 그 뒤에도 쭉 그럴거니까 믿고 열심히 해보자 화이팅.
H2 DataBase 연결 에러
jdbc:h2:mem:testdb
In-memory DB.어플리케이션이 동작할 때에만 존재하는 DB로 DB를 연결하고 닫으면 해당 DB는 사라진다.
jdbc:h2:~/testdb
Local DB. 로컬에서 홈디렉토리에 db를 생성되어 사용된다. 해당 DB는 저장되어 계속 사용할 수 있다.