반응형
반응형

📝미들웨어 (Middleware)

  • 시스템 소프트웨어 관점
    • 클라이언트와 서버 간의 통신을 담당하는 시스템 소프트웨어 또는 컴퓨터와 컴퓨터의 연결을 담당하는 시스템 소프트웨어 (Putty, MobaXterm, Heidisql 등)
  • 코딩 관점
    • 웹 개발에서 "미들웨어"는 주로 웹 애플리케이션에서 요청과 응답을 처리하는 과정에서 중간에 위치하여 어떠한 기능을 추가하거나 요청/응답을 변형하는 역할 예를 들면 로깅, 세션 관리, 인증, 압축 등의 기능을 미들웨어로 추가할 수 있습니다

 

📝리플리케이션 매니저

DB서버 완전한 백업 및 재해 복구 역할

 

📝UMS

통합메시징 서비스 (SNS, 카톡 등 메시지 보내는 서비스)

 

📝Queuing

여러가지 큐처리 방식이 있지만 일반적인 큐라는 건 선입 선출이다 (먼저 input된 것이 ouput된다)

 

반응형
반응형

📝카멜 케이스

중간 글자들은 대문자로 시작하지만 첫 글자가 소문자 → var camelCase 

 

📝파스칼케이스

첫 글자와 중간 글자들이 대문자 → var PascalCase

 

📝스네이크케이스

언더바(_) 가 들어 있는 표현 방식 → var snake_case

 

📝SCREAMING_SNKAE_CASE

모두 대문자 + 스네이크케이스가 들어 있는 표현 방식 → var SCREAMING_SNAKE_CASE

 

📝케밥 케이스

하이픈으로 단어 연결해 표기하는 방식 → className="nav-button"

 

📝공개키 (비대칭 키)

사람들에게 공개된 키로 정보 암호화 가능 (클라이언트가 암호화해서 서버에 전달)

 

📝비밀키

암호를 풀 수 있는 키로 즉, 복호화키를 의미한다

 

📝개인키

공개키랑 쌍을 이루는 암호를 풀 수 있는 키로 즉, 공개키의 복호화키이다.

 

📝대칭키

암호화할 때 사용하는 키와 복호화할 때 사용 키가 동일한 것을 의미한다.

반응형
반응형

📝강인공지능

완전히 인간의 지성을 모방한 것 사람 그 자체라고 생각할 수 있다 (도달하기 힘든 현실)

 

📝약인공지능

인간 지능을 목표로 하기보다는 더 현실적으로 실용적인 걸 목표 (사람들이 쓴 글자 구분하기 등..)

 

📝AR

증강현실 현실 세계의 기반 위에 가상의 사물을 합성하여 현실 세계만으로는 얻기 어려운 걸 더욱 현실감 있게 보는 목적 증강현실은 현실 세계를 보완하는 것 (50% 가상 50% 현실)

→ 포켓몬GO를 보면 직접 들어가는건 아니지만 핸드폰으로 나오는 포켓몬(가상)과 카메라로 보여지는 실제 환경(현실)

 

📝VR

가상현실을 컴퓨터 안에 또다른 현실을 구축 즉, 내가 조작되고 창작된 공간으로 들어가는 것 (100% 가상)

 

📝클라우드

가상화된 서버에 프로그램을 두고 필요할 때마다 스마트폰으로 불러와서 사용이 가능 서버를 직접 구매해서 집이나 회사에 두는 게 아니고 구글에서 서버를 이미 두고 그걸 우리가 쓰는 형식

 

📝디지털트윈

컴퓨터에 현실 속 사물의 쌍둥이를 만들고, 현실에서 발생할 수 있는 상황을 컴퓨터로 시뮬레이션함으로써 결과를 미리 예측하는 기술이다

 

디지털 트윈

📝메타버스

메타버스는 초월, 가상을 의미하는 메타(Meta)와 우주, 세계를 뜻하는 유니버스(Universe)의 합성어가상과 현실을 자유롭게 오가며 가상 사무실에서 일하고 가상화폐로 소비를 즐길 수 있다

밑에 사진을 보면 이해가 쉬울 거다 저렇게 가상현실에 들어가 실제로 움직이며 즐기거나 일을 하거나 등을 할 수 있게 한다.

코로나 때문에 학교 축제를 못 즐기는 사람들을 위해 학교에서 이런식으로라도 준비했다 

📝IoT

각종 사물에 센서와 통신 기능을 내장하여 인터넷에 연결하는 기술

 

  • 활용 사례
    • 스마트 전구
    • 조명색상이 자동으로 변하는 스마트 전구 , 스마트폰으로 조종이 가능하다
    • 스마트 스위치 → 전등 등을 직접 손으로 안 사용하고 스마트폰으로 껐다 켰다 할 수 있다.
반응형
반응형

📝 HTTP

HTTP는 Hyper Text Transfer Protocol의 약자로 인터넷에서 데이터를 주고받을 수 있는 프로토콜입니다.

데이터를 암호화하지 않고 평문으로 전송합니다. 즉, 네트워크를 통해 전송되는 데이터가 그대로 노출될 수 있습니다. 그래서 패킷 스니핑 공격에 취약합니다.

📝 HTTPS

하이퍼 텍스트 전송 프로토콜 보안(Hypertext Transfer Protocol Secure) 즉 보안 프로토콜을 추가시킨다.

 

 

HTTPS 인증 과정

  1. Client에서 브라우저에서 사용할 수 있는 암호화 알고리즘 목록과 TLS 버전 목록을 Server에 전달
  2. 서버에서 사용할 수 있는 TLS버전 선택
  3. 서버는 클라이언트에게 디지털 인증서 제공
  4. 클라이언트에서 디지털 인증서에 있는 CA 서명이 정상적인지 체크
  5. 클라이언트에서 프리 마스터 시크릿(48바이트 랜덤 값) 생성 후 공개키로 암호화해 서버에 전송
  6. 서버에서는 프리 마스터 시크릿을 복호화해 세션 키를 생성해 위 과정을 거치지 않고 이것만 체크해서 사용합니다.

 

📝 HandShake

악수라는 뜻으로 정상적인 통신을 하기 전에 일련의 과정을 통해 연결을 성립시키는 것을 의미한다.

 

📝 3 way HandShake

  • A : 내 말이 들리니?
  • B : 잘 들려 내 말은 들려?
  • A : 잘 들려!


위와 같이 3단계를 거치는 연결 확인 작업을 의미한다.

 

📝 4 way HandShake

  • A : 이제 연결 끊을게 ~
  • B : 알겠어 잠시만 기다려줘
  • B : 나도 끊을게
  • A : 알겠어!


위와 같이 4단계를 거쳐서 연결을 끊는 작업을 의미한다.

 

📝 소켓 통신 (Socket)

Server와 Client가 계속 연결을 유지하는 양방향 통신으로 Streaming 중계나 주식 현황과 같이 즉각적인 정보를 주고 받는 경우 사용합니다

이렇게 계속적으로 연결을 유지하려면 HTTP를 사용할 경우 연결 시간을 엄청 길게 잡는 수 밖에 없습니다

또한 100명의 채팅방이 있는 경우에 100개의 HTTP 통신을 요청을 매번 해야하는 엄청난 리소스가 낭비가 있습니다

채팅방의 경우 HTTP로도 만들 수 있지만 매우 복잡해지게 됩니다

이러한 문제를 해결하기 위해서 나온게 소켓통신입니다

연결을 계속 유지하며 브로드캐스트를 이용해 모든 연결된 사람들에게 데이터를 전송합니다 만약 필터링을 해야하면 서버에서 로직을 주어서 제어를 합니다

 

📝 프로토콜 (Protocol)

컴퓨터와 컴퓨터 사이 또는 한 장치와 다른 장치 사이에서 데이터를 원활히 주고받기 위하여 약속한 여러 가지 규약
(서로 다른 나라 사람이 모국어로 이야기 하면 말이 안 통하는 것)

서로 간의 호출할 때 파라미터와 리턴값의 정의 또한 프로토콜이다.

반응형
반응형

📝이더넷 어뎁터 

이더넷 어댑터는 유선 연결을 통해 컴퓨터를 인터넷이나 로컬 네트워크에 연결해줍니다.

이더넷 어뎁터

📝게이트웨이 (라우터)

네트워크(segment)에서 다른 네트워크로 이동하기 위하여 거쳐야 하는 지점입니다.

게이트웨이(Gateway)는 서로 다른 네트워크(이기종 네트워크)를 연결해줍니다.

모뎀은 게이트웨이 역할인 것입니다 그리고 게이트웨이는 남는 사설IP중 하나를 쓰게 됩니다.

 

IP 주소와 기본 게이트웨이 주소를 비교해봅시다.

119.197.66이 공통된 것을 볼 수 있습니다. 다른 점은 맨 뒤의 숫자가 다른 것을 볼 수 있습니다.
즉. PC와 게이트웨이 사이에 설정된 네트워크 ID가 동일하다고 볼 수 있습니다.

동일한 네트워크 ID를 공유하는 장치들의 공간 LAN이라고합니다.

이렇게 동일한 네트워크 ID라는 LAN이란 공간은 같은 모뎀(일반적으로 공유기를 의미)을 사용한다는 의미입니다.

 

네트워크 간 데이터를 전송할 때 거치는 장소로 게이트웨이가 존재하지 않으면 데이터가 외부로 나갈 수 없다(즉 인터넷 사용 못함) → 공유기로부터 데이터가 들어오고 나가기 때문이다.

 

📝랜카드

네트워크랑 연결해주는 유선 인터페이스를 지원하고 무선연결도 지원해준다. 통신하기 위한 고유한 맥주소가 저장되어있다.

 

 

📝MAC 주소

통신기기 하드웨어에 부과되는 고유한 물리적 주소 48bit로 구성 (00:0a:... 콜론6개로 구성)

데이터 링크 계층에서 사용되며 로컬 네트워크에서 장치 식별과 데이터 전송을 담당합니다.

 

📝네트워크 주소

192.168.0.177, 192.168.0.43두 아이피 주소는 동일한 네트워크 주소를 가졌다고 볼 수 있다. 192.16.0.X

 

📝브로드캐스트 주소

해당 네트워크 내부의 모든 기기들에게 한번에 데이터를 전송하기 위한 용도로 사용되는 전용 IP 주소로 서브넷 대역대의 255로 기본적으로 할당됩니다

 

브로드 캐스트 서버로 메세지 보내기

 

import socket

# Press the green button in the gutter to run the script.
if __name__ == '__main__':
    # UDP 소켓 생성
    sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

    # 브로드캐스트를 허용하도록 설정
    sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)

    # 브로드캐스트 주소와 포트 번호 설정
    broadcast_address = ('172.30.1.255', 12345)

    # 브로드캐스트 메시지 전송
    message = b'Hello, Network!'
    sock.sendto(message, broadcast_address)

    # 소켓 닫기
    sock.close()

 

클라이언트 (브로드캐스트 구독)

import socket


# Press the green button in the gutter to run the script.
if __name__ == '__main__':
    # 수신 소켓 생성 (UDP)
    sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

    # 모든 네트워크 인터페이스에서 수신하기 위해 빈 문자열로 바인딩
    sock.bind(('', 12345))  # 포트는 메시지를 보낼 때 사용한 포트와 동일해야 합니다.

    print("브로드캐스트 메시지 수신 대기 중...")

    while True:
        # 메시지를 수신
        data, addr = sock.recvfrom(1024)  # 최대 1024 바이트의 데이터 수신
        print(f"Received message: {data.decode()} from {addr}")

위 코드는 브로드 캐스트 주소를 이용해 해당 주소로 요청을 보내면 그걸 구독하고 있는 클라이언트가 메시지를 받는 예제입니다.

 

 

🔗 참고 및 출처

https://take-a-step-first.tistory.com/118

반응형
반응형

📝클래스 종류

 

📝A 클래스

첫번 째 자리 네트워크ID 이고 나머지가 호스트ID가 됩니다. (같은 네트워크ID면 동일한 네트워크입니다.)

예) 117.80.55.2 (네트워크ID : 117 , 호스트ID : 80.55.2)

A클래스 네트워크ID는 0~127로 128개 이고 호스트ID는 255^3 입니다. (통신회사에서 주로 사용합니다.)

네트워크 ID는 위에 사진 처럼 정해져있습니다

 

📝B 클래스

첫번째, 두 번째 자리 네트워크ID 이고 나머지가 호스트ID가 됩니다.

예) 117.80.55.2 (네트워크ID : 117.80 , 호스트ID : 55.2)

 

📝C 클래스

첫 번째, 두 번째 , 세 번째 자리 네트워크 ID 이고 나머지가 호스트 ID가 됩니다.

예) 117.80.55.2 (네트워크ID : 117.80.55 , 호스트ID : 2)

 

📝서브네팅

네트워크 성능 보장, 자원을 효율적으로 분배하기 위해 네트워크 영역과 호스트 영역을 쪼개는 작업

동일한 네트워크 ID를 가지면 같은 로컬 네트워크에 있다고 판단한다.

 

📝서브넷마스크 (표기법)

서브네팅을 하기 위한 서브넷마스크 작성 방식입니다. 개인적으로 CIDR 표기법을 먼저 알고 그걸 SubnetMask 방식으로 필요할 때 변환시키는 게 이해하기 쉬운 것 같다.

 

IP는 총 32비트로 구성되어있고 영역 하나씩 8비트를 차지한다. CIDR /26인 경우는 3개의 영역의 비트(24)와 2비트가 남는데 2^2 = 4개의 서브넷으로 이루어지고 256을 4로 나누면 64의 영역0 ~ 63, 64 ~ 127, 128 ~ 191, 192 ~ 256이 해당된다. 즉 4개의 네트워크 영역으로 나뉘게 된다.

 

 

📝CIDR 표기법

IP주소와 서브넷마스크를 한번에 표현한다.

  • 192.168.10.1/24
    • IP 주소는 192.168.10.1이고 서브넷마스크 → 255.255.255.0이라는 표시

 

 

https://m.blog.naver.com/seoulcheer/222253792170

반응형
반응형

📝DMZ

DMZ(비무장 지대)는 외부 네트워크와 내부 네트워크 사이의 중립 구역입니다. 외부에서 접근해야 하는 서버(예: 웹 서버, 메일 서버)를 DMZ에 배치하고, 내부 네트워크를 보호합니다. 방화벽은 외부에서 DMZ로의 트래픽을 허용하고, DMZ에서 내부 네트워크로의 트래픽을 제한하는 역할을 합니다.

 

📝방화벽

네트워크간의 트래픽을 감시하고 제어하는 역할로 허용된 트래픽만 내부 트래픽으로 들어오거나 나갈 수 있도록 할 수 있습니다. (인바운드, 아웃바운드)

 

📝인바운드 규칙

외부에서 내부 네트워크로 들어오는 트래픽을 이야기합니다. 예를 들면 443인 HTTPS 포트는 허용하지만 FTP 포트 21은 차단할 수 있습니다. (기본적으로 모든 것 차단)

 

📝아웃바운드 규칙

내부 네트워크에서 외부 네트워크로 나가는 트래픽을 이야기합니다. 예를 들면 필요한 특정 사이트만 접근 가능하도록 허용(데이터 요청)하고 그 외에는 요청이 안 되어서 못 쓰게 만드는 등 사용이 가능합니다. (기본적으로 모든 것 허용)

 

📝포트포워딩

외부에서 내부 네트워크로 들어오는 트래픽을 특정 장치로 전달하는 명시적인 규칙을 설정하는 것입니다. 예를 들면 공인 IP의 80번 포트를 요청하면 어떤 사설 IP의 3000번 포트로 전달하게 된다 등에 사용됩니다.

 

 

🔗 참고 및 출처

https://velog.io/@ektmf4411/%EB%B0%A9%ED%99%94%EB%B2%BD-DMZ

반응형
반응형

📝공인 IP

외부에 공개되어 있는 IP 주소 이걸로 인터넷에 연결된 다른 PC로부터의 접근이 가능하다.

(전 세계에서 유일한 공인된 주소) [공유기가 가지고 있는 IP] 일반적으로 IP라고 불리는 것

 

📝공인 IP의 기능

통일된 공인 IP를 달고 나가고 들어올 때 내부에서 나에게 부여된 고유한 IP(사설IP)로 번역이 되어 나를 찾아온다

 

📝사설 IP

가짜 주소이니까 외부에서 내부로 접근 불가라는 특징을 가진다 (cmd-ipconfig로 알아볼 수 있다)

내 정보가 들어있어서 가려놨는데 이거 보니까 VMware가상머신으로 되어있네요.. 쨌든 IPv4로 나오는게 사설IP입니다.

📝공유기

공유기에 연결되는 모든 기기들에 사설 IP를 구축 

가장 쉬운 예는 컴퓨터들 공유기로 컴퓨터 여러대를 두는데 각각 사설IP를 만들어주는 것이다.

 

📝DNS 서버

IP 주소와 도메인을 매칭시키는 시스템

리눅스에선 /etc/hosts 에 적힌 내용이 1순위로 동작하고 그 후 DNS서버에 등록된게 2순위로 작동합니다.

DNS서버

📝도메인주소

IP주소를 기억하기 쉬운 문자로 표현한 것입니다.

예를 들어 www.naver.com 같이 임의로 정한 것이다 서버를 만들어본 사람은 알텐데

192.153.22.10:6300 뭐 이런식으로 해당 서버에 접근해야 페이지가 열립니다..

https://192.153.22.10:6300 이런식이다 그래서 이걸 맨날 외우기도 힘들기 때문에 알기 쉬운 걸로 바꾼겁니다.

그걸 DNS서버가 해주는 것이죠

 

📝IPv4

32비트 길이의 식별자로 0.0.0.0~255.255.255.255까지의 숫자의 조합으로 이루어지며 총 네구간으로

나눠져있으며 최대 12자리의 번호로 이루어져 있습니다. IPv4를 통해 최대 약 43억개의 서로 다른 주소를 부여할 수 있다

 

📝IPv6

세계 공용으로 사용되며 인터넷 사용자수가 급증하면서 IPv4주소가 고갈될 문제에 처해있습니다.      

이러한 고갈 문제를 해결하기 위해 등장한 주소가 바로 IPv이다 IPv4주소체계를 128비트 크기로 확장

반응형
반응형

📝포트번호

컴퓨터의 주소가 IP주소이며, 프로그램의 주소가 포트 번호 이다. Port 번호는 16bit로 이루어져있습니다.

2^16 이므로 총 65536개의 port number가 존재 할 수 있습니다.

 

예를들어 PC의 IP주소가 192.168.10.20 이라고 하면 컴퓨터에서 FTP로 자료를 받을 때 사용하는 IP주소는 자신의 주소인 192.168.10.20 이고 채팅을 할 때의 IP주소도 192.168.10.20이다.

FTP서버와 채팅 서버가 각각 패킷을 192.168.10.20 주소로 보내려고 하면 서로 혼동이 생기게 된다.

그 IP주소를 사용하는 프로그램이 하나가 아닌 것이다 그래서 포트번호가 생겼고, FTP서버가 포트 9000을 사용하면 채팅 서버는 포트 9001을 사용함으로 써 프로세스를 구분한다.

 

 

📝FTP

파일전송 프로토콜입니다.

 

📝DHCP

일정기간동안 IP를 임대하여 사용하는규약

 

📝밴드폭

1초동안 전달하거나 받는 비트 수

 

 

📝포트별 특징

  • 잘 알려진 포트
    • 0 ~ 1023번으로 여러개가 존재
    • 20 TCP FTP 데이터포트
    • 21 FTP 제어포트
    • 80 웹 페이지 전송 HTTP
    • 443 HTTPS
  • 등록된포트
    • 1024 ~ 49151번사용자가 직접 등록 할 수 있는 포트를 의미합니다.
  • 동적포트
    • 49152 ~ 65535번은 동적포트로서 수시로 변경되는 포트로서 인터넷이나 시스템에서 사용할 때 동적으로 할당하는 포트를 의미합니다.

 

 

📝플러그인

기본프로그램에 다른 기능들을 수행해주는 추가 프로그램들을 다운로드하여 사용할 수 있게 하는 것 (라이브러리 개념)

📝위젯

웹브라우저를 통하지 않고도 해당 서비스 바로 이용할 수 있도록 만든 프로그램 (날씨 , 계산기)

 

📝콘솔

출력장치를 총칭하는 말 (키보드 + 모니터)

예) 명령 프롬프트(콘솔프로그램) : 콘솔창 기반으로 작동하는 프로그램]

 

 

참고자료

https://jyhpan.tistory.com/162

 

port 번호 모음

자주 쓰는 프로그램, 서비스의 포트 번호 포트 포워딩을 하려면 인터넷 서비스, 소프트웨어가 쓰는 포트 번호를 알아야 한다. 사람들이 많이 쓰는 네트워크 서비스, 메신저, P2P 프로그램의 포트

jyhpan.tistory.com

 

반응형