Spring & Spring boot 32

[Spring Boot] JPA - 4. CRUD Example

1. Environment2. Sources3. Test Springboot - Basic JPA CRUD API Example JPA를 바로 사용하기 보단, 동작 원리에 대해 알고 사용하는 것이 도움이 된다.JPA 관련 포스팅https://jh4dev.tistory.com/24 [Spring Boot] JPA - 1. ORM 과 JPA1. ORM2. JPA & Hibernate [ORM]ORM은 Object Relational Mapping 의 줄임말로, 객체 관계 매핑을 의미한다.객체지향 언어에서 의미하는 객체와 RDB의 테이블을 자동으로 매핑하는 방법으로, 자바에서는 클래스와jh4dev.tistory.com https://jh4dev.tistory.com/25 [Spring Boot] JPA - 2..

[Spring Boot] JPA - 3. Entity & Repository

지난 포스팅에서 Entity / Entity Manager / Persistence Context 의 역할과 관계에 대해 알아보았다.이번 포스팅에서는 실제 Entity 클래스를 생성하는 방법과, Spring Data JPA 를 사용하기에, Entity Manager 를 사용하는 Repository 에 대해 알아보자. ** 포스팅 내, 샘플 소스는 롬복(Lombok) 을 사용하여 작성되어있으니 유의 바랍니다. **롬복 관련해서는 별도의 포스팅을 작성할 예정입니다. 1. Entity2. Repository3. Repository & Entity Manager [Entity]JPA에서 Entity 는 DB 테이블에 매핑된 클래스를 의미한다.Entity 클래스에서는 어노테이션을 활용해 DB에 쓰일 테이블과 컬럼..

[Spring Boot] JPA - 2. Entity

1. Entity 엔티티2. Entity Manager 엔티티 매니저3. Persistence Context 영속성 컨텍스트 [Entity]Entity(엔티티)는 ORM 의 핵심 개념으로, DB 테이블과 매핑되는 JAVA 클래스 이다.객체 지향적인 방식으로 DB를 다룰 수 있게 해주며, 객체지향 프로그래밍의 장점을 사용할 수 있게 한다.Entity 의 특징Entity는 DB 테이블과 매핑되며, Entity Class의 각 Field는 DB 테이블의 Column에 해당한다.하나의 Entity Instance는 DB 테이블의 레코드(Row)에 해당한다.Entity는 DB에서 고유하게 식별할 수 있는 식별자를 가지며, DB 테이블의 PK(Primary Key)에 해당한다.특정 DB에 종속되지 않고, 다양한 D..

[Spring Boot] JPA - 1. ORM 과 JPA

1. ORM2. JPA & Hibernate [ORM]ORM은 Object Relational Mapping 의 줄임말로, 객체 관계 매핑을 의미한다.객체지향 언어에서 의미하는 객체와 RDB의 테이블을 자동으로 매핑하는 방법으로, 자바에서는 클래스와 테이블을 매핑하는 것을 의미한다. 하지만, 클래스는 DB 테이블과 매핑하기 위한 목적으로 만들어진 것이 아니기 때문에, 불일치가 존재한다.이같은 불일치와 제약사항을 해결하는 역할이 ORM 이다. ORM 을 사용함으로써 얻을 수 있는 장점은 다음과 같다.데이터베이스 쿼리를 객체지향적으로 조작할 수 있다.쿼리 작성량이 현저히 줄어, 개발 비용을 줄일 수 있다.코드의 가독성을 높일 수 있다.재사용 및 유지보수가 편리하다.ORM을 통해 매핑된 객체는 모두 독립적으로..

[Spring Boot] Rest Controller - 6. HttpEntity

1. HttpEntity ?2. RequetEntity & ResponseEntity [HttpEntity]Spring Framework에는 HttpEntity 라는 클래스가 있다.HttpEntity 는, Header 와 Body 로 구성되어 HTTP 요청과 응답을 구성하는 역할을 수행한다.HttpEntity 의 필드는 다음과 같다. package org.springframework.http; import org.springframework.lang.Nullable; import org.springframework.util.MultiValueMap; import org.springframework.util.ObjectUtils; public class HttpEntity { ..

[Spring Boot] Rest Controller - 5. DELETE

1. Http Method DELETE2. DELETE Controller  [Http Method DELETE]HTTP DELETE 메서드는 서버에 있는 리소스를 삭제하는데 사용된다.클라이언트는 리소스를 식별할 수 있는 값을 서버로 전달하며, 서버가 해당 리소스를 조회하고 삭제하는 역할을 수행한다.지정된 URI 에 있는 리소스를 삭제한다.같은 DELETE 요청을 여러 번 수행해도, 서버의 상태는 변하지 않는다.[DELETE Controller]컨트롤러를 통해 값을 받는 단계에서는 간단한 값을 받기 때문에, GET 메서드와 같이 URI 에 값을 넣어 요청을 받는 형태로 구현된다.즉, GET Controller 와 형태는 크게 다르지 않다.  @DeleteMapping("/{variable}") ..

[Spring Boot] Rest Controller - 4. PUT

1. Http Method PUT2. PUT Controller [Http Method PUT]HTTP PUT 메서드는 클라이언트가 지정된 URI에 대해 서버에 리소스를 생성하거나, 기존 리소스를 (전체) 대체하도록 요청한다.부분 대체의 목적으로 PATCH 메서드가 있으나, 실무에서 PUT과 PATCH를 구분하여 사용하는 경우는 드문 것 같다.다른 이유보다도, 수정된 컬럼만 지정해서 업데이트 하기 보다는,  Column 전체를 업데이트 하는 경우가 대부분이기 때문이다.클라이언트가 같은 PUT 요청을 여러 번 보내도 결과가 달라지지 않는다.PUT 요청은 리소스의 전체 대체를 의미한다.[PUT Controller]PUT Controller 의 형태는 POST API 와 크게 다르지 않다.@RequestBod..

[Spring Boot] Rest Controller - 3. POST

1. Http Method POST2. Post Controller [Http Method POST]클라이언트가 서버에 데이터를 전송하는 데 사용되는 주요 HTTP Method 로 폼 제출, 데이터 업로드, 새로운 리소스 생성 등 다양한 상황에서 사용된다.POST API 에서는 저장하려는 리소스나 값을 HTTP Body에 담아 서버로 전송한다.요청 데이터는 주로 form-data, JSON, XML 등이 있다.POST Request는 상태를 유지하지 않으며, 서버는 요청을 받을 때마다 데이터를 처리한다.새로운 리소스를 생성하는데 사용될 수 있으며, 요청으로 받은 데이터를 생성하는 위치는 서버가 결정한다.[Post Controller] GET 컨트롤러에서 작성한 내용과 동일하게, @RequestMappin..

[Spring Boot] Rest Controller - 2. Get

1. Http Method GET2. Get Controller [ Http Method GET ]HTTP GET 메서드는, 웹 서버로부터 리소스를 요청하는데 사용되며, 주로 데이터 조회에 사용된다.특징으로는 아래와 같은 내용이 있다.GET 요청은, 데이터를 단순히 조회하는 목적을 갖고 있기 때문에, 서버의 상태를 변경하지 않는다.동일한 REQUEST 는 항상 같은 결과를 리턴한다.REQUEST URL에 파라미터를 포함한다.Path variable or Query StringURL 길이에 제한이 있기 때문에, GET 요청으로 전송할 수 있는 데이터의 크기에 제한이 있다.이미지, 스크립트, CSS 등 정적 리소스 요청에 사용된다.[ Get Controller ]Spring 환경에서 Get 메서드 컨트롤러를..

[Spring Boot] Rest Controller - 1. REST

1. REST ?2. REST API 특징3. REST API 규칙 [REST ?] Representational State Transfer 의 약자로, WWW와 같은 분산 하이퍼미디어 시스템 아키텍처의 한 형태.Resource에 이름을 규정하고, URI에 명시해 HTTP 메서드 (GET / POST / PUT / DELETE)를 통해 해당 자원을 표현하고 상태를 주고받는 것을 의미한다. 그렇다면, REST API 는 무엇인가?REST Application Programming Interface 의 약자로, 애플리케이션에서 제공하는 인터페이스를 의미한다.즉, REST API 는 REST 아키텍처를 따르는 시스템 또는 애플리케이션 인터페이스라고 볼 수 있으며, 이러한 REST 아키텍처를 구현하는 인터페이스..