서버와 클라이언트
• 클라이언트(애플리케이션, 브라우저 등)의 요청을 컴퓨터가 수행할 수 있도록 하는 작업 |
• 서버는 클라이언트의 요청을 늘 수행할 수 있어야 하므로 365일 24시간 다운되지 않고 전원 이 켜져 있어야 함 |
• 주로 리눅스(Linux)나서버용 윈도우 운영체제(OS)를 사용 |
• CLI (Command Line Interface) 환경에서 운영하는 것이 대부분 |
• 클라이언트의 요청에 대해 안전하게 응답만 하면 되기 때문에 GUI 환경이 필요 없을 뿐더러 컴퓨터는 GUI를 운영하는데에도 리소스가 소모됨. |
프로토콜이란?
• 사람과 사람이 대화할 때 서로 이해할 수 있는 공용 언어를 사용 (ex. 영어) |
• 컴퓨터와 컴퓨터도 서로 이해할 수 있는 언어를 사용해야함! 콜!! |
• 사전적 정의는 정보를 주고받는 양식과 규칙의 체계 |
• 쉽게 말하면, 컴퓨터 네트워크에서 컴퓨터가 서로 정보를 주고받을 수 있 도록 약속한 규칙 |
• HTTP, HTTPS, FTP, SSH, SMTP 등 |
HTTP 프로토콜
• Hypertext Transfer Protocol |
• 인터넷 상에서 데이터를 주고 받기 위한 프로토콜 (약속) |
• 클라이언트는 서버에게 자원을 요청(request)하고, 서버는 클라이언트에 게 요청을 처리해서 응답(response) |
서버 구축하는 방법 두가지
1. 본인의 컴퓨터를 직접 서버로 구축하는 방법 |
2. 일정 요금을 내고 외부 서버를 임대해 사용하는 방법 Ex. 서버 호스팅, 웹 호스팅 |
2-1. 서버 호스팅 |
서버 한 대(물리적으로 존재하는 컴퓨터 한 대)를 통째로 임대하는 방법 |
2-2. 웹 호스팅 |
서버 한 대의 일정 저장공간만을 임대하여 다른 사용자들과 해당 서버를 공유하는 방법 |
호스팅 방법
호스팅 방법 | 의미 |
• 서버 호스팅 | • 자체적인 관리 필요 • 컴퓨터의 작동 환경을 마음껏 유동적으로 설정 가능 • 웹 호스팅에 비해 가격이 비쌈 |
• 웹 호스팅 | • 서버 호스팅에 비해 가격이 저렴 • 서버 자체를 웹 호스팅 사에서 운영, 쉽게 이용이 가능함 • 트래픽, 용량 등 사용상의 제약이 있을 수 있음 |
• 클라우드 컴퓨팅(Cloud Computing) | • 서버, 네트워크 등의 인프라 전체를 임대해주는 서비스 • 클라우드에 구측된 인프라를 활용하는 서비스 • 가상화 기술을 사용해 마음대로 서버를 구축하여 운영할 수 있도록 함 • AWS, Microsoft Azure, GCP, NCP |
클라우드 컴퓨팅에서의 가상화
• 클라우드에서 가장 중요한 기술 |
• 실체가 없는 것을 의미하지 않음 |
• 컴퓨터가 어떤 작업을 하기 위해 필요한 물리적인 장치를 소프트웨어로 대체 |
• 메모리, 하드디스크, 운영체제(OS) 등 |
클라우드 서버
• 실제 물리적인 컴퓨터 한 대로 서버를 운영하는 것이 아닌 VM(Virtual Machine, 가상 머신)으로 서버를 운영하는 방식 |
• 프로그램으로 컴퓨터(서버) 를 하나 생성해 이용하는 방법 |
• 내가 서버를 관리할 수 있는 root 권한을 가짐 |
클라우드 서버의 장단점
• 짧은 시간 안에 서버를 하나 뚝딱 만들 수 있다. |
• 물리적인 컴퓨터의 한계를 넘어 무한대의 저장공간을 이용할 수 있다. |
• 이론상 아무리 접속량이 많아도 다운되지 않는 서버를 만들 수 있다. |
• 그러나, 사용한 트래픽 만큼 요금을 지불해야 한다. |
클라우드 유형
클라우드 유형 | 내용 |
• 퍼블릭 클라우드 | • 클라우드 서버 or 호스팅 공급자가 소유하고 관리 • 사용한 만큼만 서비스 요금을 지불 |
• 프라이빗 클라우드 | • 기업내부에서 센터를 만듦 • 조직이 서비스를 운영하며, 조직 외부 사용자 접근 불가능 |
• 하이브리드 클라우드 | • 퍼블릭/프라이빗 클라우드를 결합해 애플리케이션이 가장 적절한 위치에서 실행되도록 함 |
웹 서버
• 웹 서버는 클라이언트의 HTTP 요청을 받아 다양한 처리를 함 |
• 정적 파일을 전달하는 서버를 웹 서버라고 함 |
• 정적 파일(static file)이란? |
• 이미지, css, javascript 파일과 같이 변경되지 않는 파일 |
• 클라이언트가 요청할 때 변하는 내용없이 응답하는 파일 |
• 대표적인 웹 서버로는 Nginx, Apache, IIS 등이 있음 |
Apache (아파치) 웹 서버
• http 표준을 준수하도록 구축된 오픈 소스 형식의 웹 서버 |
• 오래 사용되어 온 만큼 거의 모든 OS에서 실행이 가능하고, 다양한 모듈을 갖고 있다. |
• 아마존, 네이버 클라우드 플랫폼 등을 통해 서버를 연결한 다음, 설치해야 함. |
# sudo apt-get update |
# sudo apt-get install apache2 |
IP 주소
• 인터넷상에서 데이터를 주고받기 위한 통신 규약(약속) |
• 운영체제, 프로그램마다 구현된 언어가 다르기에 네트워크에서 통신하게끔 프로토콜(공통된 통신 규약)이 필요 |
• IP 통신에 필요한 고유 주소(Adress) |
• 데이터를 주고 받기 위해 사용되는 주소(Address) |
내 PC의 IP를 확인하는 방법\
• (window) ipconfig |
• (mac) ifconfig | grep inet |
IP 주소 (IPv4)
• 32비트, 8비트씩 끊어 0~255 사이의 10진수 숫자로 나타냄. |
• 각 숫자는 점(.) 기호로 구분 |
IP 주소 (IPv6)
• IPv4의 고갈로 채택된 방안 |
• 128비트, 4자리의 16진수 숫자 8개로 표기 |
• 각 숫자는 콜론(:) 기호로 구분 |
비트(bit)란?
•컴퓨터가 이해하는 정보는 모두 0과 1로만 변환되어 메모리에 저장됨 |
• 즉, 숫자, 문자, 특수문자를 2진수의 형태로 변환하여 나타낸 것 |
공인 IP vs 사설 IP
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를 부여하지 않고 IP 갱신주기가 되었을 때 기기를 껐다 켰을 때 남아 있는 IP를 골라 기기에 IP를 할당해주는 것 | |
• 고정 IP | • 변하지 않고 고정적으로 부여된 IP |
• 사용자가 직접 IP 주소를 입력해 주소를 설정하는 방식 | |
• IP를 한 번 부여 받으면 반납 전까지 해당 IP를 할당 |
도메인 (Domain)
• 웹 브라우저를 통해 특정 사이트를 진입할 때, IP 주소를 대신해 사용하는 주소 |
• 숫자로 이루어진 IP 주소를 기억하기 어려워 IP 주소에 이름을 부여함 |
• 전세계 모든 사이트는 도메인 이름으로 접속할 수 있고, IP로도 접속이 가능하다. |
EX) 네이버는 www.naver.com으로도, 223.130.195.200으로도 접속이 가능하다. |
URL과 도메인(Domain)
• URL(Uniform Resource Locator), 웹 주소라고도 함 |
• 웹에서 리소스(HTML 페이지, CSS, 이미지 등)가 어디 있는지 알려주기 위한 주소 |
DNS (Domain Name System)
• 숫자로 이루어진 IP 주소를 외우기는 어렵기에 사람이 외우기 편한 언어로 주소를 사용 |
• IP 주소와 도메인 주소가 같다고 지정해서, 사용 자들이 도메인 주소를 검색했을 때 해당되는 IP 주소로 바꿔서 연결 되도록 함 |
브라우저에서 URL 입력
1. DNS가 도메인명에 연결된 IP 주소 확인하여 브라우저에게 전달 |
2. 브라우저는 해당 IP 주소로 서버에 접속(요청) |
3. 서버는 클라이언트에게 응답 |
'국비지원 공부 정리 > 네트워크 공통' 카테고리의 다른 글
Socket.io의 기본적 사용법 (0) | 2025.03.29 |
---|---|
TCP/IP 와 WebSoket (0) | 2025.03.29 |
데이터 암호화란? (0) | 2025.03.29 |
환경변수? (0) | 2025.03.28 |
Cookie, Session (0) | 2025.03.27 |