참조 아티클
✅ 서버의 구성
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
