서버의 기초 개념에 대하여

유에·2023년 9월 21일

참조 아티클

✅ 서버의 구성


1️⃣ 온프레미스 서버 (On-premise Server)

  • 자체적으로 보유 및 관리하는 서버
  • 온도가 낮은 서버실에 성능 좋은 컴퓨터를 24시간 가동하며 서버를 운영
  • 작업 용도에 따라 컴퓨터 사양 결정
    • AI작업시 컴퓨터의 그래픽카드를 좋은 사양으로
    • 사용자 접송량이 많거나 긴 시간이 걸리는 작업시 CPU를 좋은 사양으로

2️⃣ 클라우드 서버 (Cloud Server)

  • 타 업체에 사용량을 지불하여 서버 관리를 위임
  • 장점
    • 서버 초기 구성 비용 절감
    • 사용량 급증시 서버 다운을 막을 수 있음
  • 단점
    • 서버 사용량만큼 비용을 지불해야 함
    • 서버 장애 대응에 불편 (네트워크 이슈, 서버 이슈 원인 파악 어려움)



✅ 서버의 종류


1️⃣ DB Server

  • 회원 정보, 게시판 게시글 제목, 내용 등의 내용을 엑셀 파일처럼 보유한 서버
  • 요청이 오면 요청에 해당하는 결과를 리턴

2️⃣ API Server

  • input을 받았을 때 output 데이터를 보내주는 서버
  • example
    • 식당의 메뉴판 ⇒ API 명세서
    • 음식 주문 ⇒ input
    • 음식 배달 ⇒ output
    • 서빙직원, 요리사 ⇒ input을 받아 output을 배달하는 API 서버

3️⃣ WAS Server

  • DB서버에서 데이터를 조회하거나 다른 곳에서 조회한 내용을 가공하여 동적 결과를 리턴하는 서버
  • example ⇒ 식당에 빗대자면 빵, 과일처럼 그대로 내어가는 게 아닌, 스테이크처럼 조리한 뒤 내보내는 기능

4️⃣ WEB Server

  • 정적 데이터를 리턴하는 서버
  • 이미지, 파일 다운로드와 같이 데이터를 따로 가공할 필요 없이 바로 출력할 수 있는 경우 사용
  • 스스로 처리할 수 없는 경우 WAS서버로 위임하는 기능
  • example
    • 식당에서 음식 주문시 국밥 input이 들어오면 주방에 국밥 주문을 전달
    • 김치, 상추, 고추와 같은 밑반찬들은 주방을 거치지 않고 바로 출력

5️⃣ DNS Server

  • 도메인을 IP주소로 변환시켜주는 서버
  • example
    • 주소창에 www.wishket.com을 입력
    • 3.36.6.134와 같은 IP주소로 변환



✅ 서버의 이슈


  • 서버 장애란?
    • 서버가 정상적인 동작을 할 수 없는 현상
    • 서버 이슈 혹은 서버가 죽었는 표현을 쓰기도 함
    • 원인으론 물리적 장애와 소프트웨어 장애가 있다

1️⃣ 물리적 장애

  • 화재, 침수, 정전, 큰 충격과 같은 원인으로 서버 장애가 발생하는 것
  • 랜선이 연결 되지 않았거나 전원이 내려가는 등 컴퓨터의 물리적 장치가 망가졌을 때에도 발생

2️⃣ 소프트웨어 장애

  • 매우 다양한 원인이 존재
  • 개발자의 실수
    • 장애 원인은 수학 문제의 오답 원인을 찾는 과정과 유사
    • 수많은 식을 거꾸로 되짚어가며 원인을 찾음
    • 연산 과정이 아닌 문제 자체가 잘못됐을 때도 있음
    • 혹은 식을 되짚던 중 수학 문제 자체가 바뀌어 발생한 오답일 수 있음
  • 설계 문제, 서버 문제, 코드 문제 등 다양한 원인 존재



📍 여기까지가 어제자 공부한 아티클스터디의 서버 기초 용어에 대한 개념들. 특히 API의 개념이 중요하다 생각하여 API에 관해 좀 더 찾아보았음

✅ API 정의


  • API(Application Programming Interface)의 사전적 정의?
    • “응용 프로그램에서 사용할 수 있도록, 운영 체제 혹은 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스”
    • 쉽게 말하자면 “응용 프로그램(Application)들이 서로 소통하기 위한 접점”으로 요약



✅ API (Application Programming Interface)


1️⃣ API란?

  • API는 Application Programming Interface의 약자로, 응용 프로그램(Application)들이 서로 소통하기 위한 접점

  • 응용 프로그램(Application)이란 운영체제(MacOS, Linux, Window 등)에서 실행되는 모든 소프트웨어
  • 크롬(Chrome) 브라우저, Slack, KakaoTalk, 메모장, Keynote, Excel 등

  • API는 응용 프로그램과 응용 프로그램(Application) 사이에서 소통을 위한 인터페이스(Interface) 즉 접점 혹은 경계면
  • 접점 혹은 경계면은 다른 응용 프로그램이 될 수도 있고, 애플리케이션 내에 어떤 함수가 될 수도

2️⃣ 웹 서비스에서의 API

  • 인스타그램 서비스를 만들고 운영한다고 가정했을 때, 사용자가 서비스를 원활하게 이용하기 위해서 필요한 운영체제 혹은 서버에서 실행되고 있어야하는 애플리케이션은 크게 3가지
    • 첫번째로 사용자에게 웹 사이트를 표출하기 위해 필요한 클라이언트 애플리케이션(ex. Chrome browser)
    • 두번째로 인스타그램 서비스의 모든 정보가 저장되어 있는 데이터베이스 애플리케이션(MySQL, Oracle, Postgres)이 필요
    • 세번째는 이들을 연결하는 API 애플리케이션
  • 여기서 브라우저는 여러가지 이유로 데이터베이스에서 서비스에 필요한 정보들을 직접 요청해서 받아올 수 없음
  • 그렇기 때문에 중간에서 소통해줄 수 있는 인터페이스가 필요
  • 바로 이러한 소통의 역할을 해주는 응용 프로그램(애플리케이션)이 API

profile
hello world

0개의 댓글