network 용어 정리

김하람·2022년 5월 4일
0

network

목록 보기
1/1

server, client

  • server
    클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 컴퓨터 시스템으로 컴퓨터 프로그램 또는 장치를 의미한다.

  • client
    네트워크를 통해 서버라는 다른 컴퓨터 시스템 상의 원격 서비스에 접속할 수 있는 응용 프로그램이나 서비스

protocol

  • 컴퓨터와 컴퓨터 사이, 또는 한 장치와 다른 장치 사이에서 데이터를 원활히 주고받기 위하여 약속한 여러 가지 규약.
    -> 이 규약에는 신호 송신의 순서, 데이터의 표현법, 오류 검출법 따위가 있다.
  • 웹에서 이루어지는 데이터 통신 방식
  • 클라이언트 요청이 있을 때 서버가 응답하고 전송 후 연결을 종료하는 단방향 통신
  • 클라이언트의 요청이 반드시 선행되어야 한다.
  • 단방향 통신이므로 정보를 주고 나면 바로 연결이 종료된다. 보기에는 서버가 연결되고 있는 것처럼 보이지만 연결은 종료되고, 우리는 로컬에서 보고 있는 것이다.

http, https

  • http
    -> hyper text transfer protocol의 약자이다.
    -> 기본 포트 : 80
    -> 인터넷에서 정보를 주고 받기 위한 프로토콜
    -> 암호화가 되지 않아서 보안에 취약하다는 특징이 있다.
  • https
    -> hyper text transfer proocol secure의 약자이다.
    -> 기본 포트 : 443
    -> HTTP + SSL
    -> 네트워크에서 제 3자가 볼 수 없도록 공개키 암호화를 지원한다.
    -> SSL 디지털 인증서 : 공인된 제 3자 업체가 보증해주는 전자 문서. 제 3자 업체에서 구매해 설정을 해야지만 사용할 수 있다.

apache, iis, tomcat, nginx

  • apache
    -> HTTP 웹 서버용 소프트웨어이다.
    -> 세계에서 가장 많이 쓰는 웹 서버 중 하나이다.
    -> 구축이 쉽지만 무겁다는 특징이 있다.
    -> 클라이언트에서 요청하는 HTTP요청을 처리하는 웹서버
  • iis
    -> IIS는 Internet Information Sevices 의 약자
    -> 마이크로소프트 원도우를 사용하는 서버들을 위한 인터넷 기반 서비스들의 모임
    -> 아파치 웹서버에 이어 세계에서 두번째로 가장 잘 알려진 웹서버
    -> ASP 스크립트 언어를 사용할 수 있다.
    -> 마이크로소프트에서 제공하는 윈도우 OS에서만 사용이 가능하다.
  • tomcat
    -> 톰캣 WAS(web application server) (컨테이너, 웹 컨테이너, 서블릿 컨테이너로도 불림)
    -> JAVA EE 기반으로 만들어졌다.
    -> JSP와 Servlet을 구동하기 위한 서블릿 컨테이너 역할을 수행
    -> 아파치서버와는 다르게 DB연결, 다른 응용프로그램과 상호 작용 등 동적인 기능들을 사용할 수 있다.
    -> DB처리와 같은 동적인 기능들을 가공하여 HTML파일로 만들어 클라이언트에게 제공
    -> 기본 포트 : 8080
  • nginx
    -> 클라이언트로부터 요청을 받았을 때 요청에 맞는 정적 파일을 응답해주는 HTTP Web Server로 활용되기도 한다.
    -> Reverse Proxy Server로 활용하여 WAS 서버의 부하를 줄일 수 있는 로드 밸런서로 활용되기도 한다.
    -> 한 개 또는 고정된 프로세스만 생성하여 사용하고, 비동기 방식으로 요청들을 Concurrency 하게 처리할 수 있다.
    -> 새로운 요청이 들어오더라도 새로운 프로세스와 쓰레드를 생성하지 않기 때문에 프로세스와 쓰레드 생성 비용이 존재하지 않는다.

mysql, oracle, mariaDB, ms sql server

  • mysql
    -> MySQL은 가장 널리 사용되고 있는 관계형 데이터베이스 관리 시스템(RDBMS: Relational DBMS)이다.
    -> MySQL은 오픈 소스이며, 다중 사용자와 다중 스레드를 지원한다.
    -> C언어, C++, JAVA, PHP 등 여러 프로그래밍 언어를 위한 다양한 API를 제공한다.
    -> 유닉스, 리눅스, 윈도우 등 다양한 운영체제에서 사용할 수 있으며, 특히 PHP와 함께 웹 개발에 자주 사용된다.
    -> 오픈 소스 라이센스를 따르기는 하지만, 상업적으로 사용할 때는 상업용 라이센스를 구입해야만 한다.
    -> 참고 : http://www.tcpschool.com/mysql/mysql_intro_intro

  • oracle
    -> Oracle Corporation이란 미국의 기업에서 만든 데이터 베이스 관리 시스템
    -> Database 에서 가장 많이 쓰이며, 기능 또한 가장 좋은 것으로 알려진 최고의 Database 이다.
    -> 참고 : https://opentutorials.org/course/3885

  • mariaDB
    -> MySQL코드를 기반으로 개발된 오픈소스 RDBMS
    -> MySQL과 소스코드가 같으므로 명령어, 사용방법과 구조가 MySQL과 동일
    -> 리눅스(linux)에서는 MySQL 대신에 MariaDB를 표준으로 채택하고 있다.

  • ms sql server
    -> ms는 마이크로 소프트의 약자이다.
    -> SQL Server는 데이터베이스를 저장하고 있으면서 클라이언트의 데이터 검색 및 수정 삭제에 대한 요청을 받아 처리하고 그 결과를 클라이언트에게 전달
    -> 클라이언트로부터 요청(쿼리문)을 받아 그 결과을 클라이언트에게 전달해주는 데이터베이스 관리시스템(DBMS)이라고 할 수 있다.
    -> 데이터베이스관리시스템 중에서도 관계형데이터베이스(RDB)를 관리하는 관계형데이터베이스관리시스템(RDBMS)이다.

front-end, back-end, full stack

  • front-end
    사용자가 보는 페이지를 구성한다.

  • back-end
    백엔드는 소프트웨어 개발 프로세스에서 서버 측 개발 분야. 백엔드에서는 데이터를 저장하고 관리하며, 웹사이트의 클라이언트 측(Client-side)에서 모든 것이 매끄럽게 작동할 수 있게 한다.

  • full stack
    = front-end + back-end

html, css, javascript

  • html
    -> Hyper Text Markup Language의 약어이다.
    -> HyperText(웹 페이지에서 다른 페이지로 이동할 수 있도록 하는 것) 기능을 가진 문서를 만드는 언어
    -> 웹 페이지를 위한 마크업 언어

  • css
    -> Cascading Style Sheets의 약어이다.
    -> 사용자에게 문서를 표시하는 방법을 지정하는 언어
    -> HTML로 문서의 뼈대를 만들면, Css는 글꼴이나, 글자 색 등을 지정하여 꾸미는 역할을 한다.

  • javascript
    -> HTML과 CSS로 만들어진 웹페이지를 동적으로 변경해주는 언어이다.

ssh, ftp, sftp

  • ssh
    -> 네트워크 상의 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해주는 응용 프로그램 또는 그 프로토콜을 가리킨다.
    -> 즉, 네트워크 프로토콜 중 하나로 컴퓨터와 컴퓨터가 인터넷과 같은 Public Network를 통해서 서로 통신을 할 때 보안적으로 안전하게 통신을 하기 위해 사용하는 프로토콜이다.
    -> 포트 번호 : 22

  • ftp
    -> 파일 전송 프로토콜(File Transfer Protocol)의 약자이다.
    -> TCP/IP 네트워크(인터넷)상의 장치가 파일을 전송할 때 사용하는 규칙
    -> FTP란 파일을 이동할 때 사용하는 프로토콜이라고 볼 수 있다.
    -> 포트 번호 : 21

  • sftp
    -> 파일을 보내고 다운 받기 위한 전송 프로토콜이다.
    -> secure FTP
    -> SSH와 마찬가지로 전송시 암호화시켜서 전송을 하게 되는데 그 중에 FTP와 같이 파일을 전송할 때 암호화 시켜서 전송
    -> 포트 번호 : 22

Ethernet, Router, LAN, WAN

  • Ethernet
    -> 컴퓨터 네트워크 기술의 하나로, 전세계의 사무실이나 가정에서 일반적으로 사용되는 LAN에서 가장 많이 활용되는 기술 규격
    -> 이더넷은 네트워킹의 한 방식
    -> 네트워크를 만드는 방법 중 하나라고 생각하면 된다.

  • Router
    -> 컴퓨터 네트워크 간에 데이터 패킷을 전송하는 네트워크 장치다.

  • LAN
    -> Local Area Network의 약어이다.
    -> 어느 한정된 공간에서 네트워크를 구성한다는 것
    -> 지역 네트워크

  • WAN
    -> Wide Area Network
    -> 서로 멀리 떨어진 곳을 네트워크로 연결하는 것
    -> 광역 네트워크

tcp/ip, encapsulation, decapsulation

  • tcp/ip
    -> 컴퓨터 사이의 통신 표준 및 네트워크의 라우팅 및 상호연결에 대한 자세한 규칙을 지정하는 프로토콜 스위트
    -> 인터넷에서 광범위하게 사용되며 이를 통해 학회, 대학, 정부, 기업에서 서로 통신할 수 있다.

  • encapsulation
    -> 객체가 기능을 어떻게 구현 했는지 외부에 감추는 것
    -> 외부에 영향 없이 객체 내부 구현 변경 가능

  • decapsulation
    -> 추가 정보를 제거하고 수신지의 계층까지의 응용 데이터만을 보내는 것
    예) 포장되어 있는 것을 제거하는 것.

ip address, port, socket, DHCP

  • ip address
    인터넷 상에서 호스트를 식별하기 위해 사용되는 숫자로 이루어진 주소

  • port
    IP 내에서 애플리케이션 상호 구분(프로세스 구분)을 위해 사용하는 번호

  • socket
    -> 네트워크상에서 동작하는 프로그램 간 통신의 종착점(Endpoint)이다.
    -> 즉, 프로그램이 네트워크에서 데이터를 통신할 수 있도록 연결해주는 연결부라고 할 수 있다.

  • DHCP
    -> 호스트의 IP주소와 각종 TCP/IP 프로토콜의 기본 설정을 클라이언트에게 자동적으로 제공해주는 프로토콜
    -> 네트워크 안에 컴퓨터에 자동으로 네임 서버 주소, IP주소, 게이트웨이 주소를 할당해주는 것을 의미한다.
    -> 해당 클라이언트에게 일정 기간 임대를 하는 동적 주소 할당 프로토콜

domain name, DNS(Domain name system)

  • domain name
    IP Address를 사람이 기억하기 위해 만든 주소. 도메인 주소를 줬을 때 IP 주소를 찾는 역할을 한다.

  • DNS
    할당 된 도메인 영역에 대한 IP 주소와 Domain 이름을 저장한다.

network utility : ifconfig, ip, netstat, host, hostname, traceroute

  • ifconfig
    현재 연결 되어 있는 네트워크 정보를 알려준다.

  • ip
    컴퓨터 통신망에 정보를 제공하는 사람이나 기업.

  • netstat
    전송 제어 프로토콜, 라우팅 테이블, 수 많은 네트워크 인터페이스, 네트워크 프로토콜 통계를 위한 네트워크 연결을 보여주는 줄 도구이다.

  • host
    네트워크에 연결되어 있는 컴퓨터들

  • hostname
    네트워크상의 장치 (호스트)에 할당 된 레이블 (이름)이며 특정 네트워크 또는 인터넷을 통해 하나의 장치를 다른 장치와 구별하는 데 사용된다.

  • traceroute
    원격 시스템에 대한 IP 패킷의 경로를 추적한다.
    이를 사용하면 잘못된 경로 지정 구성 및 경로 지정 경로 오류를 찾을 수 있다.

domain name : nslookup, ping

  • nslookup
    nslookup 명령어는 네트워크 디버깅을 위해 자주 사용되는 리눅스 명령어로, DNS 서버에 직접 DNS 쿼리를 하고 그 결과를 출력한다.

  • ping
    IP 네트워크를 통해 특정한 호스트가 도달할 수 있는지의 여부를 테스트하는 데 쓰이는 컴퓨터 네트워크 도구 중 하나이다.

0개의 댓글