테스트 문제: 파이썬 기반 웹서비스 개발

1. 초급 문제

1. 웹 서버와 클라이언트 간의 통신 방식에 대한 설명으로 가장 적절한 것은 무엇인가요? ① 클라이언트는 서버에 정보를 일방적으로 전송한다. ② 서버는 클라이언트의 요청 없이 정보를 주기적으로 전송한다. ③ 클라이언트는 서버에 요청(Request)을 보내고, 서버는 그에 대한 응답(Response)을 한다. ④ 웹 서버와 클라이언트는 P2P 방식으로 직접 통신한다.

정답 **정답:** ③ **설명:** 웹 서비스는 일반적으로 클라이언트-서버 구조를 따릅니다. 클라이언트(예: 웹 브라우저)가 특정 정보를 요청하면, 웹 서버는 해당 요청을 처리하여 결과를 응답으로 클라이언트에게 다시 보냅니다.

2. 다음 중 웹 페이지의 구조와 내용을 정의하는 데 사용되는 언어는 무엇인가요? ① Python ② JavaScript ③ HTML ④ CSS 정답:설명: HTML(HyperText Markup Language)은 웹 페이지의 뼈대를 이루는 마크업 언어로, 텍스트, 이미지, 링크 등 웹 페이지의 내용을 구조적으로 표현합니다.

3. 웹 페이지의 디자인과 스타일을 정의하는 데 사용되는 언어는 무엇인가요? ① Python ② JavaScript ③ HTML ④ CSS 정답:설명: CSS(Cascading Style Sheets)는 HTML로 작성된 웹 페이지의 글꼴, 색상, 레이아웃 등 시각적인 스타일을 정의하여 웹 페이지를 보기 좋게 꾸며줍니다.

4. 다음 중 클라이언트 측에서 웹 페이지의 동적인 동작을 구현하는 데 주로 사용되는 언어는 무엇인가요? ① Python ② JavaScript ③ HTML ④ SQL 정답:설명: JavaScript는 웹 브라우저에서 실행되는 스크립트 언어로, 사용자 인터랙션 처리, 데이터 유효성 검사, 비동기 통신 등 웹 페이지에 동적인 기능을 추가하는 데 사용됩니다.

5. 다음 중 웹 애플리케이션 서버(WAS)에 대한 설명으로 가장 적절한 것은 무엇인가요? ① 웹 페이지의 정적인 콘텐츠를 제공하는 서버이다. ② 클라이언트의 요청을 받아 웹 애플리케이션을 실행하고 그 결과를 응답하는 서버이다. ③ 데이터베이스를 관리하고 저장하는 서버이다. ④ 네트워크 장비 간의 통신을 중계하는 서버이다. 정답:설명: 웹 애플리케이션 서버(WAS)는 동적인 웹 페이지 생성, 데이터베이스 연동, 보안 처리 등 웹 애플리케이션의 실행 환경을 제공하고 클라이언트의 요청을 처리하여 결과를 응답합니다. Python 기반의 Flask나 Django 등이 WAS 환경에서 실행될 수 있습니다.

2. 중급 문제

1. RESTful API 디자인 원칙에 대한 설명으로 가장 부적절한 것은 무엇인가요? ① 각 리소스는 고유한 URI로 식별되어야 한다. ② 모든 요청은 상태를 포함해야 한다. (Stateless) ③ HTTP 메서드(GET, POST, PUT, DELETE 등)를 통해 리소스에 대한 행위를 명확하게 정의해야 한다. ④ 서버와 클라이언트는 동일한 데이터 표현 방식을 사용해야 한다. 정답:설명: RESTful API는 Stateless 원칙을 따릅니다. 이는 각 요청이 이전 요청의 상태에 의존하지 않고 독립적으로 처리되어야 함을 의미합니다. 서버는 클라이언트의 상태를 유지하지 않습니다.

2. Python 웹 프레임워크 Django의 특징으로 볼 수 없는 것은 무엇인가요? ① MTV (Model-Template-View) 디자인 패턴을 따른다. ② ORM (Object-Relational Mapping)을 통해 데이터베이스 연동을 편리하게 지원한다. ③ 강력한 내장 관리자(Admin) 기능을 제공한다. ④ 낮은 수준의 세밀한 웹 기능 개발에 최적화되어 유연성이 매우 높다. 정답:설명: Django는 높은 생산성을 목표로 설계된 프레임워크로, 다양한 기능을 내장하고 있어 빠르게 개발할 수 있다는 장점이 있습니다. 반면, 매우 낮은 수준의 세밀한 기능 개발에는 다른 더 가벼운 프레임워크(예: Flask)가 더 적합할 수 있습니다.

3. Python 웹 프레임워크 Flask에 대한 설명으로 가장 적절한 것은 무엇인가요? ① Django에 비해 더 많은 기능을 기본적으로 제공하며, 대규모 애플리케이션 개발에 적합하다. ② 최소한의 기능만 제공하며, 개발자가 필요한 라이브러리를 직접 선택하여 유연하게 사용할 수 있다. ③ MTV 디자인 패턴을 강제하여 일관된 구조의 애플리케이션 개발을 유도한다. ④ ORM 기능을 내장하고 있어 별도의 라이브러리 설치 없이 데이터베이스를 쉽게 다룰 수 있다. 정답:설명: Flask는 마이크로 웹 프레임워크로서 핵심 기능만 제공하고, 필요한 기능은 확장(Extensions) 형태로 추가하여 사용할 수 있습니다. 이는 개발자에게 높은 자유도와 유연성을 제공합니다.

4. 웹 서비스의 보안을 위해 고려해야 할 가장 중요한 사항은 무엇인가요? ① 웹 페이지의 로딩 속도를 최적화한다. ② 사용자 인터페이스를 직관적으로 설계한다. ③ 사용자 입력 데이터에 대한 적절한 검증 및 처리를 수행하여 보안 취약점을 방지한다. ④ 서버의 하드웨어 사양을 최신으로 유지한다. 정답:설명: 웹 서비스 보안의 핵심은 악의적인 사용자 입력이나 공격으로부터 시스템을 보호하는 것입니다. 이를 위해 입력 값 검증, 데이터베이스 쿼리 방어(SQL Injection 방지), XSS(Cross-Site Scripting) 방지 등 다양한 보안 기법을 적용해야 합니다.

5. 다음 중 비동기 방식으로 클라이언트와 서버 간에 데이터를 주고받기 위해 주로 사용되는 기술은 무엇인가요? ① HTTP Redirect ② Form Submit ③ AJAX (Asynchronous JavaScript and XML) ④ Server-Sent Events (SSE) 정답:설명: AJAX는 웹 페이지 전체를 다시 로드하지 않고도 서버와 비동기적으로 데이터를 주고받아 웹 페이지의 일부분만 업데이트할 수 있도록 하는 기술입니다. 이를 통해 사용자 경험을 향상시킬 수 있습니다.