본문 바로가기

Developer

(50)
네트워크 연결과 구성 요소 LAN(Local Area Network) : 사용자 내부 네트워크 MAN(Metro Area Netrowk) : 한 도지 성도를 연결하고 관리하는 네트워크 WAN(Wide Area Network) : 멀리 떨어진 LAN을 연결해주는 네트워크 1. LAN 먼 거리를 통신할 필요가 없어 스위치와 같이 비교적 간단한 장비로 연결된 네트워크 대부분 이더넷 기반 전송 기술 사용 2. WAN 멀리 떨어진 LAN을 서로 연결하거나 인터넷에 접속하기 위한 네트워크 대부분 통신 사업자(KT, LG U+, SKB)로부터 회선을 임대해서 사용 자신이 소유한 땅이나 건물이 아닌 곳일 지나 원격지로 통신해야 할 때 사용하며, 사용 계약에 따른 비용 부과 1. 인터넷 회선 일반 가정에서 인터넷에 연결하기 위해 사용하는 위해서는..
[python] 큐(Queue) 라이브러리 사용하기 - Queue, LifoQueue, PriorityQueue Queue queue 의 기본인 FIFO(First In First Out) Queue는 멀티 태스킹을 위한 프로세스 스케줄링 방식을 구현하기 위해 많이 사용된다 (운영체제) Enqueue : 큐에 데이터를 넣는 기능 Dequeue : 큐에서 데이터를 꺼내는 기능 queue 라이브러리에는 Queue(), LifoQueue(), PriorityQueue() 를 제공한다. Queue() : 일반적인 큐 자료구조 LifoQueue() : 나중에 입력된 데이터가 먼저 출력되는 구조 (like stack) PriorityQueue() : 우선순위 큐 -> 데이터마다 우선순위를 넣어서, 우선수위가 높은 순으로 데이터 출력 1. Queue() 사용하기 import queue data_queue = queue.Queu..
Network - 프로토콜, OSI 7계층 TCP/IP, 캡슐화 (1) 홈 네트워크 인터넷 모뎀 공유기 사이에는 랜 카드, 랜 케이블(랜선)이 필요. 공유기 노트북, 컴퓨터 사이에는 무선 신호를 보낼 수 있는 매체(공기) 가 필요. (2) 데이터 센터 네트워크 데이터 센터 네트워크는 안정적이고 빠른 대용량 서비스 제공이 목표 -> 이중화 기술이 필요 및 높은 통신량 수용 -> 고속 이더넷 3계층 구성이 일반적이었지만, 가상화 기술과 높은 대역폭을 요구하는 스케일 아웃(Scale-Out) 기반의 애플리케이션과 서비스가 등장하면서 2계층 구성인 스파인-리프(Spint-Leaf) 구조로 데이터 센터 네트워크가 변화되었다. 스파인-리프? 서버 간 톹신이 늘어나는 트래픽 경향 지원 일반 서버에 10G Base-T 이더넷 포트가 기본 제공되어 TOR(Top of Rack) 스위..
ModuleNotFoundError: No module named 'DBUtils' DBUtils 를 설치해놨는데, ModuleNotFoundError: No module named 'DBUtils' 에러가 발생했다. DBUtils 모듈이 설치되어있지 않다는건데, 이미 설치를 했다. pip list 로 확인했을 때, DBUtils가 설치되어있는 걸로 확인이 된다. 구글링을 해보니 특정 버전 이상부터 DBUtils가 아니라, dbutils를 사용해야하는것으로 보였다. 이전에는, from DBUtils.PooledDB import PooledDB 이렇게 사용할 수 있었는데, 이제 변경된 것 같다. from dbutils.pooled_db import PooledDB DBUtils.PooledDB처럼 대문자로 사용하는게 아니라, 소문자로 dbutils.pooled_db 로 사용해야한다. 갑자..
Python 문자열 활용 : isdigit isalpha isalnum 1. isdigit() 문자열이 모두 숫자로 구성 : True 그 외 : False str1 = '12345' str2 = '12 34 5' str3 = '12 34 5 ab' print(str1.isdigit()) # True print(str2.isdigit()) # False print(str3.isdigit()) # False 2. isalpha() 문자열이 모두 문자로 구성 : True 그 외 : False str1 = 'hello' str2 = 'hello12' str3 = 'hello hello' print(str1.isalpha()) # True print(str2.isalpha()) # False print(str3.isalpha()) # False 3. isalnum() 문자열이 문자 ..
인프라 아키텍처에 대해서 집약형 아키텍처 : 하나의 컴퓨터로 모든 주요 업무를 처리를 한다. 컴퓨터는 하나로 사용하지만, 컴퓨터를 구성하는 주요 부품은 다중화 되어있기 때문에, 하나가 고장나더라도 업무를 계속할 수 있다. 복수의 서로 다른 업무 처리를 동시에 실행할 수 있도록 유한 리소스 관리를 한다. ex) 기간시스템 장점 : 한 대의 대형 컴퓨터만 있으면 되므로 구성이 간단하다. 대형 컴퓨터의 리소스 관리나 이중화에 의해 안정성이 높고 고성능 단점 : 대형 컴퓨터 도입 비용과 유지 비용이 비싸다 확장성의 한계 분할형 아키텍처 : 여러 대의 컴퓨터를 조합해서 하나의 시스템 구축 여러대의 컴퓨터가 연결돼 있어서 데이터 서로 교환 장점 : 낮은 비용으로 시스템 구축 가능 (최대 100배 차이) 서버 대수를 늘릴 수 있기 때문에 확..
[Python] collections 모듈 Counter 클래스 사용하기 알고리즘 공부를 하다가, Counter 클래스에 대해 알게되었다. 문자열을 입력했을 때, 각 글자 수를 세어주는 함수이다. import collections collections.Counter('hello world') # Counter({'l': 3, 'o': 2, 'h': 1, 'e': 1, ' ': 1, 'w': 1, 'r': 1, 'd': 1}) 이렇게 각 글자별로 갯수를 세어준다. 항상 for문으로 진행했었는데, 이렇게 사용하니까 아주 편하다. import collections collections.Counter('hello world').most_common() # [('l', 3), ('o', 2), ('h', 1), ('e', 1), (' ', 1), ('w', 1), ('r', 1), (..
Message: unknown error: cannot create temp dir for unpacking extensions 셀레니움 에러가 발생하였다. 디렉토리가 확장이 되지않는다는 문구를 보고 제일 번저 서버 용량을 확인해보았다. 셀레니움 코드만 데몬으로 작동하는 서버임에도, 용량이 엄청나게 많이 줄어있었고 이전에 이와 비슷한 문제가 있었던 것으로 기억했다. 그래서 cd du -h --max-depth=1 를 사용해서 디렉토리마다 용량을 확인했더니 /tmp 파일이 너무 많은 용량을 차지하고 있었다. 지난번에 비슷한 에러가 발생했을 때, /tmp안에 .com.google.Chrome.~~ 하는 디렉토리가 엄청 많았던 적이 있었다. 예상대로 파일이 엄청나게 많이 쌓여있었고, 관련 디렉토리 모두 지워줬다. (디렉토리여서, rm -r .com.google.Chrome.*로 지웠다.) 에러 역시 해결되었다! 도대체 저 파일이 뭐길래..