springboot

JPA 시작
1. 데이터베이스 방언 JPA는 특정 데이터베이스에 종속되지 않는다. 각각의 데이터베이스가 제공하는 SQL 문법과 함수는 조금씩 다르다. 가변 문자 : MySQL - VARCHAR, Oracle - VARCHAR2 페이징 : MySQL - LIMIT, Oracle - ROWNUM 방언은 SQL 표준을 지키지 않는 특정 데이터베이스만의 고유한 기능이다. 2. JPA 구동 방식 JPA는 Persistence라는 클래스에서 시작한다. META-INF/persistence.xml에서 설정 정보를 읽고 EntityManagerFactory라는 클래스를 만든다. 그리고 필요할 때마다 EntityManage를 만들어낸다. 주의 사항 EntityManagerFactory는 하나만 생성해서 애플리케이션 전체에서 공유한다..

JPA란
JPA란 Java Persistence API의 약자로 자바 진영의 ORM 기술 표준이다. ORM(Object-Relational Mapping) Object-relational mapping(객체 관계 매핑) 객체는 객체대로 설계하고 관계형 데이터베이스는 관계형 데이터베이스대로 설계한다. ORM 프레임워크가 중간에서 매핑해준다. 대중적인 언어에는 대부분 ORM 기술이 존재한다. JPA(Java Persistence API) 현재 자바 진영의 ORM 기술 표준으로 인터페이스의 모음이다. JPA 2.1 표준 명세를 구현한 3가지 구현체로는 Hibernate, EclipseLink, DataNucleus가 있다. JPA 버전 JPA 1.0(JSR 220) 2006년 : 초기 버전. 복합 키와 연관관계 기능이..
GET API
웹 개론 을 복습하기 위해 REST API에 대해 다시 한 번 정리하고 HTTP Method에 대해 자세히 설명하겠다. REST API란 REST 특징을 지키면서 API(application programming interface)를 제공하는 것이며, HTTP 프로토콜의 장점을 살릴 수 있는 네트워크 기반 아키텍처이다. REST의 특징은 다음과 같다. Uniform Interface Client-Server Stateless Cacheable Layered System Code on Demand(optional) HTTP Method HTTP Method 동작 URL 형태 GET 조회(Read) /api/board POST 생성(Create) /api/board PUT 수정(Update) /api/boa..

Spring Boot + JPA 게시물 조회수 기능
팀원들과 회의 중 조회수 기능을 추가하면 좋을 것 같아서 조회수 기능을 추가해봤다. 수정 사항은 다음과 같다. 1. Domain에 view 컬럼 추가 2. BoardRepository public interface BoardRepository extends JpaRepository { @Modifying @Query("update Board b set b.view = b.view+1 where b.id=:id") int updateView(Long id); } @Query Spring JPA를 다루다보면 쿼리를 직접 정의하여 사용할 경우가 존재한다. 원래는 JPA를 쓰지 않아 xml 파일에 쿼리를 작성했는데 JPA를 사용하는 경우 @Query 어노테이션을 이용해 정의할 수 있다. 단, @Query 어노테..