전체 글
[병아리에서 꿩이 되어가는 과정] 대학교 학부 수업에서 배운 Computer Science 중심으로 IT 관련 내용을 기록하는 곳입니다.SSL을 구성하는 프로토콜
SSL (Secure Sockets Layer) : 인터넷 상에서 데이터를 안전하게 전송하기 위해 사용되는 암호화 프로토콜 현재는 SSL의 후속 버전인 TLS (Transport Layer Security)가 더 많이 사용된다. ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ SSL을 구성하는 프로토콜 1. Handshake 프로토콜 클라이언트와 서버가 안전한 통신을 위해 암호화 및 인증 정보를 교환하는 과정이다. 주요 역할:암호화 방식과 세션 키를 협상한다.서버의 신원을 인증하고, 필요시 클라이언트 인증도 수행한다. 크게 초기 협상 단계, 서버 인증 단계, 클라이언트 인증 단계, 종료 단계로 구분된다. 초기 협상 단계: 클라이언트와 서버가 암호화 알고리즘 및 프로토콜 버전을 협상..
OSI 7계층
계층 이름계층 설명프로토콜전송 단위장비응용 계층사용자와 네트워크 간 응용 서비스 연결 및 데이터 생성HTTP, FTP데이터(Data)PC, 호스트표현 계층데이터 형식 결정, 부호교환, 암호화, 복호화JPEG, MPEG세션 계층송수신 간의 논리적 연결RPC, NetBIOS전송 계층송수신 프로세스 간의 연결TCP, UDP세그먼트(Segment)L4 스위치네트워크 계층단말기 간 데이터 전송을 위한 최적화된 경로 제공IP, ICMP패킷(Packet)라우터데이터링크 계층인접 시스템 간 데이터 전송, 동기화, 오류 제어HDLC, PPP프레임(Frame)브리지, 스위치물리 계층0과 1의 비트 정보를 회선에 보내기 위한 전기적 신호 변환RS-232C비트(Bit)허브, 리피터
정적 바인딩 vs 동적 바인딩
정적 바인딩 (Static Binding) 컴파일 시점에 메소드 호출이 결정된다. 메소드 오버로딩에서 주로 사용 메소드 호출이 컴파일 시점에 결정되기 때문에 실행 속도가 빠르고, 어떤 메소드가 호출될지 예측할 수 있다.하지만 다형성은 적절히 구현하지 못한다. 동적 바인딩 (Dynamic Binding) 런타임 시점에 메소드 호출이 결정된다. 메소드 오버라이딩에서 주로 사용 메소드 호출이 런타임 시점에 결정되기 때문에 오버헤드가 발생할 수 있지만, 다형성을 적절히 구현할 수 있다.
파이썬 코딩테스트에서 자주 사용되는 표준 라이브러리 (4) bisect
bisect 모듈이진 검색 및 정렬된 리스트에 삽입할 때 사용합니다. import bisectsorted_list = [1, 2, 4, 5]bisect.insort(sorted_list, 3)print(sorted_list) # Output: [1, 2, 3, 4, 5]index = bisect.bisect_left(sorted_list, 3)print(index) # Output: 2
파이썬 코딩테스트에서 자주 사용되는 표준 라이브러리 (3) itertools
itertools 모듈반복자 생성 및 조합, 순열 등을 생성할 때 사용합니다. from itertools import permutations, combinations, product# permutations 예시data = ['a', 'b', 'c']perm = list(permutations(data, 2))print(perm) # Output: [('a', 'b'), ('a', 'c'), ('b', 'a'), ('b', 'c'), ('c', 'a'), ('c', 'b')]# combinations 예시comb = list(combinations(data, 2))print(comb) # Output: [('a', 'b'), ('a', 'c'), ('b', 'c')]# product 예시prod = ..
파이썬 코딩테스트에서 자주 사용되는 표준 라이브러리 (2) heapq
heapq 모듈우선순위 큐를 구현할 때 사용합니다import heapqheap = []heapq.heappush(heap, 3)heapq.heappush(heap, 1)heapq.heappush(heap, 2)print(heapq.heappop(heap)) # Output: 1print(heapq.heappop(heap)) # Output: 2print(heapq.heappop(heap)) # Output: 3
파이썬 코딩테스트에서 자주 사용되는 표준 라이브러리 (1) collections
collections 모듈Counter: 요소의 빈도를 계산할 때 사용합니다.defaultdict: 기본값이 있는 딕셔너리를 생성할 때 사용합니다.deque: 양방향 큐를 사용할 때 사용합니다.from collections import Counter, defaultdict, deque# Counter 예시data = ['a', 'b', 'c', 'a', 'b', 'a']counter = Counter(data)print(counter) # Output: Counter({'a': 3, 'b': 2, 'c': 1})# defaultdict 예시dd = defaultdict(int)dd['key1'] += 1print(dd) # Output: defaultdict(, {'key1': 1})# deque 예..