|
122 | 122 |
|
123 | 123 | > 캡슐화는 객체의 내부 구현을 외부로부터 숨기고, 오로지 메서드를 통해서만 상호작용하도록 함으로써 외부로부터 보호하는 것이며, 추상화는 객체의 공통된 특징과 동작을 추출하여 클래스로 정의하는 것입니다. 두 개념 모두 객체 지향 프로그래밍에서 코드의 유지보수성과 재사용성을 높이는 데에 도움을 준다는 공통점을 갖고 유사한 특성으로 볼 수 있으나 그 초점에 차이가 있습니다. |
124 | 124 | </details> |
125 | | -</br> |
126 | | -
|
127 | | - |
128 | | -## RESTful API |
129 | | -<details> |
130 | | - <summary> REST란 무엇인가요? </summary> |
131 | | - |
132 | | - > REST란 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것을 의미합니다. 구체적으로 설명하자면 HTTP URI를 통해 자원을 명시하고, HTTP Method를 통해 해당 자원에 대한 CRUD 를 적용하는 것을 의미합니다. |
133 | | -
|
134 | | -</details> |
135 | | - |
136 | | -<details> |
137 | | - <summary> 자원이란 무엇인가요? </summary> |
138 | | - |
139 | | - > 자원은 접근할 때 구분이 되는 고유한 아이디이자 해당 소프트웨어가 관리하는 모든 것입니다. |
140 | | -</details> |
141 | | -
|
142 | | -<details> |
143 | | - <summary> REST와 RESTful의 차이는 무엇인가요? </summary> |
144 | | - |
145 | | - > RESTful은 REST의 설계 규칙을 잘 지켜서 만들어진 것을 의미합니다. |
146 | | -</details> |
147 | | -
|
148 | | -<details> |
149 | | - <summary> REST의 구성요소에 대해 설명해주세요. </summary> |
150 | | - |
151 | | - > REST의 구성 요소로는 자원, 행위, 표현이 있습니다. </br> |
152 | | - >- 자원은 URI입니다. 모든 자원에는 고유한 아이디가 존재하고, 이 자원은 서버에 존재합니다. </br> |
153 | | - >- 행위는 Method로 GET, POST, PATCH, DELETE 등의 HTTP Method를 사용합니다. </br> |
154 | | - >- 표현은 클라이언트와 서버가 데이터를 주고받는 응답의 형태로 JSON, XML 등이 있습니다. |
155 | | -
|
156 | | -</details> |
157 | | - |
158 | | -<details> |
159 | | - <summary> REST의 장점은 무엇인가요? </summary> |
160 | | - |
161 | | - >- 통신이 균일하기 때문에 형태에 상관없이 사용할 수 있습니다. |
162 | | - >- HTTP 프로토콜의 인프라를 그대로 사용하기 때문에 REST API 사용을 위한 별도의 인프라를 구축할 필요가 없습니다. |
163 | | - >- HTTP 프로토콜의 표준을 활용하기 때문에 여러 추가적인 장점을 함께 가져갈 수 있습니다. |
164 | | - >- HTTP 표준 프로토콜을 따르는 모든 플랫폼에서 사용이 가능합니다. |
165 | | - >- REST API 메시지가 의도하는 바를 명확하게 나타내므로 의도하는 바를 쉽게 파악할 수 있습니다. |
166 | | - >- 서버와 클라이언트의 역할을 명확하게 분리할 수 있습니다. |
167 | | -
|
168 | | -</details> |
169 | | - |
170 | | -<details> |
171 | | - <summary> REST의 단점은 무엇인가요? </summary> |
172 | | - |
173 | | - >- HTTP 통신할때만 사용이 가능합니다. |
174 | | - >- 행위의 Method 가 제한적입니다. |
175 | | - >- 표준이 존재하지 않습니다. |
176 | | -</details> |
177 | | -
|
178 | | -<details> |
179 | | - <summary> 행위의 Method들의 대해서 설명해주세요. </summary> |
180 | | - |
181 | | - >- GET : 정보를 요청(Read) |
182 | | - >- POST : 정보를 입력(Create) |
183 | | - >- PUT : 정보를 업데이트 (Update) |
184 | | - >- PATCH : 정보의 일부만 업데이트(Update) |
185 | | - >- DELETE : 정보 삭제(Delete) |
186 | | -</details> |
187 | | -
|
188 | | -<details> |
189 | | - <summary> REST가 필요한 이유는 무엇인가요? </summary> |
190 | | - |
191 | | - > 서버가 통신할 때 통신에만 집중이 가능하여 원할한 통신을 할 수 있습니다. 또한 애플리케이션의 분리 및 통합, 다양한 클라이언트의 등장과 최근의 서버 프로그램은 다양한 브라우저와 안드로이드폰, 아이폰과 같은 모바일 디바이스에서도 통신을 할 수 있어야 합니다. 이러한 멀티 플랫폼에 대한 지원을 위해 서비스 자원에 대한 아키텍처를 설계하고 이용하는 방법을 모색한 결과, REST의 필요성이 커지게 되었습니다. |
192 | | -</details> |
193 | | -
|
194 | | -<details> |
195 | | - <summary> REST의 특징중 하나인 무상태성에 대해서 설명해주세요. </summary> |
196 | | - |
197 | | - > 무상태성이란 클라이언트의 context를 서버에 저장하지 않는 걸 의미합니다. 즉, 세션이나 쿠키와 같은 context 정보를 신경쓰지 않아도 되므로 구현이 단순해집니다. 또한 무상태성을 갖게되면 서버는 각각의 요청을 완전히 별개의 것으로 인식하고 처리합니다. |
198 | | -</details> |
199 | | -
|
200 | | -<details> |
201 | | - <summary> URI는 무엇인가요? </summary> |
202 | | - |
203 | | - > 통신을 할 때 사용하는 자원의 고유 아이디로서 URI를 통해 자원을 식별합니다. |
204 | | -</details> |
205 | | -
|
206 | | -<details> |
207 | | - <summary> API란 무엇인지 구체적으로 설명해주세요. </summary> |
208 | | - |
209 | | - > 데이터와 기능을 제공하여 컴퓨터 프로그램간 상호작용을 하며, 서로 정보 교환이 가능하게 해주는 매개체입니다. 즉, 통신을 할 때 정해놓은 규약이나 약속인데 이를 통해 원할하게 통신이 가능합니다. |
210 | | -</details> |
211 | | -
|
212 | | -<details> |
213 | | - <summary> REST 원칙 중, 클라이언트-서버 구조에 대해 설명해주세요. </summary> |
214 | | - |
215 | | - > 클라이언트 응용 프로그램과 서버 응용 프로그램이 서로에 대한 종속성 없이 분리되어 개발되어야 함을 의미합니다. 클라이언트는 서버의 내부 동작에 대한 이해 없이, 리소스 URI만을 알고 동작해야합니다. 서버와 클라이언트는 인터페이스가 변경되지 않는 한 독립적으로 교체 및 개발될 수 있어야 함을 의미합니다. |
216 | | -</details> |
217 | | -
|
218 | | -<details> |
219 | | - <summary> 클라이언트와 서버를 분리해서 개발하는 이유는 무엇인가요? </summary> |
220 | | - |
221 | | - > 클라이언트와 서버를 구분해서 개발하면 각자의 역할이 명확해집니다. 이를 통해 서로 간의 의존성을 최소화하여 개발이 가능하다고 생각합니다. |
222 | | -</details> |
223 | | -
|
224 | | -<details> |
225 | | - <summary> 표현 계층에서 보통 자원을 어떻게 표현하나요? </summary> |
226 | | - |
227 | | - > Client가 자원의 상태에 대한 조작을 요청하면 Server는 이에 대해 응답(표현)을 보내는데, 자원은 `JSON`, `XML`, `TEXT`, `RSS` 등으로 표현되어 나타내질 수 있습니다. 그 중에서도 `JSON` 혹은 `XML`을 통해 전달하는 것이 일반입니다. |
228 | | -
|
229 | | -</details> |
230 | 125 |
|
231 | 126 |
|
0 commit comments