https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/master/Development_common_sense
단순히 읽고 외우는 것이 아닌 나만의 답변을 생각하고 적혀있는 답과 비교.
문제를 읽고 나만의 답 / 검색과 공부를 통한 최선의 답 작성
내 답변
웹 서비스에서 자원을 표현하고 상태를 전송하기 위한 아키텍처 스타일인 REST의 기본원칙을 성실히 지킨 서비스 디자인을 RESTful 하다 라고 표현한다.
최선의 답변
RESTful API는 Representational State Transfer(표현 상태 전송)의 약자로, 웹 서비스에서 자원을 표현하고 상태를 전송하기 위한 아키텍처 스타일입니다. RESTful API는 네트워크 기반의 시스템 간 통신을 위한 표준화된 방법론으로, 웹 개발에서 주로 사용됩니다.
RESTful API의 주요 특징은 다음과 같습니다:
자원(Resource) 지향적: 각각의 자원은 고유한 식별자(URI)를 가지며, 클라이언트는 URI를 통해 해당 자원에 접근합니다. 예를 들어, '/users'는 사용자 자원에 대한 URI를 나타냅니다.
상태를 전송(State Transfer): 클라이언트는 요청을 통해 자원의 상태를 변경하거나 자원에 대한 동작을 수행합니다. 서버는 클라이언트의 요청을 처리하고 적절한 응답을 반환합니다.
HTTP 메서드 활용: RESTful API는 HTTP 메서드(GET, POST, PUT, DELETE 등)를 사용하여 자원에 대한 동작을 표현합니다. 예를 들어, GET 메서드는 자원을 조회하고, POST 메서드는 자원을 생성하는데 사용됩니다.
Stateless 특성: 서버는 클라이언트의 상태를 관리하지 않고, 각 요청은 독립적으로 처리됩니다. 클라이언트는 필요한 상태 정보를 요청에 포함시켜야 합니다.
데이터 포맷: 주로 JSON 또는 XML 형식의 데이터를 사용하여 자원을 표현합니다. 요청과 응답은 헤더와 바디로 구성되며, 데이터 포맷은 Content-Type 헤더를 통해 명시됩니다.
RESTful API는 간결하고 확장 가능한 인터페이스를 제공하여 다양한 플랫폼 간의 통신을 용이하게 합니다. 웹 서비스, 모바일 애플리케이션, 마이크로서비스 아키텍처 등 다양한 시스템에서 사용되며, 클라이언트-서버 구조와 분리된 역할의 특성으로 서버와 클라이언트의 독립적인 개발과 확장이 가능합니다.
내 답변
OpenAPI를 제공하기 쉽고, 웹 뿐만 아니라 모바일 어플리케이션, 마이크로서비스 등 다양한 서비스와 통신할 수 있는것이 장점이며 단점의 경우엔 CRUD기능에 적합한 메소드들이기에 복잡한 기능을 하기엔 한계가 있을 수 있다.
최선의 답변
RESTful API의 장점과 단점은 다음과 같습니다:
장점:
간결하고 일관된 인터페이스: RESTful API는 HTTP 메서드를 활용하여 자원에 대한 동작을 표현하므로, 인터페이스가 간결하고 직관적입니다. 또한, URI를 통해 자원을 표현하므로 일관성을 유지할 수 있습니다.
확장성과 유연성: RESTful API는 자원의 상태를 전송하고, 자원 간의 관계를 표현할 수 있습니다. 이를 통해 서버와 클라이언트의 독립적인 개발과 확장이 가능하며, 새로운 기능을 추가하기 위해 기존 코드를 수정할 필요가 없습니다.
다양한 플랫폼 간의 상호운용성: RESTful API는 HTTP 프로토콜을 기반으로 하므로, 다양한 플랫폼과 언어에서 사용할 수 있습니다. 웹 서비스, 모바일 애플리케이션, 마이크로서비스 등 다양한 시스템 간의 통신을 용이하게 합니다.
캐싱 및 성능: RESTful API는 HTTP 프로토콜을 사용하므로, 캐싱을 활용하여 성능을 향상시킬 수 있습니다. 서버의 응답을 캐시하고, 클라이언트는 캐시된 응답을 사용함으로써 네트워크 비용을 줄일 수 있습니다.
단점:
복잡한 기능에 한계: RESTful API는 주로 CRUD(Create, Read, Update, Delete) 기능에 적합하며, 복잡한 기능을 표현하기에는 한계가 있을 수 있습니다. 특정 도메인에 따라 추가적인 기능이 필요한 경우에는 RESTful API만으로는 한계가 있을 수 있습니다.
오버헤드: RESTful API는 HTTP 프로토콜을 기반으로 하므로, 요청과 응답에 대한 헤더 정보가 추가됩니다. 이로 인해 데이터 전송에 오버헤드가 발생할 수 있습니다.
엄격한 규칙: RESTful API는 일정한 원칙과 규칙을 따라야 합니다. 이는 초기 설계 단계에서 추가 작업을 요구할 수 있으며, 개발자들이 RESTful API의 원칙을 이해하고 준수해야 한다는 점에서 추가 노력이 필요할 수 있습니다.
RESTful API의 장점과 단점은 특정 프로젝트의 요구사항과 환경에 따라 다를 수 있으며, 적절한 사용 및 설계는 이러한 장점을 최대한 활용하고 단점을 극복하는 데 도움을 줍니다.