Back-end/Spring
-
SpringBoot - 데이터베이스 초기화Back-end/Spring 2020. 6. 28. 00:04
데이터베이스 초기화 이번 주제를 실습하기 위해선 이전 포스팅의 코드가 필요합니다. 필요하신 분들은 JPA 연동하기 를 참고해주시면 됩니다. JPA를 사용한 데이터베이스 초기화 JPA를 사용한 프로젝트의 경우 해당되는 초기화 방법입니다. 작성해둔 Entity 정보를 바탕으로 스키마를 생성하고 생성된 스키마를 초기화 하는 방법에 대해 알아보겠습니다. Application.properties 설정 spring.jpa.hibernate.ddl-auto spring.jpa.hibernate.ddl-auto= 위 옵션을 통해서 스키마를 운영할 수 있습니다. update: 기존의 스키마는 놔두고 추가된 사항만 변경합니다. create-drop: 처음에 스키마를 만들고 Application 종료시 스키마를 drop합니..
-
SpringBoot - JPA 연동하기Back-end/Spring 2020. 6. 28. 00:02
JPA JPA를 연동하고 테스트하는 방법을 공부해봅시다. 기본적인 개념에 대해 궁금하시다면 ORM, JPA의 개념 포스팅을 참고해주시면 됩니다. JPA 연동 및 테스트 JPA 의존성 추가 org.springframework.boot spring-boot-starter-data-jpa 위 의존성을 추가하면 다른 세팅을 건들지 않아도 바로 사용할 수 있습니다. Entity 클래스 생성 @Entity public class Account { @Id @GeneratedValue private Long ID; private String username; private String password; public Long getID() { return ID; } public void setID(Long ID) { t..
-
SpringBoot - ORM, JPA의 개념Back-end/Spring 2020. 6. 28. 00:01
ORM(Object-Relational Mapping) 객체와 릴레이션을 Mapping(매핑)할 때 발생하는 개념적 불일치를 해결하는 프레임워크입니다. 참고자료 : 하이버네이트 공식문서 ORM에서 다루어지는 문제들 객체는 크기가 굉장히 다양하지만 테이블은 테이블과 컬럼 밖에 없고 크기가 한정적이다. 복잡한 객체의 다양한 크기들을 테이블에 맵핑을 시킬 수 있을 것인가에 대한 해결책을 제공한다. 테이블은 상속이 없지만 객체들은 상속이 있음 클래스간에 상속구조를 만들 수 있는데 그런 상속구조를 테이블로는 어떻게 매핑할 것인가 Relational 에서 식별자는 굉장히 단순하다. Object에서는 Identity는 Hashcode? equals Method? Object Identity가 같으면 도대체 어떤 En..
-
SpringBoot - PostgreSQLBack-end/Spring 2020. 6. 27. 23:59
PostgreSQL Postgres DB를 사용하는 방법을 알아봅시다. MySQL과 마찬가지로 Docker로 설치 및 실행할 예정이니 Docker를 설치 하지 않았다면 Mysql 포스팅을 참고해주시기 바랍니다. PostgreSQL 의존성 추가 org.postgresql postgresql 의존성을 추가해줍니다. Docker에 PostgreSQL 설치하기 docker run -p 5432:5432 -e POSTGRES_PASSWORD=pass -e POSTGRES_USER=junjang -e POSTGRES_DB=springboot --name postgres_boot -d postgres 도커 5432 포트를 로컬 5432 포트와 연결합니다. 비밀번호는 pass로 합니다. 사용자는 junjang으로 합니..
-
SpringBoot - DBCP, MySQLBack-end/Spring 2020. 6. 27. 23:58
DBCP DBCP란 Database Connection Pool의 약자로 Connection을 미리 여러개 만들어 놓고 필요할때 마다 그때그때 가져다 사용하며 SpringBoot는 기본적으로 Hikari CP를 사용하고 있습니다. DBCP가 Application 성능에 아주 핵심적인 역할을 하므로 충분히 학습 후 사용해야합니다. Connection에 관련된 여러가지 설정을 할 수 있습니다. SpringBoot에서 지원하는 DBCP HikariCP (기본) Tomcat CP Commons DBCP2 Hikari CP 기본 설정인 Hikari의 핵심 내용입니다. 참고자료 : Hikari 사용방법 application.properties에 Hikari에 대한 설정값을 선언합니다. connectionTimeo..
-
SpringBoot - 인메모리 데이터베이스(H2)Back-end/Spring 2020. 6. 27. 23:56
인메모리 데이터베이스 메모리를 사용하여 DB를 조작하는 것을 말합니다. 다양한 종류가 있지만 H2를 활용해서 실습해 볼 것입니다. H2, JDBC 의존성 추가하기 org.springframework.boot spring-boot-starter-jdbc com.h2database h2 runtime jdbc의존성을 추가하면 두개의 항목을 자동설정 해줍니다. DataSource JdbcTemplate 이 두가지를 사용하여 리소스 반납처리, 에러 확인 등을 가독성 높고 편리하게 사용할 수 있습니다. 인메모리 데이터베이스 연결 정보 확인하기 autoconfigure - DataSourceAutoConfiguration - DataSourceProperties에 기본 정보가 들어가있습니다. URL: “testdb..
-
SpringBoot - MVC CORSBack-end/Spring 2020. 6. 27. 23:54
CORS(Cross-Origin Resource Sharing) SOP(Single-Origin Policy)를 우회하기 위한 기술이며 서로 다른 Origin과 Resource를 공유하기 위한 방법입니다. SOP, CORS SOP : 같은 Origin끼리만 Resource를 공유합니다. CORS : 다른 Origin들과 Resource를 공유합니다. Origin이란? 총 세가지 조합으로서 이 세가지 사항이 전부 만족해야 Resource를 호출할 수 있습니다. URI 스키마 (http, https) hostname (junjang.me, localhost) 포트 (8080, 18080) CORS 실습해보기 실습을 위해선 Server, Client 두 개의 프로젝트를 생성해야 합니다. Server @Spri..
-
SpringBoot - MVC HATEOASBack-end/Spring 2020. 6. 27. 23:52
HATEOAS(Hypermedia As The Engine Of Application State) HATEOAS를 구현하기에 편리한 기능들을 제공하는 라이브러리입니다. REST API를 만들 때 사용하는 기능입니다. SpringBoot에서는 단순 의존성 추가 하나만으로 모든 기능을 사용할 수 있습니다. 코딩하는 과정이 늘어 불편하지만 진정한 REST API를 제작시 사용하면 됩니다. 참고 자료 : 헤이토스 사용 가이드, 스프링공식문서 REST ?? REST에서 R은 Representational입니다. 서버: 현재 리소스와 연관된 링크 정보를 클라이언트에게 제공합니다. 클라이언트: 연관된 링크 정보를 바탕으로 리소스에 접근합니다. 연관된 링크 정보 Relation Hype..