[정리] 기능별 개념 정리(105)
-
Controller to model flow
Service, Repository, Entity, DTO의 대략적인 차이점 구분Entity와 DTO의 Step 을 두지않고 하나로 처리하는게 일반적
2019.03.21 -
스프링 부트 Annotation - 설정
Spring boot starter = 의존성 관리를 한번에 해줌 @SpringBootApplication 스프링 부트 어플리케이션의 시작 지점 @ComponentScan 이 애플의 컴포넌트 스캔을 어떤 단위로 하겠다.@Repository@Component@Service@Controller@RestController@Configuration이 붙은 클래스를 탐색 @EnableAutoConfiguration 자동 구성을 생성 @Configuration 구성을 설정 @SpringBootConfiguration = @Configuration 스프링 부트에서 사용하는 Configuration 과 구분짓기 위해서 만듬 @EnableConfigurationProperties~ 애플리케이션 속성 정의, 클래스에 유연..
2019.03.17 -
JPA (기초 : 영속성 컨텍스트)
영속성 컨텍스트 : 엔티티 매니저를 생성하면 생기는 것영속성 컨텍스트는 객체와 데이터 베이스가 통신하기 위해 마련된 가운데 공간이다.em.persist(member)를 하면 member 객체를 영속성 컨텍스트에 보낸다. em.flush()를 하면 영속성 컨텍스트에 존재하는 객체를 DB에 반영하는 쿼리를 실행한다.tx.commit()을 해도 영속성 컨텍스트에 존재하는 객체를 DB에 반영하는 쿼리를 실행한다.jpql 쿼리를 실행해도 영속성 컨텍스트에 존재하는 객체를 DB에 반영하는 쿼리를 실행한다.=> 개발자가 쿼리가 DB에 바로 반영되는 것을 원하는 경우이므로* em.flush는 영속성 컨텍스트를 비우는 것은 아니다.* em.clear가 영속성 컨텍스트를 비우는 것이다. 1. 캐시로 동작할 수 있다.2. ..
2019.03.17 -
JPA (기초 : 엔티티 Annotation)
public enum MemberType{ADMIN, USER } @Entity public class Member{ @Id private long id; @Column(name="nickname") private String name; @Enumerated(EnumType.STRING) private MemberType memberType; // ... getter, setter 생략 } @Id(AUTO) : 기본키인데 방언에 따라 자동 증가하는 sequence 키다.@Column(name="nickname") : 매치되는 데이터 베이스의 칼럼명은 ~ 이다.@Enumerated(EnumType.STRING) : EnumType 을 데이터로 저장
2019.03.16 -
JPA (기초 : 설정, CRUD)
persistence.xmlJPA의 설정을 관리하는 파일Spring boot에서는 application.properties 또는 application.yml 으로 관리한다. H2와 JPA를 연결하는 예시 javax.persistence.jdb.driver = org.h2.Driver javax.persistence.jdb.url= jdbc:h2:tcp://localhost/~/test javax.persistence.jdb.user= javax.persistence.jdb.password = hibernate.dialect = org.hibernate.dialect.H2Dialect hibernate.show_sql = true hibernate.format_sql = true hibernate.use_..
2019.03.16 -
JPA (기초 : ORM 의 역사)
이 강의를 바탕으로 정리하였습니다. 자바는 객체 지향 패러다임으로 만들어졌다.데이터 베이스는 관계형 DB 패러다임으로 만들어졌다.탄생 배경부터가 다른 패러다임을 두고 만들어졌기 때문에 이 두 소프트웨어는 어쩔 수 없는 간극이 생긴다.이것은 굉장히 큰 문제다.1. 프로그래머의 업무는 객체를 CRUD 하는 SQL을 만드는 단순 노동이 된다.2. SQL에 의존적인 개발을 할 수 밖에 없다.3. 프로그램을 객체 지향적으로 설계하는데 데이터베이스가 방해된다. ORM이러한 패러다임의 불일치를 해결하고자 나온 기술이 ORM (Object Relation Mapping) 프레임워크다.1. 객체는 객체대로 설계한다.2. DB는 DB대로 설계한다.3. ORM은 그 중간을 Mapping 해주는 방식이다. JPAORM 기술은..
2019.03.16