풀스택 웹개발 부트캠프 8주차 (1)

syxxne·2023년 8월 30일
0

부트캠프

목록 보기
20/42

Server

  • 클라이언트에게 네트워크를 통해 서비스를 제공하는 컴퓨터

Backend & Server

  • 클라이언트 (애플리케이션, 브라우저 등) 의 요청을 컴퓨터가 수행할 수 있도록 하는 작업
  • 서버는 클라이언트의 요청을 늘 수행할 수 있어야 하므로 365일 24시간 다운되지 않고 전원이 켜져 있어야 함
  • 서버 다운 = 장애, 에러 등의 특수한 상황으로 인해 서버가 클라이언트의 요청을 처리할 수 없는 상황
  • 리눅스 (Linux)서버용 윈도우 운영체제를 사용
    • CLI (Command Line Interface) 환경에서 운영하는 것이 대부분
    • 클라이언트의 요청에 대해 안전하게 응답만 하면 되기 때문에 GUI 환경이 필요 없음 + 컴퓨터는 GUI를 운영하는 데에도 자원이 소모됨

HTTP 프로토콜

  • Hypertext Transfer Protocol
  • 인터넷 상에서 데이터를 주고받기 위한 프로토콜
  • 클라이언트 → 서버 : 자원 요청 (request)
  • 서버 → 클라이언트 : 요청을 처리해서 응답 (response)

서버 구축 방법

  1. 본인의 컴퓨터를 직접 서버로 구축
  2. 일정 요금을 내고 외부 서버리를 임대해서 사용
    2-1. 서버 호스팅
    - 서버 한 대 (물리적으로 존재하는 컴퓨터 한 대) 를 통째로 임대
    - 컴퓨터의 작동 환경을 마음껏 유동적으로 설정 가능
    - 자체적인 관리 필요
    - 웹 호스팅에 비해 가격이 비쌈
    2-2. 웹 호스팅
    - 서버 한 대의 일정 저장 공간만을 임대하여 다른 사용자들과 해당 서버를 공유
    - 서버 호스팅에 비해 가격이 저렴
    - 서버 자체를 웹 호스팅 사에서 운영하여 쉽게 이용 가능
    - 트래픽, 용량 등 사용상의 제약이 있을 수 있음

Cloud

  • 언제, 어디서든 인터넷을 통해 접속 가능한 환경
  • MS Office 365, Dropbox, Google Apps 등

Cloud Computing

  • 서버, 네트워크 등의 인프라 전체를 임대
  • 클라우드에 구축된 인프라를 활용하는 서비스
  • 가상화 기술을 사용해 마음대로 서버를 구축하여 운영할 수 있도록 함
  • AWS, MS Azure, GCP, NCP 등

가상화

  • 클라우드에서 가장 중요한 기술
  • 실체가 없다는 의미 ❌
  • 컴퓨터가 어떤 작업을 하기 위해 필요한 물리적인 장치를 소프트웨어로 대체
    • 메모리, 하드디스크, OS 등

Cloud Server

  • 실제 물리적인 컴퓨터 한 대로 서버 운영 ❌
  • VM (Virtual Machine) 으로 서버 운영 ⭕
  • 프로그램으로 컴퓨터 (서버) 를 하나 생성해 이용하는 방법
  • 내가 서버를 관리할 수 있는 root 권한을 가짐
    • root 권한 : 모든 권한을 가진 계정
  • 장점
    • 짧은 시간 안에 서버를 만들 수 있음
    • 물리적인 컴퓨터의 한계를 넘어 무한대의 저장 공간을 이용할 수 있음
    • 이론상 아무리 접속량이 많아도 다운되지 않는 서버를 만들 수 있음

클라우드 유형

퍼블릭 클라우드

  • 클라우드 서버 or 호스팅 공급자가 소유하고 관리
  • 사용한 만큼만 서비스 요금을 지불
  • AWS, NCP 등

프라이빗 클라우드

  • 기업 내부에서 센터를 만듦
  • 조직이 서비스를 운영하며, 조직 외부 사용자 접근 불가능

하이브리드 클라우드

  • 퍼블릭 + 프라이빗 클라우드를 결합해 어플리케이션이 가장 적절한 위치에서 실행되도록 함

Sever 설정

Web Server

  • 웹 서버는 클라이언트의 HTTP 요청을 받아 다양한 처리를 함
  • 정적 파일을 전달하는 서버를 웹 서버라고 함
    • 정적 파일 : 이미지, css, javascript 파일과 같이 클라이언트가 요청할 때, 내용의 변화 없이 응답하는 파일
  • Apache, Nginx, IIS 등

IP 주소와 도메인

IP (Internet Protocol)

  • 인터넷상에서 데이터를 주고받기 위한 통신 규약
  • 스마트폰, 컴퓨터마다 OS가 다르고, 프로그램마다 구현된 언어가 다름
    → 네트워크에서 통신할 수 있도록 프로토콜 필요
  • IP 주소
    • IP 통신에 필요한 고유 주소
    • 데이터를 주고받기 위해 사용되는 주소
  • IPv4
    • 총 32비트
    • 8비트씩 끊어 0~255 사이의 10진수 숫자로 나타냄
    • 각 숫자는 . 기호로 구분
  • IPv6
    • IPv4의 고갈로 채택된 방안
    • 총 128비트
    • 4자리의 16진수 숫자 8개로 표기
    • 각 숫자는 : 기호로 구분

공인 IP vs 사설 IP

공인 IP (Public IP)

  • 외부에 공개되어 있는 IP
  • 서버 구축을 사용하고 우리가 서버에서 사용하는 것도 공인 IP
  • 공개되어 있기 때문에 누구나 검색, 접근 가능
  • 전세계에서 어떤 주소도 중복되지 않음

사설 IP (Private IP)

  • 로컬 IP, 가상 IP라고 불리며, 특정 네트워크 안에서만 사용되는 외부에서 접근할 수 없는 IP
  • 큰 단위로 공인 IP를 할당하고, 그 안에 있는 PC나 가정 / 회사 내에서만 통신하는 IP 할당
  • IPv4 주소 부족 문제를 해결하기 위해 등장했던 방안 중 하나
  • 사내 LAN이나 가정 LAN에서 사용되는 IP 주소

유동 IP vs 고정 IP

유동 IP

  • 변하는 IP - IP 주소를 임시로 발급
  • 기기에 고정적으로 IP를 부여 ❌
  • IP 갱신 주기가 되었을 때 or 기기를 껐다 켰을 때, 남아있는 IP를 골라 기기에 IP를 할당해주는 것

고정 IP

  • 변하지 않고 고정적으로 부여된 IP
  • 사용자가 직접 IP 주소를 입력해 주소를 설정하는 방식
  • IP를 한번 부여받으면, 반납 전까지 해당 IP를 할당

Domain

  • 웹 브라우저를 통해 특정 사이트를 진입할 때, IP 주소를 대신해 사용하는 주소
  • 숫자로 이루어진 IP 주소를 기억하기 어려워 IP 주소에 이름을 부여함
  • 네이버는 도메인 이름으로도 접속할 수 있고, IP 주소로도 접속할 수 있음
    • Domain : www.naver.com
    • IP : 223.130.195.200

URL

  • URL (Uniform Resource Locator)
  • 웹에서 리소스 (HTML 페이지, CSS, 이미지 등) 가 어디 있는지 알려주기 위한 주소

DNS (Domain Name System)

  • 숫자로 이루어진 IP 주소를 외우기는 어렵기 때문에 사람이 외우기 편한 언어로 주소를 사용
  • IP 주소와 도메인 주소를 같다고 지정
    → 사용자들이 도메인 주소를 검색했을 때, 해당되는 IP 주소로 바꿔서 연결되도록 함
  • 브라우저에서 URL 입력 → DNS가 도메인명에 연결된 IP 주소를 확인하여 브라우저에 전달 → 브라우저는 해당 IP 주소로 서버에 접속 (요청) → 서버는 클라이언트에게 응답

0개의 댓글