전체보기 333

[Web]Django 설치 및 설정(sqlite version error)

0. python3 install python3가 기본적으로 설치되어 있어야 한다. 설치되어 있지 않다면 다음 명령을 이용하여 설치해주자. yum -y install python3 1. django install 이제 django를 설치한다. python3 -m pip install django 2. project create django-admin startproject myproject . .(현재 디렉토리)에 myproject라는 프로젝트가 생성된다. 3. django 실행 [root@localhost ~]# python3 manage.py runserver Watching for file changes with StatReloader Performing system checks... System ..

Study/Web 2023.06.24

[Network]DNS(Domain name System)

DNS Domain Name System 도메인 이름 시스템 사람이 읽을 수 있는 도메인 이름(www.test.com)을 머신이 읽을 수 있는 IP 주소(192.168.0.74)로 변환한다. DNS 서비스는 전 세계에 배포된 서비스로서, www.example.com과 과 같이 사람이 읽을 수 있는 이름을 192.0.2.1과 같은 IP 주소로 변환하여 컴퓨터가 서로 통신할 수 있도록 한다. 인터넷의 DNS 시스템은 이름과 숫자 간의 매핑을 관리하여 마치 전화번호부와 같은 기능을 한다. DNS 서버는 이름을 IP 주소로 변환하여 도메인 이름을 웹 브라우저에 입력할 때 최종 사용자를 어떤 서버에 연결할 것인지를 제어한다. 이 요청을 쿼리라고 한다. hosts 파일 전에는 전화번호부처럼 IP 주소를 각자의 컴퓨..

Study/Network 2023.06.14

[Network]HAProxy

HAProxy(High Availbility Proxy) 하드웨어 기반의 L4/L7 스위치를 대체하기 위한 오픈소스 소프트웨어 솔루션 TCP 및 HTTP 기반 애플리케이션을 위한 고가용성, 로드 밸런싱 및 프록시 기능을 제공하는 매우 빠르고 안정적인 무료 Reverse 프록시 *Reverse 프록시: 서버로 들어오는 요청을 대신 받아서 서버에 전달하고 요청한 곳에 그 결과를 다시 전달해주는 역할을 함 포워드 프록시와는 반대로 클라이언트와 인터넷, 서버가 있을 때 인터넷과 서버 사이에 프록시가 위치한다. -> 클라이언트가 서버에게서 받은 응답이 정확히 어떤 서버로부터 받은건지 알 수 없는 형태의 프록시 반면 포워드 프록시는 클라이언트와 인터넷 사이에 프록시 서버가 위치한다. -> 서버로 하여금 클라이언트로..

Study/Network 2023.06.11

[Network]Load Balancing(로드밸런싱)

로드 밸런싱 애플리케이션을 지원하는 리소스 풀 전체에 네트워크 트래픽을 균등하게 배포하는 방법 네트워크 또는 서버에 가해지는 부하(로드)를 분산(밸런싱)해주는 기술 *로드 밸런서: 사용자와 서버 그룹 사이에 위치하며 보이지 않는 촉진자 역할을 하여 모든 리소스 서버가 동일하게 사용되도록 하는 디바이스 로드 밸런서는 클라이언트와 네트워크 트래픽이 집중되는 서버들 또는 네트워크 허브 사이에 위치 알고리즘 정적 로드 밸런싱 고정된 규칙을 따르며 현재 서버 상태와 무관 라운드 로빈 방식 이름 서버는 서버 팜에 있는 여러 서버의 IP 주소를 차례대로 또는 라운드 로빈 방식으로 반환한다. 가중 기반 라운드 로빈 방식 우선순위 또는 용량에 따라 각 서버에 서로 다른 가중치를 할당할 수 있다. 가중치가 높은 서버는 이..

Study/Network 2023.06.10

NFS 서버

Network File System 네트워크 상에 연결된 다른 컴퓨터의 하드 디스크를 내 컴퓨터의 하드처럼 사용하는 것 네트워크에 연결된 리눅스끼리 NFS를 통해 파일 공유 가능 공유저장소로 동작 서버와 클라이언트는 IP로 연결되어야 함 AWS에서는 동일 기능은 EFS로 제공 서버가 네트워크상의 클라이언트에게 하나 이상의 디렉토리를 공유한다. 클라이언트는 공유된 디렉토리를 자체 시스템에 마운트하고 로컬인 것처럼 해당 디렉토리 내의 파일에 접근할 수 있다. 구축 과정 1. 서버/클라이언트에서 nfs-utils 설치 yum -y install nfs-utils 2. 방화벽, selinux 해제 systemctl stop firewalld setenforce 0 본 실습에서는 편의를 위해 모두 종료하였으나 보..

Study 2023.06.08

SSH 인증 과정(Authentication Process)

서버 인증 사용자가 서버를 인증하는 단계 클라이언트가 서버에 처음 접속 시도 시 연결을 진행할지 여부를 물어봄 yes를 선택 시 서버의 /etc/ssh에 있는 공개키 값을 클라이언트의 .ssh/known_hosts에 추가 클라이언트에서 난수값을 생성 > 해시값으로 변환 > 클라이언트에 저장 > 공개키로 해시값 암호화 > 서버에 전송 암호화된 해시값을 전달받은 서버는 비밀키로 복호화 > 클라이언트로 다시 전송 클라이언트는 저장해 두었던 해시값과 서버로부터 받은 해시값을 비교하여 서버를 인증 서버 인증을 위해 서버에서 key-pair를 만들고 이를 사용하여 사용자가 서버를 인증 사용자 인증 서버가 사용자를 인증하는 단계 비대칭키를 생성 (ssh-keygen 명령어 활용) 비밀키: 클라이언트 소유(.ssh/i..

Study 2023.05.29

[Network]NAT(Network Address Translation)

NAT(Network Address Translation) 1개의 실제 공인 IP 주소에, 다량의 가상 사설 IP 주소를 할당 및 매핑하는 주소 변환 방식 IP패킷에 있는 출발지 및 목적지의 IP 주소와 TCP/UCP 포트 숫자 등을 바꿔 재기록하면서 네트워크 트래픽을 주고 받게 하는 기술 Private Network(사설망) 인터넷 어드레싱 아키텍처에서 사설 IP 주소 공간을 이용하는 네트워크 가정, 사무실, 기업 랜에서 쓰인다. IPv4 중 특정 대역을 공인 인터넷이 아닌 한정된 공간에서 사용하는 네트워크를 의미 10.0.0.0 ~ 10.255.255.255 172.16.0.0. ~ 172.31.255.255 192.168.0.0 ~ 192.168.255.255 이러한 IP 대역은 사설 IP 대역으로..

Study/Network 2023.05.26

[Network]ACL(Access Control List)

Access Control List 라우터 등의 장비에서 '패킷 필터링', '패킷 분류'를 결정짓는 일련의 규칙(Rules) 목록 번호나 이름으로 정책을 생성하고 생성된 정책을 이용하여 트래픽을 분류, 필터링 할 수 있는 기술 일반적으로 L3, L4를 담당 AWS에서는 subnet과 subnet 사이에서 네트워크 트래픽을 필터링 사용 목적 트래픽 제어 보안 - router, firewall 패킷 식별 기본 규칙 1. Top-Down 방식이므로 순서가 매우 중요하다. 예) 외부에서 유입되는 트래픽을 1.1.1.1이 유해 트래픽을 보내고 있다. 이를 차단하고 나머지 모든 IP의 접근을 허용한다. access-list deny host 1.1.1.1 access-list permit any 2. 각 ACL의 ..

Study/Network 2023.05.25

[Network]Static Route

Routing(라우팅) 패킷의 전송 경로를 지정하는 네트워크 계층의 가장 중요한 역할 들어온 패킷을 어느 출력 경로를 통해 다음 호스트로 전달해야 가장 효과적일지 결정하는 것 2가지 종류로 나눌 수 있다. 1. Static (정적 경로): 특정 목적지 네트워크로 가는 경로를 관리자가 직접 지정하는 방법 - 수동 2. Dynamic (동적 경로): 라우터에서 사용하는 경로 정보를 네트워크 상황에 맞춰 적절하게 설정하는 방법 - 자동 Routing Table(라우팅 테이블) 패킷의 전송 과정에서 라우터들이 패킷의 적절한 경로를 쉽게 찾도록 하기 위한 가장 기본적인 도구 예) ip route 192.168.74.0 255.255.255.0 192.168.0.85 목적지가 192.168.74.0인 IP는 192..

Study/Network 2023.05.22

[이코테]DFS&BFS 문제 풀이(음료수 얼려 먹기, 미로 탈출)

음료수 얼려 먹기 NxM 크기의 얼음 틀이 있다. 구멍이 뚫려 있는 부분은 0, 칸막이가 존재하는 부분은 1로 표시된다. 구멍이 뚫려 있는 부분끼리 상, 하, 좌, 우로 붙어 있는 경우 서로 연결되어 있는 것으로 간주한다. 이때 얼음 틀의 모양이 주어졌을 때 생성되는 총 아이스크림의 개수를 구하는 프로그램을 작성하시오. 다음의 4x5 얼음 틀 예시에서는 아이스크림이 총 3개 생성된다. 내 답안 from collections import deque n, m = map(int, input().split()) arr = [] for _ in range(n): arr.append(list(map(int, input()))) count = 0 def bfs(arr, i, j): global count queue ..

Coding/이코테 2023.04.08