CS개념-2021.11.29

Jonguk Kim·2021년 11월 29일
0
🔐 Q1. API란 무엇인가?
  • API 는 프로그램들(웹브라우저 ↔ 웹서버)이 서로 상호작용하는 것을 도와주는 매개체
  • API 역할 1. 서버와 데이터베이스에 대한 출입구 역할을 2. 애플리케이션과 기기가 원활하게 통신 가능 3. 모든 접속을 표준화

🔐 Q2. Client와 Sever란 무엇인가?
  1. 클라이언트
    • 서비스를 요청하고 받는 쪽 (고객, 사용자)
    • 웹 브라우저 (크롬)
  2. 서버
    • 네트워크로 연결된 컴퓨터 중 서비스를 제공하는 쪽 (회사)
    • 웹 서버 (구글)

🔐 Q3. WAS란 무엇인가? Web Server와 차이점은 무엇인가?
  1. WAS(Web Application Server)
    • Web Server + Web Container
    • “웹 컨테이너(Web Container)” 혹은 “서블릿 컨테이너(Servlet Container)” 라고 불림
    • DB 조회나 다양한 로직 처리를 요구하는 동적인 컨텐츠를 제공하기 위해 만들어진 애플리케이션 서버
    • HTTP를 통해 컴퓨터나 장치에 애플리케이션을 수행해주는 미들웨어(소프트웨어 엔진)
    • Tomcat, JBoss, Jeus, Web Sphere 등

  1. Web Server
    • 하드웨어: Web 서버가 설치된 컴퓨터
    • 소프트웨어: 웹 브라우저 클라이언트로 부터 HTTP 요청을 받아 정적인 컨텐츠(.html .jpeg .css 등)를 제공하는 컴퓨터 프로그램
    • 정적인 컨텐츠 제공
      • WAS를 거치지 않고 바로 자원을 제공한다.
    • 동적인 컨텐츠 제공을 위한 요청 전달
      클라이언트의 요청을 WAS에 보내고, WAS가 처리한 결과를 클라이언트에게 전달(응답)한다.
    • Apache Server, Nginx, IIS(Windows 전용 Web 서버) 등
  2. Web Server 와 WAS를 구분하는 이유
  • 기능을 분리하여 서버 부하 방지
  • WAS는 DB 조회나 다양한 로직을 처리하느라 바쁘기 때문에 단순한 정적 컨텐츠는 Web Server에서 빠르게 클라이언트에 제공하는 것이 좋음
  • 물리적으로 분리하여 보안 강화
    SSL에 대한 암호화/복호화 처리에 Web Server를 사용
  • 여러 대의 WAS를 연결 가능
  • Load Balancing을 위해서 Web Server를 사용
  • fail over(장애 극복), fail back 처리에 유리
  • 대용량 웹 어플리케이션의 경우(여러 개의 서버 사용) Web Server와 WAS를 분리하여 무중단 운영을 위한 장애 극복에 쉽게 대응
  • 자원 이용의 효율성 및 장애 극복, 배포 및 유지보수의 편의성 을 위해 Web Server와 WAS를 분리
  • Web Server를 WAS 앞에 두고 필요한 WAS들을 Web Server에 플러그인 형태로 설정하면 더욱 효율적인 분산 처리가 가능
🔐 Q4. HTTP 프로토콜이란 무엇인가?
  • HTTP(Hypertext Transfer Protocol)는 인터넷상에서 데이터를 주고 받기 위한 서버/클라이언트 모델을 따르는 프로토콜
  • 애플리케이션 레벨의 프로토콜로 TCP/IP위에서 작동함
  • 어떤 종류의 데이터든지 전송할 수 있도록 설계됨 (HTML문서, 이미지, 동영상, 오디오, 텍스트 문서 등)
  • HTTP Request & HTTP ResponseURL

  • URL(Uniform Resource Locators)

🔐 Q5. Restful API는 무엇인가?
  • HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미
  • REST 기반으로 서비스 API를 구현한 것
  • REST 기반으로 시스템을 분산해 확장성과 재사용성을 높여 유지보수 및 운용을 편리하게 할 수 있음
  • 최근 OpenAPI(누구나 사용할 수 있도록 공개된 API: 구글 맵, 공공 데이터 등), 마이크로 서비스(하나의 큰 애플리케이션을 여러 개의 작은 애플리케이션으로 쪼개어 변경과 조합이 가능하도록 만든 아키텍처) 등을 제공하는 업체 대부분은 REST API를 제공함
profile
개발일지

0개의 댓글