본문 바로가기

학습/Spring45

[spring] 스프링 부트에서 Spring Data JPA 사용하기 ORM Object Relational Mapping Object와 Relation을 맵핑할 때 발생하는 개념적 불일치에 대한 솔루션을 제공하는 프레임워크 객체지향 클래스는 primitive type / reference type의 멤버 필드와 메소드를 가질 수 있다. 객체는 담고 있는 필드, 메소드에 따라 크기가 다양하다. 객체는 hashCode(), equlas(), == 로 비교될 수 있다. Relational Database 테이블은 컬럼만 가질 수 있다. 테이블은 크기가 한정적이다. 예상될 수 있다. 레코드의 식별자는 id로 단순하다. 이렇게 많은 차이를 보이는 객체와 RDB를 ORM이 연결해준다. Spring Data JPA org.springframework.boot:spring-boot-s.. 2020. 5. 7.
[spring] 스프링 부트에서 MySQL과 PostgreSQL 사용하기 DBCP DataBase Connection Pool DB Connection을 만드는 과정은 훨씬 복잡한데 내부 처리 해줌 커넥션을 미리 만들어놓고, 필요할 때 가져다 쓰는 방식 최소 유지 개수 / 유지 시간 / 타임아웃 시간 설정 등 어플리케이션의 성능에 많은 영향을 줌 스프링 부트의 DBCP HikariCP (기본) Tomcat CP Commons DBCP2 DBCP 설정 변경하기 spring.datasource.hikari.* spring.datasource.tomcat.* spring.datasource.dbcp2.* 다른 자동 설정과 유사하게 HikariConfig에 정의되어 있다. spring.datasource.hikari.maximum-pool-size 이와 유사하게 auto-commit.. 2020. 5. 6.
[spring] 스프링 부트에서 JDBC와 In-memory DB 사용하기 의존성 추가 (gradle) implementation "org.springframework.boot:spring-boot-starter-jdbc" runtimeOnly "com.h2database:h2" 사용할 수 있는 In-memory DB의 종류 h2 HSQL Derby spring-jdbc의 자동설정 jdbc가 classpath에 존재하면 해당 빈을 등록하고 자동 설정 DataSource JdbcTemplate 아무런 DataSource 설정이 없으면, 스프링 부트는 자동으로 In-memory DB 사용 확인해보자! Runner 클래스 생성 DataSource 객체를 @Autowired로 주입받기 @Override run 구현 DataSource 객체에서 JDBC Connection 객체 가져오기.. 2020. 5. 5.
[spring] 스프링 웹 MVC의 CORS 지원 CORS? Cross-Origin Resource Sharing SOP(Single-Origin Policy)를 우회하기 위한 기술 SOP는 같은 오리진에만 요청을 보낼 수 있는 정책 CORS는 다른 오리진끼리 리소스를 공유할 수 있는 방법을 제공하는 표준 아무 설정 없으면 SOP 적용 Origin? URI Schema + HostName + Port URI Schema = http / https HostName = localhost / kkambi.me / comic.naver.com의 comic Port = 8080 / 8090 / 80 / 443 SOP가 적용되어 있는 경우 localhost:80에서 구동되는 웹 어플리케이션이, localhost:8080에서 구동되는 REST API를 호출할 수 없.. 2020. 5. 3.
[spring] 스프링 부트의 Hateoas 지원 Hateoas? Hypermedia As The Engine Of Application State - REST 아키텍쳐의 구성 요소 - REST API에서 리소스를 제공할 때, 연관된 링크 정보를 함께 제공 - 클라이언트는 연관 링크 정보를 바탕으로 리소스에 접근 - 다른 상태로 전이할 수 있는 링크 레퍼런스를 제공 의존성 추가 필요 spring-boot-starter-hateoas 추가 - ObjectMapper 사용 spring-boot-starter-web 추가 시, Bean으로 등록되는 ObjectMapper json으로 변환할 때 사용하는 인터페이스 spring.jackson.* 프로퍼티로 커스터마이징 가능 - LinkDiscovers 제공 xPath를 확장해서 만든 hateoas용 클라이언트 .. 2020. 5. 3.