- 객체 지향 프로그래밍(OOP)에 대해 설명 해 주세요. 알고 있는 원칙이나 키워드를 언급 해 주세요.
- REST API란 무엇인가요?
- 프로젝트에 REST API를 사용했다면 사용한 이유는 무엇인가요?
- REST API 말고 다른 비교할 만한 것을 알고 있나요?
객체 지향 프로그래밍(OOP)?
[스프링] 좋은 객체 지향 설계가 뭐지? (좋은 객체 지향 설계의 5가지 원칙)
해당 사진은 객체 지향적으로 대강 잘만 프로그래밍 하면 되는 줄 알았던 안일한 과거의 저의 모습입니다. 좋은 객체 지향 프로그래밍. 말만 들어도 머리가 어지러운데 원칙까지 있다니... 벌써
kes0917.tistory.com
REST API?
웹 서비스의 구축과 상호작용을 위한 아키텍처 스타일
특징:
- Stateless(무상태성): 서버는 클라이언트의 상태를 저장하지 않음. 각 요청은 모든 필요한 정보를 포함하고 있어야 함. => 서버의 확장성과 성능을 향상시키는 데 도움.
- 자원 기반(Resource-based): 각 자원은 고유한 URI를 가지며, 해당 자원에 대한 조작은 HTTP 메서드를 통해 이루어짐.
- 유니폼 인터페이스(Uniform Interface): REST API는 일관성 있는 인터페이스를 제공. => 클라이언트는 서버의 상태에 관계없이 일관된 방식으로 요청.
- 자체 표현( Self-descriptive): 메시지 자체에는 해당 메시지를 처리하기 위한 충분한 정보가 포함. => 서버가 응답을 받은 후에 쉽게 이해하고 활용할 수 있도록 도움.
- 클라이언트-서버 구조: 클라이언트와 서버는 독립적으로 발전할 수 있는 분리된 구성. => 시스템의 확장성이 향상되고, 각 부분을 개별적으로 수정하거나 교체하는 것이 더 용이.
사용 이유:
- 간결하고 쉬운 사용: REST API는 HTTP 프로토콜을 기반으로 하기 때문에 기존의 웹 인프라를 활용하여 개발 가능. => 개발자들이 쉽게 접근하고 사용 가능.
- 플랫폼 독립성: REST API는 클라이언트와 서버 간의 인터페이스로 HTTP를 사용하므로 언어나 플랫폼에 독립적. => 서버가 어떤 기술로 개발되었든, 클라이언트가 어떤 플랫폼을 사용하든 간에 상호작용할 수 있음.
- 자원 중심적 설계: REST API는 자원을 중심으로 설계되어 리소스의 고유한 URI를 사용하여 접근. => 각 자원에 대한 CRUD 작업이 명확하고 직관적으로 이루어지며, 자원의 상태를 표현하는 데 용이.
- 확장성과 성능: REST API는 무상태성(stateless)을 따르기 때문에 서버가 클라이언트의 상태를 기억할 필요 X. => 서버의 확장성과 성능을 향상시키는데 도움.
- 인기 있는 데이터 형식: 대부분의 REST API는 JSON 혹은 XML과 같이 인기 있는 데이터 형식을 사용하여 데이터를 교환. => 구조화된 데이터를 쉽게 다룰 수 있으며, 다양한 프로그래밍 언어에서 지원되어 사용하기 편리.
- 웹의 보편성: REST API는 웹의 기술과 철학을 기반으로 하기 때문에 웹을 통해 액세스할 수 있는 모든 장치에서 사용 가능. => 모바일 앱, 웹 애플리케이션, 데스크톱 앱 등 다양한 플랫폼과 디바이스에서 쉽게 통합 및 활용.
- 업계 표준: REST API는 현재 웹 서비스의 대부분에 사용되는 표준적인 아키텍처 스타일. => 많은 개발자와 기업이 REST API를 활용하여 상호운용성을 증진시키고 기존 시스템과의 통합 용이.
REST API와 비교할 수 있는 SOAP API
REST API와 다른 SOAP API의 특징:
XML 기반의 프로토콜로 웹 서비스를 구축하는데 사용.
기능 중심적으로 설계되며, 작업을 수행하기 위해 특정 메서드를 호출.
상태 정보를 유지하고, 트랜잭션을 관리하기 위해 상태 관리를 지원.
'취업스터디' 카테고리의 다른 글
취업스터디 - 5일차 과제 (0) | 2023.07.25 |
---|---|
취업스터디 - 4일차 과제 (0) | 2023.07.24 |
취업스터디 - 1주차 과제 (0) | 2023.07.23 |
취업스터디 - 3일차 과제 (0) | 2023.07.23 |
취업스터디 - 2일차 과제 (0) | 2023.07.23 |
댓글