반응형
오늘 할 일
강의 수강특강 참여- 과제 피드백 반영
TIL
강의 수강(JPA)
JDBC
- 자바 애플리케이션은 JDBC API를 이용해 데이터 계층과 통신한다.
- 과정 : Connection 획득 -> Statement 이용한 질의 -> ResultSet 이용한 질의 결과 사용 -> Statement, Connection 반납
- 모든 동작을 하나하나 작성해야하기 때문에 하나의 쿼리를 동작시키기 위한 과정이 너무 번거롭다.
JDBCTemplate
- SpringContext 사용하기 위해 @SpringBootTest 사용
- JDBC Template를 이용해서, 데이터 계층에 접근이 가능하다.
- 기존 JDBC를 이용했을때의 반복적인 작업을 JDBC Template이 대신 수행해준다.
- jdbctemplate에 의존성 주입 → 연결이나 statement, resultset 등을 대신 생성한다.
- 하지만, JDBC와 같이 자바 코드 상에 쿼리문이 있기 때문에 유지보수하기 어렵다는 단점이 있다.
MyBatis
- @Mapper 애노테이션을 사용하는 방법과 xml 파일로 사용하는 방법이 있다.
- 하지만, 이러한 방식을 객체 패러다임에 불일치가 발생하게 된다.
- dependency 추가
<!--MyBatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
- properties.yaml
mybatis:
type-aliases-package: com.example.jpa.repository.domain
configuration:
map-underscore-to-camel-case: true
default-fetch-size: 100
default-statement-timeout: 30
mapper-locations: classpath:mapper/*.xml
JPA
- JPA는 쿼리를 작성하지 않아도 자바 객체 변경을 통해 쿼리를 수행할 수 있다.
- 테이블이 Entity 클래스로 관리되기 때문에 테이블의 모양과 객체의 모양이 동일하게 매핑된다.
- 동일성을 유지하며 관리할 수 있다.
- dependency 추가
<!--JPA-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
- properties.yaml
spring:
datasource:
driver-class-name: org.h2.Driver
url: jdbc:h2:~/test;
username: sa
password:
jpa:
generate-ddl:true
open-in-view:false
show-sql:true
- Entity : table 명과 매핑
@Table(name = "customers")
- JpaRepository
- 상속받아 Jpa로 지정해준다.
- <엔티티, primary key>
public interfaceCustomerRepository extends JpaRepository<CustomerEntity, Long> {
}
JPA를 사용해야 하는 이유
- 생산성 증진
- SQL의 의존적인 개발에서 벗어나 객체 중심으로 생산적인 개발이 가능하다.
- 객체와 관계형 테이블의 패러다임 불일치
- 추상화, 상속, 다형성 등을 제공한다.
- 관계형 DB 중심으로 구조화 되어있으며, OOP의 특징을 지원하지 않는다.
- JPA가 ORM(Object Relation Mapping)인 이유
- 객체와 관계형 DB를 매핑시켜주기 때문이다.
특강 참여
용어
- 책을 읽고 공부하는 것보다 주변 사람들과 대화하며 나오는 주제부터 아는 것이 좋다.
- 용어의 탄생 배경 - 중의적 의미 - 사전적 의미와 예제를 같이 살펴보자!
- 모두가 아는 예보다는 나만이 설명할 수 있는 예제를 만들자!
로드 리뷰
- 일반 사항이나 예외사항은 팀원들과 같이 진행하고, 보완된 후 멘토님에게 리뷰를 요청하자!
- 동료 코드와 구글링을 통해 다른 사람들의 코드를 읽는 연습을 하자!
자료구조
- 기본 원리를 먼저 습득하고 나중에 직접 코딩을 해보자!
내일 할 일
- 강의 수강
- 과제 피드백 반영
느낀 점
JDBC, MyBatis 등을 다시 사용해보니 정리가 되는 느낌이라 좋았다. JPA는 처음 사용해보았는데 객체로 테이블을 매핑해 사용할 수 있다니.. 혁신의 혁신이었다. 왜 여태까지 공부하지 않았는지 모를 정도로 정말 편했다. 이번 주에 열심히 공부해서 꼭 익히고 싶다.
반응형
'데브 코스 > TIL' 카테고리의 다른 글
[TIL] 2021.11.09 (0) | 2021.11.11 |
---|---|
[TIL] 2021.11.08 (0) | 2021.11.11 |
[TIL] DAY 55 (0) | 2021.09.28 |
[TIL] DAY 54 (0) | 2021.09.28 |
[TIL] DAY 53 (0) | 2021.09.27 |