본문 바로가기

분류 전체보기

(71)
Network - 프로토콜, OSI 7계층 TCP/IP, 캡슐화 (1) 홈 네트워크 인터넷 모뎀 공유기 사이에는 랜 카드, 랜 케이블(랜선)이 필요. 공유기 노트북, 컴퓨터 사이에는 무선 신호를 보낼 수 있는 매체(공기) 가 필요. (2) 데이터 센터 네트워크 데이터 센터 네트워크는 안정적이고 빠른 대용량 서비스 제공이 목표 -> 이중화 기술이 필요 및 높은 통신량 수용 -> 고속 이더넷 3계층 구성이 일반적이었지만, 가상화 기술과 높은 대역폭을 요구하는 스케일 아웃(Scale-Out) 기반의 애플리케이션과 서비스가 등장하면서 2계층 구성인 스파인-리프(Spint-Leaf) 구조로 데이터 센터 네트워크가 변화되었다. 스파인-리프? 서버 간 톹신이 늘어나는 트래픽 경향 지원 일반 서버에 10G Base-T 이더넷 포트가 기본 제공되어 TOR(Top of Rack) 스위..
[BOJ 1931] 백준 1931 회의실 배정 - Python 그리디 알고리즘 공부하려고 풀었던 문제 문제 링크 : 1931 회의실 배정 문제 정리: 한 개의 회의실에서 최대 몇 개의 회의를 진행할 수 있는가? 조건 : 각 회의가 겹치면 안된다. 회의는 중간에 중단될 수 없다. 회의가 끝나면 바로 다음 회의를 진행할 수 있다. 회의 시작 시간과 종료 시간이 동일할 수 있다. 풀이 방법 : 시작 시간을 정렬을 해야하고, 끝나는 시간 기준으로 정렬을 해야한다. (최대 값을 구해야하기 때문에, 빨리 끝나는 회의를 위주로 최대한 많이 집어 넣어야하기 때문) 끝나는 시간을 기준으로, 다음 인덱스에 시작 시간을 비교하여 answer를 작업한다. def solution(conference): last = 0 answer = 0 for start, end in conference..
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.*로 지웠다.) 에러 역시 해결되었다! 도대체 저 파일이 뭐길래..
linux vi error vi를 여니까 아래처럼 떴다. vi에서 나가려고 :q!를 하면, 아래와같이 뜬다. 이거처럼 뜨면. /root/.viminfo에 가서 .vminfo를 제외하고 .vminfo.tmp 등의 파일을 모두 지우라고 하는데, 나는 그런 파일이 없었다. /.vminfo 파일 한개뿐이었다 그리고 가상환경에서 파이썬 파일을 실행하려고 하면, 이런 에러가 발생한다. 아직 해결책은 찾지못했다,,