[RESTful API]토이플젝을 위한 공부(1) - JPA + RESTful API 공부하기

gamja·2022년 10월 31일
0

이번에 시작할 토이 프로젝트는 좀더 RESTful 방식으로 만들어보고 싶어서 rest api를 공부하기로 했다. 사실 이전부터 공부는 시작했지만 지금 포스팅을 한다!

우선 REST API가 무엇인지 알아보았다.

1. REST란 무엇일까? 💭

  • Representational State Transfer 의 약자로, 자원을 이름으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미한다.

  • REST는 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일이다.

  • REST는 네트워크 상에서 Client와 Server 사이틔 통신 방식 중 하나이다.

1-1. rest의 구체적인 개념 🔍

  • HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미한다.

    CRUD Operation

    • Create : 생성(POST)
    • Read : 조회(GET)
    • Update : 수정(PUT)
    • Delete : 삭제(DELETE)
    • HEAD : header 정보 조회(HEAD)

처음에는 개념을 읽어봐도 "그래서 이걸 어떻게 사용해야 한다는 거지..?" 싶었는데, 유튜브에서 '코딩의 신' 채널의 <Spring Boot으로 웹 출시까지> 라는 강의를 보며 RESTful API를 이용한 study용 프로젝트를 만들어보니 REST API에 대한 개념을 익힐 수 있었다.


2. JPA로 RESTful API 작성해보기👨🏻‍💻

<Spring Boot으로 웹 출시까지>를 노션에 따로 정리하면서 7강쯤 듣다가 jpa 메소드 명명 규칙이 궁금해졌다. 보니까 어떤 규칙이 존재하는 것 같은데 따로 설명이 없어서 직접 찾아봤다.

대표적인 method

  • findAll()
    : DB에서 전체 값을 list로 불러올 때 사용
  • findOne()
    : primary key로 값을 1건 조회할 때 사용한다.
  • findByTitle(String title) : 이런 식으로 findBy 뒤에 Entity의 이름을 붙이면 된다. Enriry의 이름의 첫글자는 대문자로 한다.

여러 개 조건 걸기

  • And 조건
    : findByIdAndName(int id, String name)으로 And를 사용하여 검색한다.

  • OR 조건
    : findByIdOrName(int id, String name)으로 Or을 사용하여 검색한다.

  • findByNameLike
    : like를 붙이면 인수에 지정된 텍스트를 포함하는 Entity를 검색한다. 여기서는 name에서 인수의 텍스트를 검색한다.

  • findByNameStartingWith("Lee")
    : 이름이 "Lee"로 시작하는 이름을 검색한다.

  • findByNameEndingWith("seul")
    : 이름이 "seul"로 끝나는 이름을 검색한다.

  • findByNameIsNull()
    : name 중에 null인 것들을 검색한다.

  • findByUseYnTrue()
    : useYn이 true인 것들을 검색해준다.

  • findByCreatedDateBefore(new Date())
    : 시간 기준으로 값을 검색한다. Before은 이전 것을, After은 이후 것을 검색해준다.

  • findByCntBetween(1,10)
    : cnt가 1~10 사이에 있는 값을 검색해준다.

  • findByAddressOrderByCnt(String address)
    : cnt 순서대로 주소를 검색해준다.

  • countBy : sql의 count와 같은 기능이다.

참고 출처 : https://zara49.tistory.com/130

profile
눈도 1mm씩 쌓인다.

0개의 댓글