CS

    [네트워크] 도메인주소와 EC2서버가 연결되는 과정

    DNS란? 도메인이나 호스트네임을 IP주소로 해석해주는 서비스로서 사용자는 원하는 도메인을 입력하면 DNS 서버를 통해 해당 도메인의 실제 IP정보를 받아 원하는 사이트에 쉽게 접속할 수 있게 됩니다. local 네임 서버에 'www.naver.com'에 대한 정보를 요청합니다. local 네임 서버는 'www.naver.com'에 대한 정보가 없기 때문에 루트네임 서버에 다시 요청합니다. (루트네임서버 : 전 세계 13개만 존재하는 최상위 네임서버) - a.root-servers.com ~ m.root-servers.com 루트네임서버는 'www.naver.com'에 대한 정보는 없지만 .com 도메인을 관리하고 있는 서버 정보를 알려줍니다. local 네임 서버는 .com 네임서버에 'www.nave..

    [네트워크] gRPC 프로토콜

    RPC란? Remote Procedure Call의 약자로, 원격에 있는 함수를 호출해주는 기능을 말합니다. 별도의 원격제어를 위한 코딩 없이 다른 주소 공간에서 리모트의 함수나 프로시저를 실행 할 수 있게 해주는 프로세스간 통신입니다. RPC는 일반적으로 , request parameter와 response parameter를 알아야하기 때문에, 양쪽의 인터페이스 규약을 IDL 등의 언어로 정의한 후, 해당 프로그래밍 언어가 부를 수 있는 형태의 코드로 생성을 해줘야하는데, 이를 Skeleton과 Stub코드라고 합니다. 분산 컴퓨팅 환경에서 많이 사용되어 왔으며 현재에는 MSA(Micro Service Architecture)에서 마이크로 서비스간에도 많이 사용되는 방식입니다. 서로 다른 환경에서도..

    [알고리즘] 백준 1012 파이썬 풀이

    유기농 배추 흔하게 보이는 문제 패턴입니다. 1은 배추가 있는 장소이고 배추가 붙어있다면 배추흰지렁이는 한마리가 필요합니다. 결국, 배추 무더기의 개수를 묻는 문제입니다. 처음 다음과 같이 풀이했습니다. t = int(input()) for _ in range(t): count = 0 m, n, k = map(int, input().split()) graph = [[0] * n for _ in range(m)] for _ in range(k): x, y = map(int, input().split()) graph[x][y] = 1 dx = [-1, 0, 1, 0] dy = [0, 1, 0, -1] def dfs(x, y): if x = m or y >= n or grap..

    [알고리즘] 재귀함수와 반복문을 이용한 이진탐색

    이진탐색은 데이터가 정렬된 경우에만 사용가능합니다. 1. 재귀를 이용한 이진탐색 def binary_search(array, target, start, end): if start > end: return None mid = (start + end) // 2 # 찾은 경우 중간점 인덱스 반환 if array[mid] == target: return mid # 중간점의 값보다 찾고자 하는 값이 작은 경우 왼쪽 확인 elif array[mid] > target: return binary_search(array, target, start, mid - 1) # 중간점의 값보다 찾고자 하는 값이 큰 경우 오른쪽 확인 else: return binary_search(array, target, mid + 1, end)..