본문 바로가기
KraftonJungle2기/Today I Learned

[TIL] Proxy 개념 정리

by SooooooooS 2023. 5. 24.
728x90

1. 아침 문제 풀이

1. 2108번 - 통계학

import sys
import math

N = int(sys.stdin.readline().strip())
nums = {}       # 입력받은 수들의 등장 횟수
lst = [0] * N   # 입력받은 수들

sum = 0
for i in range(N) :
    num = int(sys.stdin.readline().strip())
    if num in nums :
        nums[num] += 1
    else :
        nums[num] = 1
    lst[i] = num
    sum += num

lst.sort()
nums = dict(sorted(nums.items()))
nums = sorted(nums.items(), key= lambda x : -x[1])

print(round(sum/N)) # 산술 평균 값
print(lst[N//2]) # 중앙값
if len(nums) > 2 and nums[0][1] == nums[1][1]: # 최빈값
    print(nums[1][0])
else :
    print(nums[0][0])
print(lst[len(lst)-1] - lst[0]) # 범위
어제와 같이 정렬이 필요했던 문제다.
다양한 예외 상황이 계속 발생해서 확인하며 푼 문제였다.
잘 확인하며 문제를 풀자!

2. Proxy Server 개념 정리

1. Proxy Server 란?

클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해주는 컴퓨터 시스템이나 응용 프로그램

https://ko.wikipedia.org/wiki/프록시_서버


2. 역할

  • 중계 기능
    • 서버와 클라이언트 사이에서 대리로 통신을 수행한다.
  • 캐시 기능
    • 요청된 내용들을 캐시에 저장해두고
    • 후에 캐시 안에 정보를 요구하는 요청에 대해서 바로 제공
    • 즉, 캐시 안에 데이터가 있을 경우 서버에 접속을 하지 않고 데이터를 전송하여
      • 전송시간 단축
      • 불필요한 외부 연결을 하지 않아도 된다.
      • 외부와의 트래픽을 줄임으로써 네트워크 병목현상 방지
  • 보안 기능
    • 네트워크 외부에서는 실제 사용자나 서버의 위치를 감출 수 있다.
    • IP 주소의 익명성 가능
  • 방화벽
    • proxy의 효율을 향상시키는 것은 좋은 방화벽이 될 수 있다.
    • 방화벽의 호스트에서 실행되는 전문화된 서버 프로그램으로 유일하게 외부에 노출되는 호스트에 설치되어 운용된다.
  • IP 주소 절약
    • proxy는 외부 네트워크에 접속되는 유일한 장비이므로 proxy만 서버에서 유일한 공인 IP 필요
  • 부적절한 사이트에 접근 방지

3. 위치

클라이언트측과 서버측 사이 둘 중 하나에서 내부 사설망과 외부 인터넷망이 접하는 경계
  • forward proxy : 데이터 수신용, 사용자 가까운 쪽에 위치
  • reverse proxy : 데이터 제공용, 서버들 가까운 쪽에 위치 (현재 사용하는 형태)

https://ko.wikipedia.org/wiki/리버스_프록시


4. 형태

  • 공유 프록시 : 중앙 집중형
    • 다수를 대신하여 일을 할 수 있는 서버
  • 개인 프록시 : 클라이언트 컴퓨터 내에서 직접 실행되는 개인 전용 프록시

proxy server 동작 과정


< 참고 >

🔗 http://www.ktword.co.kr/test/view/view.php?nav=2&no=1829&sh=프록시

🔗 https://ko.wikipedia.org/wiki/프록시_서버


3. 동시성 (Concurrency)

논리 제어 흐름이 시간적으로 중첩되어 실행된다.
실제로는 하나씩 실행되지만 동시에 실행되는 것처첨 보인다.

동시성

< 참고 >

🔗 https://seamless.tistory.com/42

🔗 https://nesoy.github.io/articles/2018-09/OS-Concurrency-Parallelism

728x90