Woopii Vyeolog

Framework/Library/API/REST 본문

기타

Framework/Library/API/REST

WooPii 2020. 2. 19. 10:36

framework?
프레임워크는 뼈대나 기반구조를 뜻하고, 제어의 역전 개념(IOC)이 적용된 대표적인 기술.

소프트웨어에서의 프레임워크는 '소프트웨어의 특정 문제를 해결하기 위해서 상호 협력하는 클래스와 

인터페이스의 집합' 이라 할 수 있으며, 완성된 어플리케이션이 아닌 프로그래머가 완성시키는 작업을 해야한다.

객체 지향 개발을 하게 되면서 통합성, 일관성의 부족이 발생되는 문제를 해결할 방법중 하나.

 

라이브러리?

라이브러리는 단순 활용가능한 도구들의 집합.

즉, 개발자가 만든 클래스에서 호출하여 사용, 클래스들의 나열로 필요한 클래스를 불러서 

사용하는 방식을 취하고 있다.

 

 

프레임워크와 라이브러리의 차이점

제어의 흐름(flow)이 누구에게 있는지가 중요하다. (흐름의 주도성을 누가 갖고 있는가?)

프레임워크는 전체적인 흐름을 스스로가 쥐고 있으며, 사용자는 그 안에서 필요한 코드를 짜 넣는다.

(따라서, 프레임 워크에는, 제어의 역전 개념이 적용되어 있어야 한다.)

반면에, 라이브러리는 사용자가 전체적인 흐름을 만들며, 해당 라이브러리를 가져다 쓰는 것 뿐이다.

 

**제어의 역전(Inversion Of Control) : 제어의 역전이란 어떠한 일을 하도록 만들어진 프레임워크에 

제어의 권한을 넘김으로써 클라이언트 코드가 신경 써야 할 것을 줄이는 전략.

 


API?

 

API (Application Programming Interface, 응용 프로그램 프로그래밍 인터페이스)

응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다.

 

응용프로그램 : 내가 만드는 프로그램

운영 체제나 프로그래밍 언어가 제공하는 기능 : 내가 사용하고자 하는 기능(예 : 날씨 정보, 지도 정보 등)

 

API는 프로그램과 또 다른 프로그램을 연결해주는 일종의 다리라고 볼 수 있다.

내가 만드는 프로그램이 해당 서비스를 이용할 수 있게 해주는 연결 고리가 API라고 할 수 있다.

 

 

 

REST?

“Representational State Transfer” 의 약자

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

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

 

자원 : 해당 소프트웨어가 관리하는 모든 것 (resource) (문서,그림,데이터,해당 소프트웨어 자체 등)

이름(표현) : (예 : DB에서 해당 테이블이 학생 정보(자원)일 때 student를 자원의 표현으로 정의 )

상태(정보) : 요청된 시점에서 자원의 상태(정보).  JSON 혹은 XML를 통해 데이터를 주고 받는 것이 일반적.

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

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)

 

RESTful?

REST방식을 REST 원리를 따르는 시스템은 RESTful이란 용어로 지칭된다.

RESTful의 목적
이해하기 쉽고 사용하기 쉬운 REST API를 만드는 것
RESTful한 API를 구현하는 근본적인 목적이 성능 향상에 있는 것이 아니라 일관적인 컨벤션을 통한 API의 이해도 및 호환성을 높이는 것이 주 동기이니, 성능이 중요한 상황에서는 굳이 RESTful한 API를 구현할 필요는 없다.


RESTful 하지 못한 경우
Ex1) CRUD 기능을 모두 POST로만 처리하는 API
Ex2) route에 resource, id 외의 정보가 들어가는 경우(/students/updateName)

RESTAPI?

REST 기반으로 서비스 API를 구현한 것

REST 기반으로 시스템을 분산해 확장성과 재사용성을 높여 유지보수 및 운용을 편리하게 할 수 있다.
HTTP 표준을 기반으로 구현하므로, HTTP를 지원하는 프로그램 언어로 클라이언트, 서버를 구현할 수 있다.
REST API를 제작하면 델파이 클라이언트 뿐 아니라, 자바, C#, 웹 등을 이용해 클라이언트를 제작할 수 있다.

RESTAPI를 만드는데 있어서 기본 규칙들이 존재한다.(참고확인)

 

 

 

 

 

 

참고

https://medium.com/@dydrlaks/api-%EB%9E%80-c0fd6222d34c

 

API 란?

저도 API가 무엇인지 자세히 알지 못하였기 때문에 검색을 하며 스스로 공부를 해보았던 것인데 간단하게 API에 대한 개념을 설명한 곳이 없기도 하고 저의 insight를 공유하고 싶어서 medium에 업로드 하게 되었습니다.

medium.com

http://www.chidoo.me/index.php/2016/06/03/what-is-restful/

 

도대체 뭐가 RESTful 이라는건가?

요즘에 웹에서 API 기능을 개발한다고 하면 RESTful 이라는 단어를 많이 듣게 된다. 특히 “Single Page WebApp(웹앱)”이 웹 기능을 개발하는 주류 방법이 되면서 더욱 자주 귀에 들린다.  여기에서 그럼 웹앱이라는 것이 뭔지 우선 짚어보고 가보자.  이걸 알아야지 왜 API가 필요한 것이며 그 중에서도 REST…

www.chidoo.me

https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html

 

[Network] REST란? REST API란? RESTful이란? - Heee's Development Blog

Step by step goes a long way.

gmlwjd9405.github.io

https://webclub.tistory.com/458

불러오는 중입니다...

 

'기타' 카테고리의 다른 글

[개발] 코드 스타일  (0) 2024.03.21
Comments