#1. CRUD

1. CRUD의 개념

1) CRUD란?

  • 대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능인 Create(생성), Read(읽기), Update(갱신), Delete(삭제)를 일컫는 말이다.
  • 사용자 인터페이스가 갖춰야할 기능(정보의 참조, 검색, 갱신)을 가리키는 용어로서도 사용된다.

※ CRUD 용어롤 최초로 사용한 논문으로는 Kilov,H(1990)의 논문이다.

 

2) 프로그램 동작 구분

이름 조작 Method SQL
Create 생성 POST INSERT
Read 읽기 GET SELECT
Update 갱신 PUT UPDATE
Delete 삭제 DELETE DELETE
  • 유저 인터페이스 CRUD는 여러 응용 프로그램의 사용자 인터페이스에도 들어 맞는다.
  • 예를들어 주소록이나 게시판 같은 소프트웨어가 이에 해당한다.
    • 새로운 정보를 추가할 수 있다.
    • 새로운 정보를 검색할 수 있다.
    • 기존의 정보를 수정할 수 있다.
    • 기존의 정보를 삭제할 수 있다.
  • 위의 4개의 기능을 모두 해야 완전한 소프트웨어라고 할 수 있다. 
    • 이 기능들은 매우 기본적이기 때문에 한 묶음으로 설명되는 경우가 많다.

 

2. Restful API

1) Restful API란?

  • CRUD에 입각하여 어떠한 주제 하나를 놓고 입력, 수정, 삭제, 조회가 가능하도록 구성되어진 백엔드 시스템이다.
  • Java(Spring), Node.js(Express), PHP, Python 등을 활용하여 구현되고 실질적인 데이터는 DATABASE에 저장된다.
  • Ajax를 통해 백엔드와 통신한다는 것은, 데이터베이스에 저장된 내용에 대한 입력, 수정, 삭제, 조회를 백엔드에 요청하는것을 의미한다.
    • 이를 위해 구축된 시스템이 Restful API 이다.

 

2) GET 방식

  • 쿼리스트링(QueryString)
    • URL뒤에 물음표(?)를 기준으로 하여 변수명=값&변수명=값 의 형식으로 요청변수를 나열하는 방법이다.
    • 변수가 URL에 그대로 노출되기 때문에 보안이 필요한 경우 사용해서는 안된다.
    • 전송 가능한 데이터의 용량에 한계가 있다. URL의 총 길이는 1024byte를 넘을 수 없기 때문에 포함 가능한 변수의 내용도 그 안에서 결정되어야 한다.
    • 변수를 URL에 포함하므로 웹 브라우저로 조작이 가능하다.
https://chan-co.tistory.com/manage/newpost/982?type=post&returnURL=https://chan-co.tistory.com

 

  • Path
    • 쿼리스트링 방식에서 변수 명은 미리 정해진 순서로 약속하고, 변수의 값만 전달하는 방식이다.
    • URL 구성이 마치 폴더간의 연결처럼 보이기 때문에 쿼리스트링 방식보다는 상대적으로 보안에 유리하지만, 쿼리스트링의 모든 한계를 그대로 가지고 있다.
    • 이 방식도 마찬가지로 변수를 URL에 포함하므로 웹 브라우저로 조작이 가능하다.
https://chan-co.tistory.com/manage/newpost/982/post/https://chan-co.tistory.com

 

3) POST, PUT, DELETE 방식

  • 요청 변수는 URL이 아닌 HTTP Header에 포함하여 전송하는 방식이다.
  • 서버(백엔드)의 설정에 따라 전송 가능 용량을 설정할 수 있다.
  • 파일 업로드가 가능하며, 개발자 도구를 사용할 수 있다면 요청 정보를 열람할 수 있지만, 일반 사용자에게는 요청 변수가 노출되지 않는다는 점에서 상대적으로 보안에 유리하다고 볼 수 있다.
  • 웹 브라우저를 통한 조작이 불가능하다.

 

4) JSON-Server

  • json 파일을 데이터베이스로 삼아 Restful API를 간단하게 가동할 수 있게 해주는 오픈소스 프로그램이다.
  • 사용 및 설치방법 → https://chan-co.tistory.com/52

 

5) Insomnia (https://insomnia.rest)

  • Restful API와 연동하는 Ajax 기능 구현 전, 백엔드 시스템이 어떻게 가동하는지 테스트할 수 있는 프로그램이다.
  • 유료버전이 있지만, 무료로도 사용 가능하다.

'국비수업 > JavaScript' 카테고리의 다른 글

[Javascript] Axios / openAPI  (0) 2022.04.04
[Javascript] Ajax / JSON-Server  (0) 2022.04.02
[Javascript] 라이브러리 활용  (0) 2022.04.01
[Javascript] 데이터 읽기, 쓰기 / window 객체  (0) 2022.03.31
[Javascript] Form 요소  (0) 2022.03.28

+ Recent posts